diff --git a/CHANGELOG.md b/CHANGELOG.md index 644972b9503..f4560294081 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ For experimental package changes, see the [experimental CHANGELOG](experimental/ ### :rocket: (Enhancement) +* feat: include instrumentation scope info in console span and log record exporters [#4848](https://github.com/open-telemetry/opentelemetry-js/pull/4848) @blumamir + ### :bug: (Bug Fix) ### :books: (Refine Doc) diff --git a/experimental/packages/sdk-logs/src/export/ConsoleLogRecordExporter.ts b/experimental/packages/sdk-logs/src/export/ConsoleLogRecordExporter.ts index efc52f4d3f0..74441d00987 100644 --- a/experimental/packages/sdk-logs/src/export/ConsoleLogRecordExporter.ts +++ b/experimental/packages/sdk-logs/src/export/ConsoleLogRecordExporter.ts @@ -55,6 +55,7 @@ export class ConsoleLogRecordExporter implements LogRecordExporter { resource: { attributes: logRecord.resource.attributes, }, + instrumentationScope: logRecord.instrumentationScope, timestamp: hrTimeToMicroseconds(logRecord.hrTime), traceId: logRecord.spanContext?.traceId, spanId: logRecord.spanContext?.spanId, diff --git a/experimental/packages/sdk-logs/test/common/export/ConsoleLogRecordExporter.test.ts b/experimental/packages/sdk-logs/test/common/export/ConsoleLogRecordExporter.test.ts index 383bceec0c4..5a264a2074a 100644 --- a/experimental/packages/sdk-logs/test/common/export/ConsoleLogRecordExporter.test.ts +++ b/experimental/packages/sdk-logs/test/common/export/ConsoleLogRecordExporter.test.ts @@ -40,6 +40,8 @@ describe('ConsoleLogRecordExporter', () => { describe('export', () => { it('should export information about log record', () => { assert.doesNotThrow(() => { + const instrumentationScopeName = '@opentelemetry/sdk-logs/test'; + const instrumentationScopeVersion = '1.2.3'; const consoleExporter = new ConsoleLogRecordExporter(); const spyConsole = sinon.spy(console, 'dir'); const spyExport = sinon.spy(consoleExporter, 'export'); @@ -48,11 +50,13 @@ describe('ConsoleLogRecordExporter', () => { new SimpleLogRecordProcessor(consoleExporter) ); - provider.getLogger('default').emit({ - body: 'body1', - severityNumber: SeverityNumber.DEBUG, - severityText: 'DEBUG', - }); + provider + .getLogger(instrumentationScopeName, instrumentationScopeVersion) + .emit({ + body: 'body1', + severityNumber: SeverityNumber.DEBUG, + severityText: 'DEBUG', + }); const logRecords = spyExport.args[0]; const firstLogRecord = logRecords[0][0]; @@ -63,6 +67,7 @@ describe('ConsoleLogRecordExporter', () => { const expectedKeys = [ 'attributes', 'body', + 'instrumentationScope', 'resource', 'severityNumber', 'severityText', @@ -76,6 +81,13 @@ describe('ConsoleLogRecordExporter', () => { assert.ok(firstLogRecord.severityNumber === SeverityNumber.DEBUG); assert.ok(firstLogRecord.severityText === 'DEBUG'); assert.ok(keys === expectedKeys, 'expectedKeys'); + assert.ok( + firstLogRecord.instrumentationScope.name === instrumentationScopeName + ); + assert.ok( + firstLogRecord.instrumentationScope.version === + instrumentationScopeVersion + ); assert.ok(spyExport.calledOnce); }); diff --git a/packages/opentelemetry-sdk-trace-base/src/export/ConsoleSpanExporter.ts b/packages/opentelemetry-sdk-trace-base/src/export/ConsoleSpanExporter.ts index dcca6d23bf1..16998aa1f29 100644 --- a/packages/opentelemetry-sdk-trace-base/src/export/ConsoleSpanExporter.ts +++ b/packages/opentelemetry-sdk-trace-base/src/export/ConsoleSpanExporter.ts @@ -65,6 +65,7 @@ export class ConsoleSpanExporter implements SpanExporter { resource: { attributes: span.resource.attributes, }, + instrumentationScope: span.instrumentationLibrary, traceId: span.spanContext().traceId, parentId: span.parentSpanId, traceState: span.spanContext().traceState?.serialize(), diff --git a/packages/opentelemetry-sdk-trace-base/test/common/export/ConsoleSpanExporter.test.ts b/packages/opentelemetry-sdk-trace-base/test/common/export/ConsoleSpanExporter.test.ts index ab50d26b572..c73f318fffb 100644 --- a/packages/opentelemetry-sdk-trace-base/test/common/export/ConsoleSpanExporter.test.ts +++ b/packages/opentelemetry-sdk-trace-base/test/common/export/ConsoleSpanExporter.test.ts @@ -55,7 +55,12 @@ describe('ConsoleSpanExporter', () => { new SimpleSpanProcessor(consoleExporter) ); - const tracer = basicTracerProvider.getTracer('default'); + const instrumentationScopeName = '@opentelemetry/sdk-trace-base/test'; + const instrumentationScopeVersion = '1.2.3'; + const tracer = basicTracerProvider.getTracer( + instrumentationScopeName, + instrumentationScopeVersion + ); const context: SpanContext = { traceId: 'a3cda95b652f4a1592b449d5929fda1b', spanId: '5e0c63257de34c92', @@ -80,6 +85,7 @@ describe('ConsoleSpanExporter', () => { 'duration', 'events', 'id', + 'instrumentationScope', 'kind', 'links', 'name', @@ -95,6 +101,13 @@ describe('ConsoleSpanExporter', () => { assert.ok(firstEvent.name === 'foobar'); assert.ok(consoleSpan.id === firstSpan.spanContext().spanId); assert.ok(keys === expectedKeys, 'expectedKeys'); + assert.ok( + firstSpan.instrumentationLibrary.name === instrumentationScopeName + ); + assert.ok( + firstSpan.instrumentationLibrary.version === + instrumentationScopeVersion + ); assert.ok(spyExport.calledOnce); });