opentelemetry-js
opentelemetry-js copied to clipboard
Wrong data type for rpc.grpc.status_code
trafficstars
Please answer these questions before submitting a bug report.
What version of OpenTelemetry are you using?
1.3.0
What version of Node are you using?
v18.3.0
Please provide the code you used to setup the OpenTelemetry SDK
const opentelemetry = require('@opentelemetry/api');
const { registerInstrumentations } = require('@opentelemetry/instrumentation');
const { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');
const { Resource } = require('@opentelemetry/resources');
const { SemanticResourceAttributes } = require('@opentelemetry/semantic-conventions');
const { SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');
const { OTLPTraceExporter } = require('@opentelemetry/exporter-trace-otlp-grpc');
const { GrpcInstrumentation } = require('@opentelemetry/instrumentation-grpc');
const grpc = require('@grpc/grpc-js');
const EXPORTER = process.env.EXPORTER || '';
module.exports = (serviceName) => {
const provider = new NodeTracerProvider({
resource: new Resource({
[SemanticResourceAttributes.SERVICE_NAME]: serviceName,
}),
});
let exporter;
if (EXPORTER.toLowerCase().startsWith('otlp')) {
exporter = new OTLPTraceExporter({
serviceName,
credentials: grpc.credentials.createInsecure(),
});
} else {
return console.error(`Unknown exporter ${EXPORTER}`);
}
provider.addSpanProcessor(new SimpleSpanProcessor(exporter));
// Initialize the OpenTelemetry APIs to use the NodeTracerProvider bindings
provider.register();
registerInstrumentations({
instrumentations: [
new GrpcInstrumentation(),
],
});
return opentelemetry.trace.getTracer('grpc-js-example');
};
What did you do?
Make a request after setting up a grpc server with grpc-js.
What did you expect to see?
Expected rpc.grpc.status_code to be of type int but it was string.
Additional context
According to official otel spec, rpc.grpc.status_code should be int data type.
Ref: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/rpc.md#grpc-attributes
Possibly related #2984