Skip to content

Commit

Permalink
feat(auto-instrumentation-node): add options for serviceinstance (#…
Browse files Browse the repository at this point in the history
…2158)

Signed-off-by: maryliag <marylia.gutierrez@grafana.com>
  • Loading branch information
maryliag committed Apr 29, 2024
1 parent 394bb93 commit 379b757
Show file tree
Hide file tree
Showing 5 changed files with 576 additions and 9 deletions.
3 changes: 2 additions & 1 deletion metapackages/auto-instrumentations-node/README.md
Expand Up @@ -50,7 +50,7 @@ export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="https://your-endpoint"
export OTEL_EXPORTER_OTLP_HEADERS="x-api-key=your-api-key"
export OTEL_EXPORTER_OTLP_TRACES_HEADERS="x-api-key=your-api-key"
export OTEL_RESOURCE_ATTRIBUTES="service.namespace=my-namespace"
export OTEL_NODE_RESOURCE_DETECTORS="env,host,os"
export OTEL_NODE_RESOURCE_DETECTORS="env,host,os,serviceinstace"
export OTEL_SERVICE_NAME="client"
export NODE_OPTIONS="--require @opentelemetry/auto-instrumentations-node/register"
node app.js
Expand All @@ -62,6 +62,7 @@ By default, all SDK resource detectors are used, but you can use the environment
- `host`
- `os`
- `process`
- `serviceinstance`
- `container`
- `alibaba`
- `aws`
Expand Down
2 changes: 1 addition & 1 deletion metapackages/auto-instrumentations-node/package.json
Expand Up @@ -92,7 +92,7 @@
"@opentelemetry/resource-detector-azure": "^0.2.6",
"@opentelemetry/resource-detector-container": "^0.3.9",
"@opentelemetry/resource-detector-gcp": "^0.29.9",
"@opentelemetry/resources": "^1.12.0",
"@opentelemetry/resources": "^1.24.0",
"@opentelemetry/sdk-node": "^0.51.0"
},
"files": [
Expand Down
3 changes: 3 additions & 0 deletions metapackages/auto-instrumentations-node/src/utils.ts
Expand Up @@ -72,6 +72,7 @@ import {
hostDetectorSync,
osDetectorSync,
processDetectorSync,
serviceInstanceIdDetectorSync,
} from '@opentelemetry/resources';
import {
azureAppServiceDetector,
Expand All @@ -83,6 +84,7 @@ const RESOURCE_DETECTOR_CONTAINER = 'container';
const RESOURCE_DETECTOR_ENVIRONMENT = 'env';
const RESOURCE_DETECTOR_HOST = 'host';
const RESOURCE_DETECTOR_OS = 'os';
const RESOURCE_DETECTOR_SERVICE_INSTANCE_ID = 'serviceinstance';
const RESOURCE_DETECTOR_PROCESS = 'process';
const RESOURCE_DETECTOR_ALIBABA = 'alibaba';
const RESOURCE_DETECTOR_AWS = 'aws';
Expand Down Expand Up @@ -208,6 +210,7 @@ export function getResourceDetectorsFromEnv(): Array<Detector | DetectorSync> {
[RESOURCE_DETECTOR_ENVIRONMENT, envDetectorSync],
[RESOURCE_DETECTOR_HOST, hostDetectorSync],
[RESOURCE_DETECTOR_OS, osDetectorSync],
[RESOURCE_DETECTOR_SERVICE_INSTANCE_ID, serviceInstanceIdDetectorSync],
[RESOURCE_DETECTOR_PROCESS, processDetectorSync],
[RESOURCE_DETECTOR_ALIBABA, alibabaCloudEcsDetector],
[RESOURCE_DETECTOR_GCP, gcpDetector],
Expand Down
13 changes: 8 additions & 5 deletions metapackages/auto-instrumentations-node/test/utils.test.ts
Expand Up @@ -114,25 +114,28 @@ describe('utils', () => {

describe('getResourceDetectorsFromEnv', () => {
it('should return all resource detectors by default', () => {
assert.equal(getResourceDetectorsFromEnv().length, 15);
assert.equal(getResourceDetectorsFromEnv().length, 16);
});

it('should return all resource detectors when OTEL_NODE_RESOURCE_DETECTORS contains "all"', () => {
process.env.OTEL_NODE_RESOURCE_DETECTORS = 'all';

assert.equal(getResourceDetectorsFromEnv().length, 15);
assert.equal(getResourceDetectorsFromEnv().length, 16);

delete process.env.OTEL_NODE_RESOURCE_DETECTORS;
});

it('should return specific resource detectors depending on OTEL_NODE_RESOURCE_DETECTORS', () => {
process.env.OTEL_NODE_RESOURCE_DETECTORS = 'env,host';
process.env.OTEL_NODE_RESOURCE_DETECTORS = 'env,host,serviceinstance';

const resourceDetectors = getResourceDetectorsFromEnv();

assert.equal(resourceDetectors.length, 2);
assert.equal(resourceDetectors.length, 3);
assert.equal(resourceDetectors[0].constructor.name, 'EnvDetectorSync');
assert.equal(resourceDetectors[1].constructor.name, 'HostDetectorSync');
assert.equal(
resourceDetectors[2].constructor.name,
'ServiceInstanceIdDetectorSync'
);

delete process.env.OTEL_NODE_RESOURCE_DETECTORS;
});
Expand Down

0 comments on commit 379b757

Please sign in to comment.