Open
Conversation
- 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
IanMcCurdy
reviewed
Feb 26, 2025
Collaborator
IanMcCurdy
left a comment
There was a problem hiding this comment.
Nice work, this looks great. There are just a few very small changes to make, then it's good to go
test/acceptance/db.Dynatrace.js
Outdated
| async.waterfall([prepare, testExecStatement(['1']), testExecStatement(['2']), dropStatement], done); | ||
| }); | ||
|
|
||
| it('should trace a client execute', function (done) { |
Collaborator
There was a problem hiding this comment.
This could use a more descriptive string. Right now it's identical to a previous test.
extension/Dynatrace.js
Outdated
| function _prepareStmtUsingDynatrace(conn, prepareFn) { | ||
| // args = [sql, options, callback] --> options is optional | ||
| return function (...args) { | ||
| const cb = args[args.length - 1]; |
Collaborator
There was a problem hiding this comment.
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
extension/Dynatrace.js
Outdated
| return conn; | ||
| } | ||
| conn._dbInfo = dbInfo; | ||
| // hana-client does not like decorating. |
Collaborator
There was a problem hiding this comment.
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Testing Notes
The Makefile was modified so that
make test-dynatracewill test only the dynatrace integration testsTo 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