Make observability outputs standards-compliant and fully observable.
Apply this when writing instrumentation and when publishing tracing/telemetry examples: 1) Validate semantic conventions: For HTTP-related telemetry, ensure attributes conform to the OpenTelemetry HTTP semantic conventions (semconv). If you have older non-compliant attributes, you may keep them (deprecated/legacy), but add new compliant attributes so downstream analysis remains correct. 2) Handle the complete signal in examples: Code samples that demonstrate telemetry must log/handle the primary emitted data and lifecycle events—at minimum data plus end (and error), not just headers/metadata.
Example (stream handling in an observability-oriented gRPC-Web example):
const stream = client.lotsOfReplies(req, {});
stream.on('metadata', (metadata) => {
console.log('Response headers:', metadata);
});
stream.on('data', (response) => {
console.log('Reply:', response.getReply());
});
stream.on('end', () => {
console.log('Stream ended');
});
stream.on('error', (err) => {
console.error('Error:', err);
});
Example (semantic convention compliance principle):
Enter the URL of a public GitHub repository