Skip to content

Commit c8ba094

Browse files
authored
feat(nodejs-autoinstrumentation): enable overwriting default histogram buckets
1 parent 7c79f2d commit c8ba094

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

autoinstrumentation/nodejs/src/autoinstrumentation.ts

+25-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { OTLPTraceExporter as OTLPHttpTraceExporter } from '@opentelemetry/expor
44
import { OTLPTraceExporter as OTLPGrpcTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc';
55
import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-grpc';
66
import { PrometheusExporter } from '@opentelemetry/exporter-prometheus';
7-
import { PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics';
7+
import { ExplicitBucketHistogramAggregation, PeriodicExportingMetricReader, View } from "@opentelemetry/sdk-metrics";
88
import { alibabaCloudEcsDetector } from '@opentelemetry/resource-detector-alibaba-cloud';
99
import { awsEc2Detector, awsEksDetector } from '@opentelemetry/resource-detector-aws';
1010
import { containerDetector } from '@opentelemetry/resource-detector-container';
@@ -50,11 +50,35 @@ function getMetricReader() {
5050
}
5151
}
5252

53+
function getView() {
54+
const buckets = process.env.OTEL_METRICS_EXPLICIT_BUCKET_HISTOGRAM;
55+
const defaultHistogramBuckets = [
56+
0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10,
57+
];
58+
if (!buckets) {
59+
return new View({
60+
aggregation: new ExplicitBucketHistogramAggregation(
61+
defaultHistogramBuckets,
62+
),
63+
instrumentName: "*",
64+
});
65+
} else {
66+
return new View({
67+
// parse buckets and make it a list of numbers
68+
aggregation: new ExplicitBucketHistogramAggregation(
69+
buckets.split(",").map((x) => parseFloat(x)),
70+
),
71+
instrumentName: "*",
72+
});
73+
}
74+
}
75+
5376
const sdk = new NodeSDK({
5477
autoDetectResources: true,
5578
instrumentations: [getNodeAutoInstrumentations()],
5679
traceExporter: getTraceExporter(),
5780
metricReader: getMetricReader(),
81+
views: [getView()],
5882
resourceDetectors:
5983
[
6084
// Standard resource detectors.

0 commit comments

Comments
 (0)