summaryrefslogtreecommitdiff
path: root/src/payment/opentelemetry.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/payment/opentelemetry.js')
-rw-r--r--src/payment/opentelemetry.js45
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();