Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function http_get(fn, url, span) {
const method = 'GET';
const headers = {};
span.setTag(Tags.HTTP_URL, url);
span.setTag(Tags.HTTP_METHOD, method);
span.setTag(Tags.SPAN_KIND, Tags.SPAN_KIND_RPC_CLIENT);
// Send span context via request headers (parent id etc.)
tracer.inject(span, FORMAT_HTTP_HEADERS, headers);
return request({url, method, headers})
.then( data => {
span.finish();
return data;
}, e => {
span.finish();
throw e;
});
}
function http_get(fn, url, span) {
const method = 'GET';
const headers = {};
span.setTag(Tags.HTTP_URL, url);
span.setTag(Tags.HTTP_METHOD, method);
span.setTag(Tags.SPAN_KIND, Tags.SPAN_KIND_RPC_CLIENT);
// Send span context via request headers (parent id etc.)
tracer.inject(span, FORMAT_HTTP_HEADERS, headers);
return request({url, method, headers})
.then( data => {
span.finish();
return data;
}, e => {
span.finish();
throw e;
});
}
client.set('string key', 'string val', (err, replies) => {
expect(replies).to.be.eql('OK')
expect(cls.startChildSpan).to.be.calledWith(tracer, 'redis_set', {
tags: {
[Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT,
[Tags.DB_TYPE]: instrumentation.DB_TYPE,
[Tags.DB_STATEMENT]: 'set string key,string val'
}
})
// FIXME: is this an issue?
// expect(mockChildSpan.finish).to.have.callCount(1)
done(err)
})
})
it('should start and finish span with http', async () => {
nock('http://risingstack.com')
.get('/foo')
.reply(200)
await request({
uri: 'http://risingstack.com/foo',
query: { token: 'secret' }
})
expect(cls.startChildSpan).to.be.calledWith(tracer, instrumentation.OPERATION_NAME, {
tags: {
[Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT,
[Tags.HTTP_URL]: 'http://risingstack.com:80/foo',
[Tags.HTTP_METHOD]: 'GET'
}
})
expect(mockChildSpan.setTag).to.have.calledWith(Tags.HTTP_STATUS_CODE, 200)
expect(mockChildSpan.finish).to.have.callCount(1)
})
it('should start and finish span', async () => {
const site = {
name: 'risingstack',
url: 'https://risingstack.com'
}
const result = await dbSites.insert(site)
expect(result).to.be.eql(site)
expect(cls.startChildSpan).to.be.calledWith(tracer, `${instrumentation.OPERATION_NAME}_insert`, {
tags: {
[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'
}
})
expect(mockChildSpan.finish).to.have.callCount(1)
})
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
}
}))
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
}
}))
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
}
}))
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
}
}))
const createCommand = (command: string) => (
promise: Promise
): Promise => {
const parentScope = tracer.scopeManager().active()
const span = tracer.startSpan("memcached", {
childOf: parentScope && parentScope.span(),
tags: {
[Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT,
[Tags.DB_TYPE]: "memcached",
"service.name": `${DD_TRACER_SERVICE_NAME}.memcached`,
"resource.name": command,
"span.type": "memcached",
},
})
return promise.then(
result => {
span.finish()
return result
},
err => {
const tags = {
"error.type": err.name,
"error.msg": err.message,