diff options
Diffstat (limited to 'src/payment/opentelemetry.js')
| -rw-r--r-- | src/payment/opentelemetry.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/payment/opentelemetry.js b/src/payment/opentelemetry.js new file mode 100644 index 0000000..856910c --- /dev/null +++ b/src/payment/opentelemetry.js @@ -0,0 +1,45 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +const opentelemetry = require("@opentelemetry/sdk-node") +const {getNodeAutoInstrumentations} = require("@opentelemetry/auto-instrumentations-node") +const {OTLPTraceExporter} = require('@opentelemetry/exporter-trace-otlp-grpc') +const {OTLPMetricExporter} = require('@opentelemetry/exporter-metrics-otlp-grpc') +const {PeriodicExportingMetricReader} = require('@opentelemetry/sdk-metrics') +const {alibabaCloudEcsDetector} = require('@opentelemetry/resource-detector-alibaba-cloud') +const {awsEc2Detector, awsEksDetector} = require('@opentelemetry/resource-detector-aws') +const {containerDetector} = require('@opentelemetry/resource-detector-container') +const {gcpDetector} = require('@opentelemetry/resource-detector-gcp') +const {envDetector, hostDetector, osDetector, processDetector} = require('@opentelemetry/resources') +const {RuntimeNodeInstrumentation} = require('@opentelemetry/instrumentation-runtime-node') + +const sdk = new opentelemetry.NodeSDK({ + traceExporter: new OTLPTraceExporter(), + instrumentations: [ + getNodeAutoInstrumentations({ + // only instrument fs if it is part of another trace + '@opentelemetry/instrumentation-fs': { + requireParentSpan: true, + }, + }), + new RuntimeNodeInstrumentation({ + monitoringPrecision: 5000, + }) + ], + metricReader: new PeriodicExportingMetricReader({ + exporter: new OTLPMetricExporter() + }), + resourceDetectors: [ + containerDetector, + envDetector, + hostDetector, + osDetector, + processDetector, + alibabaCloudEcsDetector, + awsEksDetector, + awsEc2Detector, + gcpDetector + ], +}) + +sdk.start(); |
