Flow: add OpenTelemetry Collector extension components #2353
Labels
flow
Related to Grafana Agent Flow
frozen-due-to-age
Locked due to a period of inactivity. Please open new issues or PRs if more discussion is needed.
proposal
Proposal or RFC
Milestone
This issue extends #2213 and proposes a set of
otelcol
components which wrap around OpenTelemetry Collector extensions.Background
#2343 added the
otelcol.exporter.otlp
component, wrapping around the OpenTelemetry Collectorotlp
exporter. The upstream exporter can be configured with a reference to an ID of an extension component to use for authentication. The instance of the component is then retrieved from thecomponent.Host
instance.Authentication was descoped from the initial PR while an approach to handle extensions was undetermined.
There were two approaches that could be taken:
prometheus.remote_write
component.To remain close to how upstream handles it, this issue proposes the latter approach.
Proposal
We will create a set of OpenTelemetry Collector extension components in an
otelcol.auth
namespace. The namespace will be composed of OpenTelemetry Collector extensions which are intended for authentication and implement one or more of the interfaces from the OpenTelemetry Collector configauth package.Other extensions are considered out of scope for this proposal. Storage extensions are likely to be included eventually, but are out of scope due to being experimental. Extensions that aren't authentication extensions or storage extensions may be added in the future, but would likely belong in a dedicated namespace rather than being scoped to
otelcol
.Exported fields
otelcol.auth
namespace will support the following exported fields:handler
: The raw OpenTelemetry Collector extension instance which other components can use.Example config
Flow component list
We will cherry-pick specific OpenTelemetry Collector extensions from both the otelcol and otelcol-contrib distributions to include in Grafana Agent Flow. Our initial set of extensions is minimal, but will grow over time.
We will start with the following extensions:
otelcol-contrib
distribution components:otelcol.auth.basic
: Performs Basic authentication (frombasicauthextension
).otelcol.auth.bearer
: Performs Bearer token authentication (frombearertokenauthextension
).otelcol.auth.headers
: Adds custom headers for authentication (fromheaderssetterextension
).otelcol.auth.oauth2
: Performs OAuth2 authentication (fromoauth2clientauthextension
).otelcol.auth.sigv4
: Performs SigV4 authentication (fromsigv4authextension
).Tasks
This is the list of components to implement for the initial set of extensions:
The text was updated successfully, but these errors were encountered: