@@ -82,12 +82,17 @@ module.exports = () => {
82
82
if ( impl ?. match ( / ^ @ c a p - j s \/ / ) ) {
83
83
cds . once ( 'served' , ( ) => {
84
84
// HANA
85
- if ( impl === '@cap-js/hana' && cds . env . requires . telemetry . tracing . _hana_prom ) {
85
+ if ( impl === '@cap-js/hana' ) {
86
86
try {
87
+ // REVISIT: when telemetry and hana are loaded from different places this doesn't work
88
+ const hanaDriver = require ( '@cap-js/hana/lib/drivers/base.js' )
89
+
90
+ // driver does instrumentation itself?
91
+ if ( hanaDriver . isOpenTelemetrySupported ) return
92
+
93
+ // wrap promisified HANA driver
87
94
const [ major , minor ] = require ( '@cap-js/hana/package.json' ) . version . split ( '.' )
88
- if ( major > 1 || ( major === 1 && minor >= 7 ) ) {
89
- // REVISIT: when telemetry and hana are loaded from differen places this doesn't work
90
- const hanaDriver = require ( '@cap-js/hana/lib/drivers/base.js' )
95
+ if ( cds . env . requires . telemetry . tracing . _hana_prom && ( major > 1 || ( major === 1 && minor >= 7 ) ) ) {
91
96
const _prom = hanaDriver . prom
92
97
hanaDriver . prom = function ( dbc , func ) {
93
98
const fn = _prom ( dbc , func )
@@ -100,11 +105,11 @@ module.exports = () => {
100
105
return
101
106
}
102
107
} catch ( err ) {
103
- LOG . _warning && LOG . warning ( 'Failed to wrap hana driver due to error:' , err )
108
+ LOG . _warn && LOG . warn ( 'Failed to wrap hana driver due to error:' , err )
104
109
}
105
110
}
106
111
107
- // other DBs
112
+ // other DBs (or non-promisified HANA driver)
108
113
const dbService = cds . db . constructor
109
114
const { prepare : _prepare , exec : _exec } = dbService . prototype
110
115
dbService . prototype . prepare = wrap ( _prepare , {
0 commit comments