This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) | `v1.72.0` -> `v1.72.1` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>grpc/grpc-go (google.golang.org/grpc)</summary> ### [`v1.72.1`](https://redirect.github.com/grpc/grpc-go/releases/tag/v1.72.1): Release 1.72.1 [Compare Source](https://redirect.github.com/grpc/grpc-go/compare/v1.72.0...v1.72.1) ### Bug Fixes - client: HTTP Proxy connections are no longer attempted for addresses with non-TCP network types. ([#​8215](https://redirect.github.com/grpc/grpc-go/issues/8215)) - client: Fix bug that causes RPCs to fail with status INTERNAL instead of CANCELLED or DEADLINE_EXCEEDED when receiving a RST_STREAM frame in the middle of the gRPC message. ([#​8289](https://redirect.github.com/grpc/grpc-go/issues/8289)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/open-telemetry/opentelemetry-collector). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC4xNi4wIiwidXBkYXRlZEluVmVyIjoiNDAuMTYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGVib3QiXX0=--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com> Co-authored-by: Yang Song <songy23@users.noreply.github.com> |
||
---|---|---|
.. | ||
extensionmiddlewaretest | ||
Makefile | ||
README.md | ||
client.go | ||
client_test.go | ||
go.mod | ||
go.sum | ||
server.go | ||
server_test.go |
README.md
OpenTelemetry Collector Middleware Extension API
This package implements interfaces for injecting middleware behavior
in OpenTelemetry Collector exporters and receivers. See the
associated configmiddleware
package
for referring to middleware
extensions in component configurations.
Overview
Middleware extensions can be configured on gRPC and HTTP connections, on both the client and server side. The term "middleware" is defined broadly to cover many ways of intercepting, acting on, and observing requests as they enter and exit and RPC system.
Middleware details and capabilities are specific to each protocol. In some cases, these interfaces permit configuring behavior other than middleware. Users have to place a trust in the extensions they configure, since they are capable of subverting security and other RPC configuration.
Middleware is generally configured at a level in the code where:
- the identity of the calling component is not known, because
confighttp
andconfiggrpc
interfaces likewise are not configured with the identify of the calling component. - the signal type in use is not known, because a single connection serves multiple signals.
Interfaces
Each interface has a single function to configure middleware for a protocol on the client or server side. An error is returned if the extension cannot be configured.
New protocols and new ways to configure middleware can be introduced
by adding new interfaces. Note that for each interface, there is a
corresponding method to locate a named middleware extension that
satisfies the interface in
the configmiddleware
package .
HTTP
Interface methods are called once per request to construct a client- or server-side middleware object.
- HTTPClient: The extension returns a function to create new
http.RoundTripper
s. - HTTPServer: The extension returns a function to create new
http.Handler
s.
GRPC
Interface methods are called once at setup to configure the client- or server-side middleware object.
- GRPCClient: The extension returns
[]grpc.DialOption
. - GRPCServer: The extension returns
[]grpc.ServerOption
.