function nextWrapFactory (tracers) { return function nextWrap (next) { return function nextTrace (cb) { const operationName = `${OPERATION_NAME}_cursor` const statement = JSON.stringify(this.cmd) const spans = tracers.map((tracer) => cls.startChildSpan(tracer, operationName, { tags: { [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT, [Tags.DB_TYPE]: DB_TYPE, [Tags.DB_STATEMENT]: statement } })) debug(`Operation started ${OPERATION_NAME}`, { [Tags.DB_TYPE]: DB_TYPE, [Tags.DB_STATEMENT]: statement }) return next.call(this, wrapCallback(tracers, spans, operationName, cb)) } } }
[Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT, [Tags.DB_TYPE]: instrumentation.DB_TYPE, [Tags.DB_STATEMENT]: query
function wrapFactory (tracers, command) { return function (original) { return function mongoOperationTrace (ns, ops, options, callback) { const operationName = `${OPERATION_NAME}_${command}` const statement = JSON.stringify(ops) const spans = tracers.map((tracer) => cls.startChildSpan(tracer, operationName, { tags: { [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT, [Tags.DB_TYPE]: DB_TYPE, [Tags.DB_STATEMENT]: statement, [Tags.DB_INSTANCE]: ns } })) debug(`Operation started ${operationName}`, { [Tags.DB_TYPE]: DB_TYPE, [Tags.DB_STATEMENT]: statement, [Tags.DB_INSTANCE]: ns }) if (typeof options === 'function') { return original.call(this, ns, ops, wrapCallback(tracers, spans, operationName, options)) } return original.call(this, ns, ops, options, wrapCallback(tracers, spans, operationName, callback)) } } }
[Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT, [Tags.DB_TYPE]: DB_TYPE, [Tags.DB_STATEMENT]: statement [Tags.DB_STATEMENT]: statement })
[Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT, [Tags.DB_TYPE]: DB_TYPE, [Tags.DB_STATEMENT]: statement [Tags.DB_STATEMENT]: statement })
[Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT, [Tags.DB_TYPE]: instrumentation.DB_TYPE, [Tags.DB_STATEMENT]: 'set string key,string val'
[Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT, [Tags.DB_TYPE]: DB_TYPE, [Tags.DB_STATEMENT]: statement [Tags.DB_STATEMENT]: statement })
[Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT, [Tags.DB_TYPE]: instrumentation.DB_TYPE, [Tags.DB_STATEMENT]: JSON.stringify([site]), [Tags.DB_INSTANCE]: 'mydb.sites'
[Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT, [Tags.DB_TYPE]: instrumentation.DB_TYPE, [Tags.DB_STATEMENT]: query