-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
stat_sinks: add OpenTelemetry stats sink #26620
stat_sinks: add OpenTelemetry stats sink #26620
Conversation
Signed-off-by: Ohad Vano <[email protected]>
CC @envoyproxy/api-shepherds: Your approval is needed for changes made to |
Signed-off-by: Ohad Vano <[email protected]>
Signed-off-by: Ohad Vano <[email protected]>
Signed-off-by: Ohad Vano <[email protected]>
Signed-off-by: Ohad Vano <[email protected]>
Signed-off-by: Ohad Vano <[email protected]>
Signed-off-by: Ohad Vano <[email protected]>
Signed-off-by: Ohad Vano <[email protected]>
Signed-off-by: Ohad Vano <[email protected]>
I am opening this PR for initial review, before proceeding to tests implementation. Will appreciate your help with initial review. @mattklein123 I have temporarily mentioned you in the CODEOWNERS for that new extension, just to unblock the CI (or not temporarily if requested of course). |
@envoyproxy/senior-maintainers assignee is @mattklein123 |
Seems fine at a high level. Can you add tests, etc. and we can go from there? /wait |
/lgtm deps |
Very cool. Did you think of the semantic conversion support (https://opentelemetry.io/docs/reference/specification/compatibility/prometheus_and_openmetrics/)? For example, stripping |
Thanks for referring me to this doc, I haven't got to it yet. I'm curious however what is the motivation for supporting this? As I see it, Envoy is not implementing Prometheus semantics in first place? Also if someone chooses this sink then I would assume they would want the semantics to be with OTLP in first place, so what does Prometheus has to do with it? I guess we could add Prometheus sink dedicated for that protocol.. |
@ohadvano You are right that Envoy stats pre-date conventions of prometheus. But looking forward, metrics are likely to be added that follow either prometheus or Otel conventions. For example, Istio added |
What would be the expected behavior in such case if OTEL sink is being used, or alternatively asking what do you mean by 'fail'? |
Per Otel semantic conventions: |
Yeah but I mean, what should happen in case you "violate" this convention and decide to name your counter with |
/retest |
Retrying Azure Pipelines: |
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.
Some high level comments to start out with, thanks.
/wait
api/envoy/extensions/stat_sinks/open_telemetry/v3/open_telemetry.proto
Outdated
Show resolved
Hide resolved
docs/root/configuration/observability/stat_sinks/open_telemetry_stat_sink.rst
Outdated
Show resolved
Hide resolved
Signed-off-by: ohadvano <[email protected]>
Signed-off-by: ohadvano <[email protected]>
Signed-off-by: ohadvano <[email protected]>
Signed-off-by: ohadvano <[email protected]>
Signed-off-by: ohadvano <[email protected]>
Signed-off-by: ohadvano <[email protected]>
/coverage |
Coverage for this Pull Request will be rendered here: https://storage.googleapis.com/envoy-pr/26620/coverage/index.html The coverage results are (re-)rendered each time the CI |
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.
LGTM at a high level. Some small comments, thanks.
/wait
api/envoy/extensions/stat_sinks/open_telemetry/v3/open_telemetry.proto
Outdated
Show resolved
Hide resolved
docs/root/configuration/observability/stat_sinks/open_telemetry_stat_sink.rst
Outdated
Show resolved
Hide resolved
source/extensions/stat_sinks/open_telemetry/open_telemetry_impl.cc
Outdated
Show resolved
Hide resolved
source/extensions/stat_sinks/open_telemetry/open_telemetry_impl.cc
Outdated
Show resolved
Hide resolved
source/extensions/stat_sinks/open_telemetry/open_telemetry_impl.cc
Outdated
Show resolved
Hide resolved
Signed-off-by: ohadvano <[email protected]>
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.
Thanks!
@mattklein123 I think this won't merge because of the API approval check, can you please approve it as well? |
/retest |
Retrying Azure Pipelines: |
This reverts commit a6d46b6.
This reverts commit a6d46b6.
Commit Message: stat_sinks: OpenTelemetry stats sink
Additional Description: Adding OpenTelemetry stats sink, following the OTLP protocol and proto definitions.
Risk Level: Low
Testing: Unit tests, Integration tests
Docs Changes: Changelog, Stats sinks docs
Release Notes: None
Platform Specific Features: None
Resolves #26498