Skip to content

Commit 56c032e

Browse files
authored
chore: set default service name (#2227)
1 parent 7fa4ff7 commit 56c032e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+503
-664
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,8 @@ To request automatic tracing support for a module not on this list, please [file
232232

233233
- `JaegerHttpTracePropagator` renamed to `JaegerPropagator`
234234

235+
- `serviceName` configuration removed from Collector exporters. Use `service.name` Resource attribute instead.
236+
235237
### 0.18.x to 0.19.0
236238

237239
- API is now a peer dependency. This means that users will need to include `@opentelemetry/api` as a dependency of their project in order to use the SDK. NPM version 7+ (Node 15+) should do this automatically.

packages/opentelemetry-core/src/utils/environment.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ export type ENVIRONMENT = {
7676
OTEL_EXPORTER_ZIPKIN_ENDPOINT?: string;
7777
OTEL_LOG_LEVEL?: DiagLogLevel;
7878
OTEL_RESOURCE_ATTRIBUTES?: string;
79+
OTEL_SERVICE_NAME?: string;
7980
OTEL_TRACES_EXPORTER?: string;
8081
OTEL_TRACES_SAMPLER_ARG?: string;
8182
OTEL_TRACES_SAMPLER?: string;
@@ -115,6 +116,7 @@ export const DEFAULT_ENVIRONMENT: Required<ENVIRONMENT> = {
115116
OTEL_NO_PATCH_MODULES: [],
116117
OTEL_PROPAGATORS: ['tracecontext', 'baggage'],
117118
OTEL_RESOURCE_ATTRIBUTES: '',
119+
OTEL_SERVICE_NAME: '',
118120
OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT: 128,
119121
OTEL_SPAN_EVENT_COUNT_LIMIT: 128,
120122
OTEL_SPAN_LINK_COUNT_LIMIT: 128,

packages/opentelemetry-exporter-collector-grpc/README.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ This module provides exporter for web and node to be used with [opentelemetry-co
1313
npm install --save @opentelemetry/exporter-collector-grpc
1414
```
1515

16+
## Service Name
17+
18+
The OpenTelemetry Collector Exporter does not have a service name configuration.
19+
In order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].
20+
1621
## Traces in Node - GRPC
1722

1823
The CollectorTraceExporter in Node expects the URL to only be the hostname. It will not work with `/v1/traces`.
@@ -22,7 +27,6 @@ const { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tra
2227
const { CollectorTraceExporter } = require('@opentelemetry/exporter-collector-grpc');
2328

2429
const collectorOptions = {
25-
serviceName: 'basic-service',
2630
// url is optional and can be omitted - default is localhost:4317
2731
url: '<collector-hostname>:<port>',
2832
};
@@ -47,7 +51,6 @@ const { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tra
4751
const { CollectorTraceExporter } = require('@opentelemetry/exporter-collector-grpc');
4852

4953
const collectorOptions = {
50-
serviceName: 'basic-service',
5154
// url is optional and can be omitted - default is localhost:4317
5255
url: '<collector-hostname>:<port>',
5356
credentials: grpc.credentials.createSsl(),
@@ -88,7 +91,6 @@ const metadata = new grpc.Metadata();
8891
metadata.set('k', 'v');
8992

9093
const collectorOptions = {
91-
serviceName: 'basic-service',
9294
// url is optional and can be omitted - default is localhost:4317
9395
url: '<collector-hostname>:<port>',
9496
metadata, // // an optional grpc.Metadata object to be sent with each request
@@ -114,7 +116,6 @@ The CollectorTraceExporter in Node expects the URL to only be the hostname. It w
114116
const { MeterProvider } = require('@opentelemetry/metrics');
115117
const { CollectorMetricExporter } = require('@opentelemetry/exporter-collector-grpc');
116118
const collectorOptions = {
117-
serviceName: 'basic-service',
118119
// url is optional and can be omitted - default is localhost:4317
119120
url: '<collector-hostname>:<port>',
120121
};
@@ -161,3 +162,4 @@ Apache 2.0 - See [LICENSE][license-url] for more information.
161162
[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc
162163
[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg
163164
[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector
165+
[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service

packages/opentelemetry-exporter-collector-grpc/src/CollectorMetricExporter.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import { CollectorExporterNodeBase } from './CollectorExporterNodeBase';
2424
import { getEnv } from '@opentelemetry/core';
2525
import { validateAndNormalizeUrl } from './util';
2626

27-
const DEFAULT_SERVICE_NAME = 'collector-metric-exporter';
2827
const DEFAULT_COLLECTOR_URL = 'localhost:4317';
2928

3029
/**
@@ -59,10 +58,6 @@ export class CollectorMetricExporter
5958
: DEFAULT_COLLECTOR_URL;
6059
}
6160

62-
getDefaultServiceName(config: CollectorExporterConfigNode): string {
63-
return config.serviceName || DEFAULT_SERVICE_NAME;
64-
}
65-
6661
getServiceClientType() {
6762
return ServiceClientType.METRICS;
6863
}

packages/opentelemetry-exporter-collector-grpc/src/CollectorTraceExporter.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import { CollectorExporterConfigNode, ServiceClientType } from './types';
2424
import { getEnv } from '@opentelemetry/core';
2525
import { validateAndNormalizeUrl } from './util';
2626

27-
const DEFAULT_SERVICE_NAME = 'collector-trace-exporter';
2827
const DEFAULT_COLLECTOR_URL = 'localhost:4317';
2928

3029
/**
@@ -52,10 +51,6 @@ export class CollectorTraceExporter
5251
: DEFAULT_COLLECTOR_URL;
5352
}
5453

55-
getDefaultServiceName(config: CollectorExporterConfigNode): string {
56-
return config.serviceName || DEFAULT_SERVICE_NAME;
57-
}
58-
5954
getServiceClientType() {
6055
return ServiceClientType.SPANS;
6156
}

packages/opentelemetry-exporter-collector-grpc/test/CollectorMetricExporter.test.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,6 @@ const testCollectorMetricExporter = (params: TestParams) =>
131131
collectorExporter = new CollectorMetricExporter({
132132
url: 'grpcs://' + address,
133133
credentials,
134-
serviceName: 'basic-service',
135134
metadata: params.metadata,
136135
});
137136
// Overwrites the start time to make tests consistent
@@ -169,7 +168,6 @@ const testCollectorMetricExporter = (params: TestParams) =>
169168
// Need to stub/spy on the underlying logger as the 'diag' instance is global
170169
const spyLoggerWarn = sinon.stub(diag, 'warn');
171170
collectorExporter = new CollectorMetricExporter({
172-
serviceName: 'basic-service',
173171
url: `http://${address}`,
174172
headers: {
175173
foo: 'bar',
@@ -181,7 +179,6 @@ const testCollectorMetricExporter = (params: TestParams) =>
181179
it('should warn about path in url', () => {
182180
const spyLoggerWarn = sinon.stub(diag, 'warn');
183181
collectorExporter = new CollectorMetricExporter({
184-
serviceName: 'basic-service',
185182
url: `http://${address}/v1/metrics`
186183
});
187184
const args = spyLoggerWarn.args[0];

packages/opentelemetry-exporter-collector-grpc/test/CollectorTraceExporter.test.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,6 @@ const testCollectorExporter = (params: TestParams) =>
124124
)
125125
: undefined;
126126
collectorExporter = new CollectorTraceExporter({
127-
serviceName: 'basic-service',
128127
url: 'grpcs://' + address,
129128
credentials,
130129
metadata: params.metadata,
@@ -146,7 +145,6 @@ const testCollectorExporter = (params: TestParams) =>
146145
// Need to stub/spy on the underlying logger as the 'diag' instance is global
147146
const spyLoggerWarn = sinon.stub(diag, 'warn');
148147
collectorExporter = new CollectorTraceExporter({
149-
serviceName: 'basic-service',
150148
url: `http://${address}`,
151149
headers: {
152150
foo: 'bar',
@@ -158,7 +156,6 @@ const testCollectorExporter = (params: TestParams) =>
158156
it('should warn about path in url', () => {
159157
const spyLoggerWarn = sinon.stub(diag, 'warn');
160158
collectorExporter = new CollectorTraceExporter({
161-
serviceName: 'basic-service',
162159
url: `http://${address}/v1/trace`,
163160
});
164161
const args = spyLoggerWarn.args[0];

packages/opentelemetry-exporter-collector-grpc/test/helper.ts

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import { Resource } from '@opentelemetry/resources';
2828
import { ReadableSpan } from '@opentelemetry/tracing';
2929
import * as assert from 'assert';
3030
import * as grpc from '@grpc/grpc-js';
31+
import { VERSION } from '@opentelemetry/core';
3132

3233
const meterProvider = new metrics.MeterProvider({
3334
interval: 30000,
@@ -157,11 +158,11 @@ export const mockedReadableSpan: ReadableSpan = {
157158
},
158159
],
159160
duration: [0, 8885000],
160-
resource: new Resource({
161+
resource: Resource.default().merge(new Resource({
161162
service: 'ui',
162163
version: 1,
163164
cost: 112.12,
164-
}),
165+
})),
165166
instrumentationLibrary: { name: 'default', version: '0.0.1' },
166167
};
167168

@@ -409,11 +410,32 @@ export function ensureResourceIsCorrect(
409410
assert.deepStrictEqual(resource, {
410411
attributes: [
411412
{
412-
key: 'service.name',
413-
value: {
414-
stringValue: 'basic-service',
415-
value: 'stringValue',
416-
},
413+
"key": "service.name",
414+
"value": {
415+
"stringValue": `unknown_service:${process.argv0}`,
416+
"value": "stringValue"
417+
}
418+
},
419+
{
420+
"key": "telemetry.sdk.language",
421+
"value": {
422+
"stringValue": "nodejs",
423+
"value": "stringValue"
424+
}
425+
},
426+
{
427+
"key": "telemetry.sdk.name",
428+
"value": {
429+
"stringValue": "opentelemetry",
430+
"value": "stringValue"
431+
}
432+
},
433+
{
434+
"key": "telemetry.sdk.version",
435+
"value": {
436+
"stringValue": VERSION,
437+
"value": "stringValue"
438+
}
417439
},
418440
{
419441
key: 'service',

packages/opentelemetry-exporter-collector-proto/README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,18 @@ This module provides exporter for node to be used with [opentelemetry-collector]
1313
npm install --save @opentelemetry/exporter-collector-proto
1414
```
1515

16+
## Service Name
17+
18+
The OpenTelemetry Collector Exporter does not have a service name configuration.
19+
In order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].
20+
1621
## Traces in Node - PROTO over http
1722

1823
```js
1924
const { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');
2025
const { CollectorTraceExporter } = require('@opentelemetry/exporter-collector-proto');
2126

2227
const collectorOptions = {
23-
serviceName: 'basic-service',
2428
url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is http://localhost:55681/v1/traces
2529
headers: {
2630
foo: 'bar'
@@ -41,7 +45,6 @@ provider.register();
4145
const { MeterProvider } = require('@opentelemetry/metrics');
4246
const { CollectorMetricExporter } = require('@opentelemetry/exporter-collector-proto');
4347
const collectorOptions = {
44-
serviceName: 'basic-service',
4548
url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is http://localhost:55681/v1/metrics
4649
};
4750
const exporter = new CollectorMetricExporter(collectorOptions);
@@ -84,3 +87,4 @@ Apache 2.0 - See [LICENSE][license-url] for more information.
8487
[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-proto
8588
[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-proto.svg
8689
[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector
90+
[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service

packages/opentelemetry-exporter-collector-proto/src/CollectorMetricExporter.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import { ServiceClientType } from './types';
2424
import { CollectorExporterNodeBase } from './CollectorExporterNodeBase';
2525
import { getEnv, baggageUtils } from '@opentelemetry/core';
2626

27-
const DEFAULT_SERVICE_NAME = 'collector-metric-exporter';
2827
const DEFAULT_COLLECTOR_URL = 'http://localhost:4317/v1/metrics';
2928

3029
/**
@@ -69,10 +68,6 @@ export class CollectorMetricExporter
6968
: DEFAULT_COLLECTOR_URL;
7069
}
7170

72-
getDefaultServiceName(config: CollectorExporterNodeConfigBase): string {
73-
return config.serviceName || DEFAULT_SERVICE_NAME;
74-
}
75-
7671
getServiceClientType() {
7772
return ServiceClientType.METRICS;
7873
}

0 commit comments

Comments
 (0)