-
Notifications
You must be signed in to change notification settings - Fork 803
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: programmatic url and headers take precedence in metric exporters… #4334
Conversation
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## main #4334 +/- ##
==========================================
+ Coverage 92.20% 92.21% +0.01%
==========================================
Files 332 332
Lines 9443 9446 +3
Branches 2000 2003 +3
==========================================
+ Hits 8707 8711 +4
+ Misses 736 735 -1
|
experimental/packages/opentelemetry-exporter-metrics-otlp-proto/src/OTLPMetricExporter.ts
Show resolved
Hide resolved
@seemk, seems like your approval was not enough. Is there someone else who can do an additional review? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @Vunovati, thanks for your contribution. 🙂
This looks like the correct order to me - please feel free to take care of this in the other signals exporters as well.
I think it's important to keep tracking the issue until it is fixed in all exporters, I'll unlink #2370 for now so that it does not get auto-closed when this PR merges.
Sure, I intend to fix other signals as well in a separate PR. |
* Add Trent to approvers (#4311) * chore(renovate): require dashboard approval for lerna updates (#4276) * chore(ci): install semver globally to speed up "peer-api" workflow (#4270) Closes: #4242 * fix(ci): remove token setup via environment variable from .npmrc (#4329) * fix(instrumentation-http): resume responses when there is no response listener Fixes a memory leak where unhandled response bodies pile up in node 20 * feat: add script to update changelogs on release preparation (#4315) * feat: add script to update changelogs on releases * fix: address comments * Apply suggestions from code review Co-authored-by: Trent Mick <trentm@gmail.com> * fix: apply suggestions from code review * fix: use packageJson.version instead of version --------- Co-authored-by: Trent Mick <trentm@gmail.com> * Fix event name * test: make rawRequest HTTP-compliant * Add node 20 to test matrix * Enable old hash functions on 20 * Fix esm handling for iitm node 20 * Use err.code to make test more reliable * Changelog * nit: single import * Remove unused files * Add v20 to supported runtimes * ci: add npm cache in actions/setup-node (#4271) * feat(sdk-logs): add droppedAttributesCount field to ReadableLogRecord (#4289) * feat(sdk-logs): add droppedAttributesCount field to ReadableLogRecord * chore: check droppedAttributesCount value in test case * feat(otlp-transformer): make toLogRecord() use ReadableLogRecord.droppedAttributesCount --------- Co-authored-by: Marc Pichler <marc.pichler@dynatrace.com> * fix(api-logs): allow passing in TimeInput for LogRecord (#4345) * fix: allow passing in TimeInput for LogRecord * chore: update changelog * fix: programmatic url and headers take precedence in metric exporters… (#4334) * fix: programmatic url and headers take precedence in metric exporters (#2370) * chore: adjust grpc exporter metrics test * chore(changelog): update changelog * fix(instrumentation-http): do not mutate given headers object for outgoing http requests (#4346) Fixes: open-telemetry/opentelemetry-js-contrib#1609 * chore(deps): update actions/stale action to v9 (#4353) * fix(deps): update dependency import-in-the-middle to v1.6.0 (#4357) * chore(deps): update all patch versions (#4306) * chore(ci): use node 20 in lint workflow (#4359) * chore(deps): update dependency linkinator to v6 (#4237) * fix(otlp-exporter-base): decrease default concurrency limit to 30 (#4211) * fix(otlp-exporter-base): decrease concurrency limit to 30 * fix(changelog): add changelog entry * chore(deps): use actions/checkout >4 instead of 4.0.0 exactly (#4361) --------- Co-authored-by: Marc Pichler <marc.pichler@dynatrace.com> Co-authored-by: strivly <133362191+strivly@users.noreply.github.com> Co-authored-by: Trent Mick <trentm@gmail.com> Co-authored-by: lyzlisa <34400837+lyzlisa@users.noreply.github.com> Co-authored-by: Hyun Oh <hyunnoh01@gmail.com> Co-authored-by: Siim Kallas <siimkallas@gmail.com> Co-authored-by: Vladimir Adamić <441333+Vunovati@users.noreply.github.com> Co-authored-by: Mend Renovate <bot@renovateapp.com>
open-telemetry#4334) * fix: programmatic url and headers take precedence in metric exporters (open-telemetry#2370) * chore: adjust grpc exporter metrics test * chore(changelog): update changelog
open-telemetry#4334) * fix: programmatic url and headers take precedence in metric exporters (open-telemetry#2370) * chore: adjust grpc exporter metrics test * chore(changelog): update changelog
… (#2370)
Which problem is this PR solving?
Exporters are not respecting the documented behaviour (link) when it comes to headers.
Settings configured programmatically take precedence over environment variables. Per-signal environment variables take precedence over non-per-signal environment variables.
This MR solves the problem for the metrics exporters only. I can expand the scope of the PR to include other signals too.
I believe this is the expected behaviour for all the exporters (for traces and logs too) and is in the docs for most of them.
It is not explicitly stated in exporter-logs-otlp-proto, but I believe it should've been for consistency.
Partially addresses #2370
Short description of the changes
override OTEL_EXPORTER_OTLP_METRICS_HEADERS and OTEL_EXPORTER_OTLP_HEADERS with config.headers supplied to OTLPMetricExporter
Applied to:
Type of change
Please delete options that are not relevant.
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Added additional tests testing that the programmatic settings take precedence.
Checklist: