-
Notifications
You must be signed in to change notification settings - Fork 564
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
otelgrpc: Add Filter for stats handler #5196
Conversation
4a4eb3e
to
3203812
Compare
instrumentation/google.golang.org/grpc/otelgrpc/filters/interceptor/filters.go
Show resolved
Hide resolved
lgtm overall. |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #5196 +/- ##
=======================================
+ Coverage 62.5% 62.7% +0.1%
=======================================
Files 191 192 +1
Lines 11727 11786 +59
=======================================
+ Hits 7340 7399 +59
Misses 4170 4170
Partials 217 217
|
Any update if this will be reviewed in order to be merged? |
@dashpole @hanyuancheung |
instrumentation/google.golang.org/grpc/otelgrpc/filters/interceptor/filters.go
Outdated
Show resolved
Hide resolved
instrumentation/google.golang.org/grpc/otelgrpc/filters/interceptor/filters.go
Outdated
Show resolved
Hide resolved
instrumentation/google.golang.org/grpc/otelgrpc/filters/filters.go
Outdated
Show resolved
Hide resolved
LGTM, but there are some comments that should be addressed.
Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
@dashpole, can you please make another review and possibly merge if you find everything good? |
Hey thanks! |
@ymtdzzz thank you for your contribution 🥇 |
* otelgrpc: Add filter for stats handler * Add entries to CHANGELOG * fix CHANGELOG * keep Deprecated comment of `WithInterceptorFilter` * deprecate `InterceptorFilter` type * change the location of `gctx.record` nil check location to reduce heap allocations * add documentation for filters and interceptor packages * fix the location of entries in CHANGELOG * more reasonable doc comment for interceptor package Co-authored-by: Robert Pająk <pellared@hotmail.com> * more reasonable doc comment for interceptor package Co-authored-by: Robert Pająk <pellared@hotmail.com> * Use more appropriate word in the comment of InterceptorFilter Co-authored-by: Robert Pająk <pellared@hotmail.com> * more reasonable doc comment for filters package Co-authored-by: Robert Pająk <pellared@hotmail.com> * fix the comment of `Filter` * Clearly describe the effects of the change * add tests for `stats_handler.go` --------- Co-authored-by: David Ashpole <dashpole@google.com> Co-authored-by: Robert Pająk <pellared@hotmail.com> Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
### Added - Add the new `go.opentelemetry.io/contrib/instrgen` package to provide auto-generated source code instrumentation. (#3068, #3108) - Add an experimental `OTEL_METRICS_PRODUCERS` environment variable to `go.opentelemetry.io/contrib/autoexport` to be set metrics producers. (#5281) - `prometheus` and `none` are supported values. You can specify multiple producers separated by a comma. - Add `WithFallbackMetricProducer` option that adds a fallback if the `OTEL_METRICS_PRODUCERS` is not set or empty. - The `go.opentelemetry.io/contrib/processors/baggage/baggagetrace` module. This module provides a Baggage Span Processor. (#5404) - Add gRPC trace `Filter` for stats handler to `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc`. (#5196) - Add a repository Code Ownership Policy. (#5555) - The `go.opentelemetry.io/contrib/bridges/otellogrus` module. This module provides an OpenTelemetry logging bridge for `github.com/sirupsen/logrus`. (#5355) - The `WithVersion` option function in `go.opentelemetry.io/contrib/bridges/otelslog`. This option function is used as a replacement of `WithInstrumentationScope` to specify the logged package version. (#5588) - The `WithSchemaURL` option function in `go.opentelemetry.io/contrib/bridges/otelslog`. This option function is used as a replacement of `WithInstrumentationScope` to specify the semantic convention schema URL for the logged records. (#5588) - Add support for Cloud Run jobs in `go.opentelemetry.io/contrib/detectors/gcp`. (#5559) ### Changed - The gRPC trace `Filter` for interceptor is renamed to `InterceptorFilter`. (#5196) - The gRPC trace filter functions `Any`, `All`, `None`, `Not`, `MethodName`, `MethodPrefix`, `FullMethodName`, `ServiceName`, `ServicePrefix` and `HealthCheck` for interceptor are moved to `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/filters/interceptor`. With this change, the filters in `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc` are now working for stats handler. (#5196) - `NewLogger` now accepts a `name` `string` as the first argument. This parameter is used as a replacement of `WithInstrumentationScope` to specify the name of the logger backing the underlying `Handler`. (#5588) - `NewHandler` now accepts a `name` `string` as the first argument. This parameter is used as a replacement of `WithInstrumentationScope` to specify the name of the logger backing the returned `Handler`. (#5588) - Upgrade all dependencies of `go.opentelemetry.io/otel/semconv/v1.24.0` to `go.opentelemetry.io/otel/semconv/v1.25.0`. (#5605) ### Removed - The `WithInstrumentationScope` option function in `go.opentelemetry.io/contrib/bridges/otelslog` is removed. Use the `name` parameter added to `NewHandler` and `NewLogger` as well as `WithVersion` and `WithSchema` as replacements. (#5588) ### Deprecated - The `InterceptorFilter` type in `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc` is deprecated. (#5196)
### Added - Add the new `go.opentelemetry.io/contrib/instrgen` package to provide auto-generated source code instrumentation. (open-telemetry#3068, open-telemetry#3108) - Add an experimental `OTEL_METRICS_PRODUCERS` environment variable to `go.opentelemetry.io/contrib/autoexport` to be set metrics producers. (open-telemetry#5281) - `prometheus` and `none` are supported values. You can specify multiple producers separated by a comma. - Add `WithFallbackMetricProducer` option that adds a fallback if the `OTEL_METRICS_PRODUCERS` is not set or empty. - The `go.opentelemetry.io/contrib/processors/baggage/baggagetrace` module. This module provides a Baggage Span Processor. (open-telemetry#5404) - Add gRPC trace `Filter` for stats handler to `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc`. (open-telemetry#5196) - Add a repository Code Ownership Policy. (open-telemetry#5555) - The `go.opentelemetry.io/contrib/bridges/otellogrus` module. This module provides an OpenTelemetry logging bridge for `github.com/sirupsen/logrus`. (open-telemetry#5355) - The `WithVersion` option function in `go.opentelemetry.io/contrib/bridges/otelslog`. This option function is used as a replacement of `WithInstrumentationScope` to specify the logged package version. (open-telemetry#5588) - The `WithSchemaURL` option function in `go.opentelemetry.io/contrib/bridges/otelslog`. This option function is used as a replacement of `WithInstrumentationScope` to specify the semantic convention schema URL for the logged records. (open-telemetry#5588) - Add support for Cloud Run jobs in `go.opentelemetry.io/contrib/detectors/gcp`. (open-telemetry#5559) ### Changed - The gRPC trace `Filter` for interceptor is renamed to `InterceptorFilter`. (open-telemetry#5196) - The gRPC trace filter functions `Any`, `All`, `None`, `Not`, `MethodName`, `MethodPrefix`, `FullMethodName`, `ServiceName`, `ServicePrefix` and `HealthCheck` for interceptor are moved to `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/filters/interceptor`. With this change, the filters in `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc` are now working for stats handler. (open-telemetry#5196) - `NewLogger` now accepts a `name` `string` as the first argument. This parameter is used as a replacement of `WithInstrumentationScope` to specify the name of the logger backing the underlying `Handler`. (open-telemetry#5588) - `NewHandler` now accepts a `name` `string` as the first argument. This parameter is used as a replacement of `WithInstrumentationScope` to specify the name of the logger backing the returned `Handler`. (open-telemetry#5588) - Upgrade all dependencies of `go.opentelemetry.io/otel/semconv/v1.24.0` to `go.opentelemetry.io/otel/semconv/v1.25.0`. (open-telemetry#5605) ### Removed - The `WithInstrumentationScope` option function in `go.opentelemetry.io/contrib/bridges/otelslog` is removed. Use the `name` parameter added to `NewHandler` and `NewLogger` as well as `WithVersion` and `WithSchema` as replacements. (open-telemetry#5588) ### Deprecated - The `InterceptorFilter` type in `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc` is deprecated. (open-telemetry#5196)
Description
Add filter for stats handler and move interceptor filter to
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/filters/interceptor
considering that it'll be deprecated.Related Issue
Fixes #4575
Test
Unit tests added.
And I've tested on: https://github.com/grpc/grpc-go/tree/master/examples/route_guide
No filters
Method name filter