Added Dynatrace support - #258

Open
he-is-harry wants to merge 4 commits into
SAP:masterfrom
he-is-harry:dynatrace
Open

Added Dynatrace support#258
he-is-harry wants to merge 4 commits into
SAP:masterfrom
he-is-harry:dynatrace

Conversation

@he-is-harry

Copy link
Copy Markdown
Contributor
  • Added extension/Dynatrace.js to wrap exec / execute / prepare functions with dynatrace tracing
    • Modified the Client to automatically wrap with dynatrace tracing when isDynatraceEnabled() is true (@dynatrace/oneagent-sdk is installed and HDB_NODEJS_SKIP_DYNATRACE is off) and the dynatrace connect option is true
  • Added the dynatrace and dynatraceTenant connect options
  • Modified ResultSet.js to have the getRowCount function
    • Added 2 unit tests for getRowCount
  • Added the isDynatraceSupported field to the driver (Hana class)
  • Added the MockDynatraceSDK for testing and added integration tests for dynatrace

Testing Notes
The Makefile was modified so that make test-dynatrace will test only the dynatrace integration tests

To install the MockDynatraceSDK, copy the contents of the MockDynatraceSDK folder into node_modules/@dynatrace/oneagent-sdk

The integration tests were designed to be able to dynamically run on the mock dynatrace and the real dynatrace depending on the node_modules import

- Added extension/Dynatrace.js to wrap exec / execute / prepare functions with dynatrace tracing
- Modified the Client to automatically wrap with dynatrace tracing when isDynatraceEnabled()
is true (@dynatrace/oneagent-sdk is installed and HDB_NODEJS_SKIP_DYNATRACE is off) and
the dynatrace connect option is true
- Added the dynatrace and dynatraceTenant connect options
- Modified ResultSet.js to have the getRowCount function
- Added 2 unit tests for getRowCount
- Added the isDynatraceSupported field to the driver (Hana class)
- Added the MockDynatraceSDK for testing and added integration tests for dynatrace
Testing Notes
The Makefile was modified so that `make test-dynatrace` will test only the dynatrace integration tests
To install the MockDynatraceSDK, copy the contents of the MockDynatraceSDK folder into
node_modules/@dynatrace/oneagent-sdk
The integration tests were designed to be able to dynamically run on the mock dynatrace and the real
dynatrace depending on the node_modules import
- Updated the create table hook to allow the tests to be run without a config.json
- Modified Dynatrace.js result set callback to allow array results
to indicate the rows returned not just result sets like before
- Added an integration test to check that an insert with execute
would trace the number of rows affected

@IanMcCurdyIanMcCurdy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work, this looks great. There are just a few very small changes to make, then it's good to go

Comment threadtest/acceptance/db.Dynatrace.js Outdated
async.waterfall([prepare, testExecStatement(['1']), testExecStatement(['2']), dropStatement], done);
});

it('should trace a client execute', function (done) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could use a more descriptive string. Right now it's identical to a previous test.

Comment threadextension/Dynatrace.js Outdated
function _prepareStmtUsingDynatrace(conn, prepareFn) {
// args = [sql, options, callback] --> options is optional
return function (...args) {
const cb = args[args.length - 1];

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There should be an args.length > 0 check here, similar to _ExecuteWrapperFn. This also applies to hana-client and Ian McH will fix it there

Comment threadextension/Dynatrace.js Outdated
return conn;
}
conn._dbInfo = dbInfo;
// hana-client does not like decorating.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment isn't relevant here, should just remove it

- Added an index check to ensure that the callback when preparing statements for
dynatrace exists and is a function
- Improved some test naming to better indicate client execute tests vs. client
exec and statement execute tests
- Added a comment to indicate when numbers are returned for rows affected
@he-is-harryhe-is-harry changed the title Added Dynatrace support (WORK IN PROGRESS)Added Dynatrace supportApr 23, 2025
@rlindner81

Copy link
Copy Markdown

@he-is-harry while it is still officially supported, I think Dynatrace is moving away from maintaining their own sdk. The last code update was over 3 years ago.

Would it make sense for you to use @opentelemetry/api instead of @dynatrace/oneagent-sdk. This came up in a recent dependency review of our project.

@rlindner81

Copy link
Copy Markdown

@IanMcCurdy is there anything fundamental holding this back from merging? As I understand it, the "fat" @sap/hana-client does have dynatrace support, so it would be nice to get feature parity on this.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@he-is-harry@rlindner81@IanMcCurdy
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Added Dynatrace support - #258

Open
he-is-harry wants to merge 4 commits into
SAP:masterfrom
he-is-harry:dynatrace
Open

Added Dynatrace support#258
he-is-harry wants to merge 4 commits into
SAP:masterfrom
he-is-harry:dynatrace

Conversation

@he-is-harry

Copy link
Copy Markdown
Contributor
  • Added extension/Dynatrace.js to wrap exec / execute / prepare functions with dynatrace tracing
    • Modified the Client to automatically wrap with dynatrace tracing when isDynatraceEnabled() is true (@dynatrace/oneagent-sdk is installed and HDB_NODEJS_SKIP_DYNATRACE is off) and the dynatrace connect option is true
  • Added the dynatrace and dynatraceTenant connect options
  • Modified ResultSet.js to have the getRowCount function
    • Added 2 unit tests for getRowCount
  • Added the isDynatraceSupported field to the driver (Hana class)
  • Added the MockDynatraceSDK for testing and added integration tests for dynatrace

Testing Notes
The Makefile was modified so that make test-dynatrace will test only the dynatrace integration tests

To install the MockDynatraceSDK, copy the contents of the MockDynatraceSDK folder into node_modules/@dynatrace/oneagent-sdk

The integration tests were designed to be able to dynamically run on the mock dynatrace and the real dynatrace depending on the node_modules import

- Added extension/Dynatrace.js to wrap exec / execute / prepare functions with dynatrace tracing
- Modified the Client to automatically wrap with dynatrace tracing when isDynatraceEnabled()
is true (@dynatrace/oneagent-sdk is installed and HDB_NODEJS_SKIP_DYNATRACE is off) and
the dynatrace connect option is true
- Added the dynatrace and dynatraceTenant connect options
- Modified ResultSet.js to have the getRowCount function
- Added 2 unit tests for getRowCount
- Added the isDynatraceSupported field to the driver (Hana class)
- Added the MockDynatraceSDK for testing and added integration tests for dynatrace
Testing Notes
The Makefile was modified so that `make test-dynatrace` will test only the dynatrace integration tests
To install the MockDynatraceSDK, copy the contents of the MockDynatraceSDK folder into
node_modules/@dynatrace/oneagent-sdk
The integration tests were designed to be able to dynamically run on the mock dynatrace and the real
dynatrace depending on the node_modules import
- Updated the create table hook to allow the tests to be run without a config.json
- Modified Dynatrace.js result set callback to allow array results
to indicate the rows returned not just result sets like before
- Added an integration test to check that an insert with execute
would trace the number of rows affected

@IanMcCurdyIanMcCurdy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work, this looks great. There are just a few very small changes to make, then it's good to go

Comment threadtest/acceptance/db.Dynatrace.js Outdated
async.waterfall([prepare, testExecStatement(['1']), testExecStatement(['2']), dropStatement], done);
});

it('should trace a client execute', function (done) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could use a more descriptive string. Right now it's identical to a previous test.

Comment threadextension/Dynatrace.js Outdated
function _prepareStmtUsingDynatrace(conn, prepareFn) {
// args = [sql, options, callback] --> options is optional
return function (...args) {
const cb = args[args.length - 1];

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There should be an args.length > 0 check here, similar to _ExecuteWrapperFn. This also applies to hana-client and Ian McH will fix it there

Comment threadextension/Dynatrace.js Outdated
return conn;
}
conn._dbInfo = dbInfo;
// hana-client does not like decorating.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment isn't relevant here, should just remove it

- Added an index check to ensure that the callback when preparing statements for
dynatrace exists and is a function
- Improved some test naming to better indicate client execute tests vs. client
exec and statement execute tests
- Added a comment to indicate when numbers are returned for rows affected
@he-is-harryhe-is-harry changed the title Added Dynatrace support (WORK IN PROGRESS)Added Dynatrace supportApr 23, 2025
@rlindner81

Copy link
Copy Markdown

@he-is-harry while it is still officially supported, I think Dynatrace is moving away from maintaining their own sdk. The last code update was over 3 years ago.

Would it make sense for you to use @opentelemetry/api instead of @dynatrace/oneagent-sdk. This came up in a recent dependency review of our project.

@rlindner81

Copy link
Copy Markdown

@IanMcCurdy is there anything fundamental holding this back from merging? As I understand it, the "fat" @sap/hana-client does have dynatrace support, so it would be nice to get feature parity on this.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@he-is-harry@rlindner81@IanMcCurdy
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Added Dynatrace support - #258

Open
he-is-harry wants to merge 4 commits into
SAP:masterfrom
he-is-harry:dynatrace
Open

Added Dynatrace support#258
he-is-harry wants to merge 4 commits into
SAP:masterfrom
he-is-harry:dynatrace

Conversation

@he-is-harry

Copy link
Copy Markdown
Contributor
  • Added extension/Dynatrace.js to wrap exec / execute / prepare functions with dynatrace tracing
    • Modified the Client to automatically wrap with dynatrace tracing when isDynatraceEnabled() is true (@dynatrace/oneagent-sdk is installed and HDB_NODEJS_SKIP_DYNATRACE is off) and the dynatrace connect option is true
  • Added the dynatrace and dynatraceTenant connect options
  • Modified ResultSet.js to have the getRowCount function
    • Added 2 unit tests for getRowCount
  • Added the isDynatraceSupported field to the driver (Hana class)
  • Added the MockDynatraceSDK for testing and added integration tests for dynatrace

Testing Notes
The Makefile was modified so that make test-dynatrace will test only the dynatrace integration tests

To install the MockDynatraceSDK, copy the contents of the MockDynatraceSDK folder into node_modules/@dynatrace/oneagent-sdk

The integration tests were designed to be able to dynamically run on the mock dynatrace and the real dynatrace depending on the node_modules import

- Added extension/Dynatrace.js to wrap exec / execute / prepare functions with dynatrace tracing
- Modified the Client to automatically wrap with dynatrace tracing when isDynatraceEnabled()
is true (@dynatrace/oneagent-sdk is installed and HDB_NODEJS_SKIP_DYNATRACE is off) and
the dynatrace connect option is true
- Added the dynatrace and dynatraceTenant connect options
- Modified ResultSet.js to have the getRowCount function
- Added 2 unit tests for getRowCount
- Added the isDynatraceSupported field to the driver (Hana class)
- Added the MockDynatraceSDK for testing and added integration tests for dynatrace
Testing Notes
The Makefile was modified so that `make test-dynatrace` will test only the dynatrace integration tests
To install the MockDynatraceSDK, copy the contents of the MockDynatraceSDK folder into
node_modules/@dynatrace/oneagent-sdk
The integration tests were designed to be able to dynamically run on the mock dynatrace and the real
dynatrace depending on the node_modules import
- Updated the create table hook to allow the tests to be run without a config.json
- Modified Dynatrace.js result set callback to allow array results
to indicate the rows returned not just result sets like before
- Added an integration test to check that an insert with execute
would trace the number of rows affected

@IanMcCurdyIanMcCurdy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work, this looks great. There are just a few very small changes to make, then it's good to go

Comment threadtest/acceptance/db.Dynatrace.js Outdated
async.waterfall([prepare, testExecStatement(['1']), testExecStatement(['2']), dropStatement], done);
});

it('should trace a client execute', function (done) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could use a more descriptive string. Right now it's identical to a previous test.

Comment threadextension/Dynatrace.js Outdated
function _prepareStmtUsingDynatrace(conn, prepareFn) {
// args = [sql, options, callback] --> options is optional
return function (...args) {
const cb = args[args.length - 1];

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There should be an args.length > 0 check here, similar to _ExecuteWrapperFn. This also applies to hana-client and Ian McH will fix it there

Comment threadextension/Dynatrace.js Outdated
return conn;
}
conn._dbInfo = dbInfo;
// hana-client does not like decorating.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment isn't relevant here, should just remove it

- Added an index check to ensure that the callback when preparing statements for
dynatrace exists and is a function
- Improved some test naming to better indicate client execute tests vs. client
exec and statement execute tests
- Added a comment to indicate when numbers are returned for rows affected
@he-is-harryhe-is-harry changed the title Added Dynatrace support (WORK IN PROGRESS)Added Dynatrace supportApr 23, 2025
@rlindner81

Copy link
Copy Markdown

@he-is-harry while it is still officially supported, I think Dynatrace is moving away from maintaining their own sdk. The last code update was over 3 years ago.

Would it make sense for you to use @opentelemetry/api instead of @dynatrace/oneagent-sdk. This came up in a recent dependency review of our project.

@rlindner81

Copy link
Copy Markdown

@IanMcCurdy is there anything fundamental holding this back from merging? As I understand it, the "fat" @sap/hana-client does have dynatrace support, so it would be nice to get feature parity on this.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@he-is-harry@rlindner81@IanMcCurdy
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Added Dynatrace support - #258

Open
he-is-harry wants to merge 4 commits into
SAP:masterfrom
he-is-harry:dynatrace
Open

Added Dynatrace support#258
he-is-harry wants to merge 4 commits into
SAP:masterfrom
he-is-harry:dynatrace

Conversation

@he-is-harry

Copy link
Copy Markdown
Contributor
  • Added extension/Dynatrace.js to wrap exec / execute / prepare functions with dynatrace tracing
    • Modified the Client to automatically wrap with dynatrace tracing when isDynatraceEnabled() is true (@dynatrace/oneagent-sdk is installed and HDB_NODEJS_SKIP_DYNATRACE is off) and the dynatrace connect option is true
  • Added the dynatrace and dynatraceTenant connect options
  • Modified ResultSet.js to have the getRowCount function
    • Added 2 unit tests for getRowCount
  • Added the isDynatraceSupported field to the driver (Hana class)
  • Added the MockDynatraceSDK for testing and added integration tests for dynatrace

Testing Notes
The Makefile was modified so that make test-dynatrace will test only the dynatrace integration tests

To install the MockDynatraceSDK, copy the contents of the MockDynatraceSDK folder into node_modules/@dynatrace/oneagent-sdk

The integration tests were designed to be able to dynamically run on the mock dynatrace and the real dynatrace depending on the node_modules import

- Added extension/Dynatrace.js to wrap exec / execute / prepare functions with dynatrace tracing
- Modified the Client to automatically wrap with dynatrace tracing when isDynatraceEnabled()
is true (@dynatrace/oneagent-sdk is installed and HDB_NODEJS_SKIP_DYNATRACE is off) and
the dynatrace connect option is true
- Added the dynatrace and dynatraceTenant connect options
- Modified ResultSet.js to have the getRowCount function
- Added 2 unit tests for getRowCount
- Added the isDynatraceSupported field to the driver (Hana class)
- Added the MockDynatraceSDK for testing and added integration tests for dynatrace
Testing Notes
The Makefile was modified so that `make test-dynatrace` will test only the dynatrace integration tests
To install the MockDynatraceSDK, copy the contents of the MockDynatraceSDK folder into
node_modules/@dynatrace/oneagent-sdk
The integration tests were designed to be able to dynamically run on the mock dynatrace and the real
dynatrace depending on the node_modules import
- Updated the create table hook to allow the tests to be run without a config.json
- Modified Dynatrace.js result set callback to allow array results
to indicate the rows returned not just result sets like before
- Added an integration test to check that an insert with execute
would trace the number of rows affected

@IanMcCurdyIanMcCurdy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work, this looks great. There are just a few very small changes to make, then it's good to go

Comment threadtest/acceptance/db.Dynatrace.js Outdated
async.waterfall([prepare, testExecStatement(['1']), testExecStatement(['2']), dropStatement], done);
});

it('should trace a client execute', function (done) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could use a more descriptive string. Right now it's identical to a previous test.

Comment threadextension/Dynatrace.js Outdated
function _prepareStmtUsingDynatrace(conn, prepareFn) {
// args = [sql, options, callback] --> options is optional
return function (...args) {
const cb = args[args.length - 1];

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There should be an args.length > 0 check here, similar to _ExecuteWrapperFn. This also applies to hana-client and Ian McH will fix it there

Comment threadextension/Dynatrace.js Outdated
return conn;
}
conn._dbInfo = dbInfo;
// hana-client does not like decorating.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment isn't relevant here, should just remove it

- Added an index check to ensure that the callback when preparing statements for
dynatrace exists and is a function
- Improved some test naming to better indicate client execute tests vs. client
exec and statement execute tests
- Added a comment to indicate when numbers are returned for rows affected
@he-is-harryhe-is-harry changed the title Added Dynatrace support (WORK IN PROGRESS)Added Dynatrace supportApr 23, 2025
@rlindner81

Copy link
Copy Markdown

@he-is-harry while it is still officially supported, I think Dynatrace is moving away from maintaining their own sdk. The last code update was over 3 years ago.

Would it make sense for you to use @opentelemetry/api instead of @dynatrace/oneagent-sdk. This came up in a recent dependency review of our project.

@rlindner81

Copy link
Copy Markdown

@IanMcCurdy is there anything fundamental holding this back from merging? As I understand it, the "fat" @sap/hana-client does have dynatrace support, so it would be nice to get feature parity on this.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@he-is-harry@rlindner81@IanMcCurdy
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Added Dynatrace support - #258

Open
he-is-harry wants to merge 4 commits into
SAP:masterfrom
he-is-harry:dynatrace
Open

Added Dynatrace support#258
he-is-harry wants to merge 4 commits into
SAP:masterfrom
he-is-harry:dynatrace

Conversation

@he-is-harry

Copy link
Copy Markdown
Contributor
  • Added extension/Dynatrace.js to wrap exec / execute / prepare functions with dynatrace tracing
    • Modified the Client to automatically wrap with dynatrace tracing when isDynatraceEnabled() is true (@dynatrace/oneagent-sdk is installed and HDB_NODEJS_SKIP_DYNATRACE is off) and the dynatrace connect option is true
  • Added the dynatrace and dynatraceTenant connect options
  • Modified ResultSet.js to have the getRowCount function
    • Added 2 unit tests for getRowCount
  • Added the isDynatraceSupported field to the driver (Hana class)
  • Added the MockDynatraceSDK for testing and added integration tests for dynatrace

Testing Notes
The Makefile was modified so that make test-dynatrace will test only the dynatrace integration tests

To install the MockDynatraceSDK, copy the contents of the MockDynatraceSDK folder into node_modules/@dynatrace/oneagent-sdk

The integration tests were designed to be able to dynamically run on the mock dynatrace and the real dynatrace depending on the node_modules import

- Added extension/Dynatrace.js to wrap exec / execute / prepare functions with dynatrace tracing
- Modified the Client to automatically wrap with dynatrace tracing when isDynatraceEnabled()
is true (@dynatrace/oneagent-sdk is installed and HDB_NODEJS_SKIP_DYNATRACE is off) and
the dynatrace connect option is true
- Added the dynatrace and dynatraceTenant connect options
- Modified ResultSet.js to have the getRowCount function
- Added 2 unit tests for getRowCount
- Added the isDynatraceSupported field to the driver (Hana class)
- Added the MockDynatraceSDK for testing and added integration tests for dynatrace
Testing Notes
The Makefile was modified so that `make test-dynatrace` will test only the dynatrace integration tests
To install the MockDynatraceSDK, copy the contents of the MockDynatraceSDK folder into
node_modules/@dynatrace/oneagent-sdk
The integration tests were designed to be able to dynamically run on the mock dynatrace and the real
dynatrace depending on the node_modules import
- Updated the create table hook to allow the tests to be run without a config.json
- Modified Dynatrace.js result set callback to allow array results
to indicate the rows returned not just result sets like before
- Added an integration test to check that an insert with execute
would trace the number of rows affected

@IanMcCurdyIanMcCurdy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work, this looks great. There are just a few very small changes to make, then it's good to go

Comment threadtest/acceptance/db.Dynatrace.js Outdated
async.waterfall([prepare, testExecStatement(['1']), testExecStatement(['2']), dropStatement], done);
});

it('should trace a client execute', function (done) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could use a more descriptive string. Right now it's identical to a previous test.

Comment threadextension/Dynatrace.js Outdated
function _prepareStmtUsingDynatrace(conn, prepareFn) {
// args = [sql, options, callback] --> options is optional
return function (...args) {
const cb = args[args.length - 1];

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There should be an args.length > 0 check here, similar to _ExecuteWrapperFn. This also applies to hana-client and Ian McH will fix it there

Comment threadextension/Dynatrace.js Outdated
return conn;
}
conn._dbInfo = dbInfo;
// hana-client does not like decorating.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment isn't relevant here, should just remove it

- Added an index check to ensure that the callback when preparing statements for
dynatrace exists and is a function
- Improved some test naming to better indicate client execute tests vs. client
exec and statement execute tests
- Added a comment to indicate when numbers are returned for rows affected
@he-is-harryhe-is-harry changed the title Added Dynatrace support (WORK IN PROGRESS)Added Dynatrace supportApr 23, 2025
@rlindner81

Copy link
Copy Markdown

@he-is-harry while it is still officially supported, I think Dynatrace is moving away from maintaining their own sdk. The last code update was over 3 years ago.

Would it make sense for you to use @opentelemetry/api instead of @dynatrace/oneagent-sdk. This came up in a recent dependency review of our project.

@rlindner81

Copy link
Copy Markdown

@IanMcCurdy is there anything fundamental holding this back from merging? As I understand it, the "fat" @sap/hana-client does have dynatrace support, so it would be nice to get feature parity on this.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@he-is-harry@rlindner81@IanMcCurdy
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Added Dynatrace support - #258

Open
he-is-harry wants to merge 4 commits into
SAP:masterfrom
he-is-harry:dynatrace
Open

Added Dynatrace support#258
he-is-harry wants to merge 4 commits into
SAP:masterfrom
he-is-harry:dynatrace

Conversation

@he-is-harry

Copy link
Copy Markdown
Contributor
  • Added extension/Dynatrace.js to wrap exec / execute / prepare functions with dynatrace tracing
    • Modified the Client to automatically wrap with dynatrace tracing when isDynatraceEnabled() is true (@dynatrace/oneagent-sdk is installed and HDB_NODEJS_SKIP_DYNATRACE is off) and the dynatrace connect option is true
  • Added the dynatrace and dynatraceTenant connect options
  • Modified ResultSet.js to have the getRowCount function
    • Added 2 unit tests for getRowCount
  • Added the isDynatraceSupported field to the driver (Hana class)
  • Added the MockDynatraceSDK for testing and added integration tests for dynatrace

Testing Notes
The Makefile was modified so that make test-dynatrace will test only the dynatrace integration tests

To install the MockDynatraceSDK, copy the contents of the MockDynatraceSDK folder into node_modules/@dynatrace/oneagent-sdk

The integration tests were designed to be able to dynamically run on the mock dynatrace and the real dynatrace depending on the node_modules import

- Added extension/Dynatrace.js to wrap exec / execute / prepare functions with dynatrace tracing
- Modified the Client to automatically wrap with dynatrace tracing when isDynatraceEnabled()
is true (@dynatrace/oneagent-sdk is installed and HDB_NODEJS_SKIP_DYNATRACE is off) and
the dynatrace connect option is true
- Added the dynatrace and dynatraceTenant connect options
- Modified ResultSet.js to have the getRowCount function
- Added 2 unit tests for getRowCount
- Added the isDynatraceSupported field to the driver (Hana class)
- Added the MockDynatraceSDK for testing and added integration tests for dynatrace
Testing Notes
The Makefile was modified so that `make test-dynatrace` will test only the dynatrace integration tests
To install the MockDynatraceSDK, copy the contents of the MockDynatraceSDK folder into
node_modules/@dynatrace/oneagent-sdk
The integration tests were designed to be able to dynamically run on the mock dynatrace and the real
dynatrace depending on the node_modules import
- Updated the create table hook to allow the tests to be run without a config.json
- Modified Dynatrace.js result set callback to allow array results
to indicate the rows returned not just result sets like before
- Added an integration test to check that an insert with execute
would trace the number of rows affected

@IanMcCurdyIanMcCurdy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work, this looks great. There are just a few very small changes to make, then it's good to go

Comment threadtest/acceptance/db.Dynatrace.js Outdated
async.waterfall([prepare, testExecStatement(['1']), testExecStatement(['2']), dropStatement], done);
});

it('should trace a client execute', function (done) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could use a more descriptive string. Right now it's identical to a previous test.

Comment threadextension/Dynatrace.js Outdated
function _prepareStmtUsingDynatrace(conn, prepareFn) {
// args = [sql, options, callback] --> options is optional
return function (...args) {
const cb = args[args.length - 1];

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There should be an args.length > 0 check here, similar to _ExecuteWrapperFn. This also applies to hana-client and Ian McH will fix it there

Comment threadextension/Dynatrace.js Outdated
return conn;
}
conn._dbInfo = dbInfo;
// hana-client does not like decorating.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment isn't relevant here, should just remove it

- Added an index check to ensure that the callback when preparing statements for
dynatrace exists and is a function
- Improved some test naming to better indicate client execute tests vs. client
exec and statement execute tests
- Added a comment to indicate when numbers are returned for rows affected
@he-is-harryhe-is-harry changed the title Added Dynatrace support (WORK IN PROGRESS)Added Dynatrace supportApr 23, 2025
@rlindner81

Copy link
Copy Markdown

@he-is-harry while it is still officially supported, I think Dynatrace is moving away from maintaining their own sdk. The last code update was over 3 years ago.

Would it make sense for you to use @opentelemetry/api instead of @dynatrace/oneagent-sdk. This came up in a recent dependency review of our project.

@rlindner81

Copy link
Copy Markdown

@IanMcCurdy is there anything fundamental holding this back from merging? As I understand it, the "fat" @sap/hana-client does have dynatrace support, so it would be nice to get feature parity on this.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@he-is-harry@rlindner81@IanMcCurdy
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Added Dynatrace support - #258

Open
he-is-harry wants to merge 4 commits into
SAP:masterfrom
he-is-harry:dynatrace
Open

Added Dynatrace support#258
he-is-harry wants to merge 4 commits into
SAP:masterfrom
he-is-harry:dynatrace

Conversation

@he-is-harry

Copy link
Copy Markdown
Contributor
  • Added extension/Dynatrace.js to wrap exec / execute / prepare functions with dynatrace tracing
    • Modified the Client to automatically wrap with dynatrace tracing when isDynatraceEnabled() is true (@dynatrace/oneagent-sdk is installed and HDB_NODEJS_SKIP_DYNATRACE is off) and the dynatrace connect option is true
  • Added the dynatrace and dynatraceTenant connect options
  • Modified ResultSet.js to have the getRowCount function
    • Added 2 unit tests for getRowCount
  • Added the isDynatraceSupported field to the driver (Hana class)
  • Added the MockDynatraceSDK for testing and added integration tests for dynatrace

Testing Notes
The Makefile was modified so that make test-dynatrace will test only the dynatrace integration tests

To install the MockDynatraceSDK, copy the contents of the MockDynatraceSDK folder into node_modules/@dynatrace/oneagent-sdk

The integration tests were designed to be able to dynamically run on the mock dynatrace and the real dynatrace depending on the node_modules import

- Added extension/Dynatrace.js to wrap exec / execute / prepare functions with dynatrace tracing
- Modified the Client to automatically wrap with dynatrace tracing when isDynatraceEnabled()
is true (@dynatrace/oneagent-sdk is installed and HDB_NODEJS_SKIP_DYNATRACE is off) and
the dynatrace connect option is true
- Added the dynatrace and dynatraceTenant connect options
- Modified ResultSet.js to have the getRowCount function
- Added 2 unit tests for getRowCount
- Added the isDynatraceSupported field to the driver (Hana class)
- Added the MockDynatraceSDK for testing and added integration tests for dynatrace
Testing Notes
The Makefile was modified so that `make test-dynatrace` will test only the dynatrace integration tests
To install the MockDynatraceSDK, copy the contents of the MockDynatraceSDK folder into
node_modules/@dynatrace/oneagent-sdk
The integration tests were designed to be able to dynamically run on the mock dynatrace and the real
dynatrace depending on the node_modules import
- Updated the create table hook to allow the tests to be run without a config.json
- Modified Dynatrace.js result set callback to allow array results
to indicate the rows returned not just result sets like before
- Added an integration test to check that an insert with execute
would trace the number of rows affected

@IanMcCurdyIanMcCurdy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work, this looks great. There are just a few very small changes to make, then it's good to go

Comment threadtest/acceptance/db.Dynatrace.js Outdated
async.waterfall([prepare, testExecStatement(['1']), testExecStatement(['2']), dropStatement], done);
});

it('should trace a client execute', function (done) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could use a more descriptive string. Right now it's identical to a previous test.

Comment threadextension/Dynatrace.js Outdated
function _prepareStmtUsingDynatrace(conn, prepareFn) {
// args = [sql, options, callback] --> options is optional
return function (...args) {
const cb = args[args.length - 1];

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There should be an args.length > 0 check here, similar to _ExecuteWrapperFn. This also applies to hana-client and Ian McH will fix it there

Comment threadextension/Dynatrace.js Outdated
return conn;
}
conn._dbInfo = dbInfo;
// hana-client does not like decorating.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment isn't relevant here, should just remove it

- Added an index check to ensure that the callback when preparing statements for
dynatrace exists and is a function
- Improved some test naming to better indicate client execute tests vs. client
exec and statement execute tests
- Added a comment to indicate when numbers are returned for rows affected
@he-is-harryhe-is-harry changed the title Added Dynatrace support (WORK IN PROGRESS)Added Dynatrace supportApr 23, 2025
@rlindner81

Copy link
Copy Markdown

@he-is-harry while it is still officially supported, I think Dynatrace is moving away from maintaining their own sdk. The last code update was over 3 years ago.

Would it make sense for you to use @opentelemetry/api instead of @dynatrace/oneagent-sdk. This came up in a recent dependency review of our project.

@rlindner81

Copy link
Copy Markdown

@IanMcCurdy is there anything fundamental holding this back from merging? As I understand it, the "fat" @sap/hana-client does have dynatrace support, so it would be nice to get feature parity on this.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@he-is-harry@rlindner81@IanMcCurdy
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Added Dynatrace support - #258

Open
he-is-harry wants to merge 4 commits into
SAP:masterfrom
he-is-harry:dynatrace
Open

Added Dynatrace support#258
he-is-harry wants to merge 4 commits into
SAP:masterfrom
he-is-harry:dynatrace

Conversation

@he-is-harry

Copy link
Copy Markdown
Contributor
  • Added extension/Dynatrace.js to wrap exec / execute / prepare functions with dynatrace tracing
    • Modified the Client to automatically wrap with dynatrace tracing when isDynatraceEnabled() is true (@dynatrace/oneagent-sdk is installed and HDB_NODEJS_SKIP_DYNATRACE is off) and the dynatrace connect option is true
  • Added the dynatrace and dynatraceTenant connect options
  • Modified ResultSet.js to have the getRowCount function
    • Added 2 unit tests for getRowCount
  • Added the isDynatraceSupported field to the driver (Hana class)
  • Added the MockDynatraceSDK for testing and added integration tests for dynatrace

Testing Notes
The Makefile was modified so that make test-dynatrace will test only the dynatrace integration tests

To install the MockDynatraceSDK, copy the contents of the MockDynatraceSDK folder into node_modules/@dynatrace/oneagent-sdk

The integration tests were designed to be able to dynamically run on the mock dynatrace and the real dynatrace depending on the node_modules import

- Added extension/Dynatrace.js to wrap exec / execute / prepare functions with dynatrace tracing
- Modified the Client to automatically wrap with dynatrace tracing when isDynatraceEnabled()
is true (@dynatrace/oneagent-sdk is installed and HDB_NODEJS_SKIP_DYNATRACE is off) and
the dynatrace connect option is true
- Added the dynatrace and dynatraceTenant connect options
- Modified ResultSet.js to have the getRowCount function
- Added 2 unit tests for getRowCount
- Added the isDynatraceSupported field to the driver (Hana class)
- Added the MockDynatraceSDK for testing and added integration tests for dynatrace
Testing Notes
The Makefile was modified so that `make test-dynatrace` will test only the dynatrace integration tests
To install the MockDynatraceSDK, copy the contents of the MockDynatraceSDK folder into
node_modules/@dynatrace/oneagent-sdk
The integration tests were designed to be able to dynamically run on the mock dynatrace and the real
dynatrace depending on the node_modules import
- Updated the create table hook to allow the tests to be run without a config.json
- Modified Dynatrace.js result set callback to allow array results
to indicate the rows returned not just result sets like before
- Added an integration test to check that an insert with execute
would trace the number of rows affected

@IanMcCurdyIanMcCurdy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work, this looks great. There are just a few very small changes to make, then it's good to go

Comment threadtest/acceptance/db.Dynatrace.js Outdated
async.waterfall([prepare, testExecStatement(['1']), testExecStatement(['2']), dropStatement], done);
});

it('should trace a client execute', function (done) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could use a more descriptive string. Right now it's identical to a previous test.

Comment threadextension/Dynatrace.js Outdated
function _prepareStmtUsingDynatrace(conn, prepareFn) {
// args = [sql, options, callback] --> options is optional
return function (...args) {
const cb = args[args.length - 1];

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There should be an args.length > 0 check here, similar to _ExecuteWrapperFn. This also applies to hana-client and Ian McH will fix it there

Comment threadextension/Dynatrace.js Outdated
return conn;
}
conn._dbInfo = dbInfo;
// hana-client does not like decorating.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment isn't relevant here, should just remove it

- Added an index check to ensure that the callback when preparing statements for
dynatrace exists and is a function
- Improved some test naming to better indicate client execute tests vs. client
exec and statement execute tests
- Added a comment to indicate when numbers are returned for rows affected
@he-is-harryhe-is-harry changed the title Added Dynatrace support (WORK IN PROGRESS)Added Dynatrace supportApr 23, 2025
@rlindner81

Copy link
Copy Markdown

@he-is-harry while it is still officially supported, I think Dynatrace is moving away from maintaining their own sdk. The last code update was over 3 years ago.

Would it make sense for you to use @opentelemetry/api instead of @dynatrace/oneagent-sdk. This came up in a recent dependency review of our project.

@rlindner81

Copy link
Copy Markdown

@IanMcCurdy is there anything fundamental holding this back from merging? As I understand it, the "fat" @sap/hana-client does have dynatrace support, so it would be nice to get feature parity on this.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@he-is-harry@rlindner81@IanMcCurdy