traceapm
Version:
SDK for OpenTelemetry auto-instrumentation and OTLP export for Node.js apps.
19 lines (15 loc) • 673 B
JavaScript
const { metrics, context, trace } = require('@opentelemetry/api');
const meter = metrics.getMeter('custom-metrics');
const httpRequestDuration = meter.createHistogram('http_request_duration_custom', {
description: 'Custom HTTP request duration with trace and span IDs',
});
function recordHttpRequestDuration(durationMs, attributes = {}) {
const currentSpan = trace.getSpan(context.active());
if (currentSpan) {
const spanContext = currentSpan.spanContext();
attributes.trace_id = spanContext.traceId;
attributes.span_id = spanContext.spanId;
}
httpRequestDuration.record(durationMs, attributes);
}
module.exports = { recordHttpRequestDuration };