Skip to content

Conversation

@mabdinur
Copy link
Contributor

What does this PR do?

Adds configuration support for OpenTelemetry Metrics in dd-trace-js. Setting DD_METRICS_OTEL_ENABLED=true automatically configures OTLP metrics export with the custom Meter Provider implementation.

Supported Configurations:

  • DD_METRICS_OTEL_ENABLED - Enable/disable OpenTelemetry metrics (default: false)
  • OTEL_EXPORTER_OTLP_METRICS_ENDPOINT - Metrics endpoint URL (default: http://localhost:4318/v1/metrics)
  • OTEL_EXPORTER_OTLP_METRICS_PROTOCOL - Protocol: http/protobuf or http/json (default: http/protobuf)
  • OTEL_EXPORTER_OTLP_METRICS_HEADERS - Custom headers for metrics export
  • OTEL_EXPORTER_OTLP_METRICS_TIMEOUT - Request timeout in milliseconds (default: 10000)
  • OTEL_METRIC_EXPORT_INTERVAL - Export interval in milliseconds (default: 60000)
  • Generic OTEL_EXPORTER_OTLP_* variables as fallbacks

Additional Changes:

  • Added API documentation in docs/API.md with usage examples for Counter, Histogram, UpDownCounter, and ObservableGauge
  • Integrated metrics initialization in tracer proxy
  • Added configuration defaults and telemetry tracking
  • Created 17 comprehensive configuration tests

Motivation

The custom OpenTelemetry Meter Provider was implemented but not exposed to users. This PR makes the feature production-ready by adding configuration support and onboarding documentation, following the same patterns as OpenTelemetry Logs support.

Plugin Checklist

Additional Notes

@github-actions
Copy link

github-actions bot commented Oct 14, 2025

Overall package size

Self size: 12.89 MB
Deduped: 115.5 MB
No deduping: 117.71 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.7.0 | 35.02 MB | 35.02 MB | | @datadog/native-appsec | 10.2.1 | 20.64 MB | 20.65 MB | | @datadog/native-iast-taint-tracking | 4.0.0 | 11.72 MB | 11.73 MB | | @datadog/pprof | 5.11.1 | 9.96 MB | 10.34 MB | | @opentelemetry/core | 1.30.1 | 908.66 kB | 7.16 MB | | protobufjs | 7.5.4 | 2.95 MB | 5.73 MB | | @datadog/wasm-js-rewriter | 4.0.1 | 2.85 MB | 3.58 MB | | @opentelemetry/resources | 1.9.1 | 306.54 kB | 1.74 MB | | @datadog/native-metrics | 3.1.1 | 1.02 MB | 1.43 MB | | @opentelemetry/api-logs | 0.205.0 | 201.51 kB | 1.42 MB | | @opentelemetry/api | 1.9.0 | 1.22 MB | 1.22 MB | | jsonpath-plus | 10.3.0 | 617.18 kB | 1.08 MB | | import-in-the-middle | 1.15.0 | 127.66 kB | 856.24 kB | | lru-cache | 10.4.3 | 804.3 kB | 804.3 kB | | @datadog/openfeature-node-server | 0.1.0-preview.10 | 95.11 kB | 401.46 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | source-map | 0.7.6 | 185.63 kB | 185.63 kB | | pprof-format | 2.2.1 | 163.06 kB | 163.06 kB | | @datadog/sketches-js | 2.1.1 | 109.9 kB | 109.9 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 7.0.5 | 63.38 kB | 63.38 kB | | istanbul-lib-coverage | 3.2.2 | 34.37 kB | 34.37 kB | | rfdc | 1.4.1 | 27.15 kB | 27.15 kB | | dc-polyfill | 0.1.10 | 26.73 kB | 26.73 kB | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 kB | | tlhunter-sorted-set | 0.1.0 | 24.94 kB | 24.94 kB | | shell-quote | 1.8.3 | 23.74 kB | 23.74 kB | | limiter | 1.1.5 | 23.17 kB | 23.17 kB | | retry | 0.13.1 | 18.85 kB | 18.85 kB | | semifies | 1.0.0 | 15.84 kB | 15.84 kB | | jest-docblock | 29.7.0 | 8.99 kB | 12.76 kB | | crypto-randomuuid | 1.0.0 | 11.18 kB | 11.18 kB | | ttl-set | 1.0.0 | 4.61 kB | 9.69 kB | | mutexify | 1.4.0 | 5.71 kB | 8.74 kB | | path-to-regexp | 0.1.12 | 6.6 kB | 6.6 kB | | module-details-from-path | 1.0.4 | 3.96 kB | 3.96 kB |

🤖 This report was automatically generated by heaviest-objects-in-the-universe

@codecov
Copy link

codecov bot commented Oct 14, 2025

Codecov Report

❌ Patch coverage is 82.35294% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 84.41%. Comparing base (1722dec) to head (c191762).

Files with missing lines Patch % Lines
packages/dd-trace/src/config.js 78.57% 3 Missing ⚠️
Additional details and impacted files
@@                        Coverage Diff                        @@
##           munir/otlp-add-meter-provider    #6664      +/-   ##
=================================================================
+ Coverage                          84.40%   84.41%   +0.01%     
=================================================================
  Files                                513      513              
  Lines                              21352    21369      +17     
=================================================================
+ Hits                               18022    18039      +17     
  Misses                              3330     3330              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@pr-commenter
Copy link

pr-commenter bot commented Oct 16, 2025

Benchmarks

Benchmark execution time: 2025-10-29 17:24:34

Comparing candidate commit c191762 in PR branch munir/add-otel-metrics-configs with baseline commit d69f98a in branch master.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 1601 metrics, 69 unstable metrics.

@mabdinur mabdinur force-pushed the munir/add-otel-metrics-configs branch from 57a78c3 to 5c9bd42 Compare October 16, 2025 15:01
@datadog-datadog-prod-us1

This comment has been minimized.

@mabdinur mabdinur closed this Oct 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants