Skip to content

Commit

Permalink
feat(otelcol): allow overriding debug metric level for all otelcol
Browse files Browse the repository at this point in the history
…components (#825)

* feat(otelcol): allow overriding debug metric level for all components except `auth.* due to cyclic imports

Signed-off-by: hainenber <[email protected]>

* refactor(otelcol): decouple debug_metrics block from otelcol package

Signed-off-by: hainenber <[email protected]>

* feat(otelcol/auth): allow overriding debug metric level for `otelcol.auth` components

Signed-off-by: hainenber <[email protected]>

* fix(otelcol): set correct test expectation for default debug metrics level

Signed-off-by: hainenber <[email protected]>

* fix(ci): add missing cfg conversion for debug metrics in `otelcolconvert`

Signed-off-by: hainenber <[email protected]>

* docs: add ref to `debug_metrics` block for all `otelcol.*` components

Signed-off-by: hainenber <[email protected]>

* Apply suggestions from Clayton's code review

Co-authored-by: Clayton Cornell <[email protected]>

* Apply suggestions from code review

Co-authored-by: Paulin Todev <[email protected]>
Co-authored-by: Clayton Cornell <[email protected]>

* fix(otelcol): return error for failed conversion of debug metric level

Signed-off-by: hainenber <[email protected]>

* doc(otelcol/debug-metrics): move possible values for `level` outside of arg table

Signed-off-by: hainenber <[email protected]>

* fix(otelcol): set default debug metric config for all missing OtelCol components

Signed-off-by: hainenber <[email protected]>

* doc: display possible values for debug metrics level with double quotation

Signed-off-by: hainenber <[email protected]>

* doc: reduce padding space for `debug_metrics` table entry

Signed-off-by: hainenber <[email protected]>

---------

Signed-off-by: hainenber <[email protected]>
Co-authored-by: Clayton Cornell <[email protected]>
Co-authored-by: Paulin Todev <[email protected]>
  • Loading branch information
3 people authored May 28, 2024
1 parent 6ef896d commit 7902416
Show file tree
Hide file tree
Showing 95 changed files with 686 additions and 105 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ Main (unreleased)

- Add `yaml_decode` to standard library. (@mattdurham, @djcode)

- Allow override debug metrics level for `otelcol.*` components. (@hainenber)

### Bugfixes

- Fix panic when component ID contains `/` in `otelcomponent.MustNewType(ID)`.(@qclaogui)
Expand Down
15 changes: 15 additions & 0 deletions docs/sources/reference/components/otelcol.auth.basic.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,21 @@ Name | Type | Description | Def
`username` | `string` | Username to use for basic authentication requests. | | yes
`password` | `secret` | Password to use for basic authentication requests. | | yes

## Blocks

The following blocks are supported inside the definition of
`otelcol.auth.basic`:

Hierarchy | Block | Description | Required
----------|------------|--------------------------------------|---------
debug_metrics | [debug_metrics][] | Configures the metrics that this component generates to monitor its state. | no

[debug_metrics]: #debug_metrics-block

### debug_metrics block

{{< docs/shared lookup="reference/components/otelcol-debug-metrics-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

## Exported fields

The following fields are exported and can be referenced by other components:
Expand Down
15 changes: 15 additions & 0 deletions docs/sources/reference/components/otelcol.auth.bearer.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,21 @@ Name | Type | Description | Default
When sending the token, the value of `scheme` is prepended to the `token` value.
The string is then sent out as either a header (in case of HTTP) or as metadata (in case of gRPC).

## Blocks

The following blocks are supported inside the definition of
`otelcol.auth.bearer`:

Hierarchy | Block | Description | Required
----------|------------|--------------------------------------|---------
debug_metrics | [debug_metrics][] | Configures the metrics that this component generates to monitor its state. | no

[debug_metrics]: #debug_metrics-block

### debug_metrics block

{{< docs/shared lookup="reference/components/otelcol-debug-metrics-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

## Exported fields

The following fields are exported and can be referenced by other components:
Expand Down
6 changes: 6 additions & 0 deletions docs/sources/reference/components/otelcol.auth.headers.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,10 @@ The following blocks are supported inside the definition of
Hierarchy | Block | Description | Required
----------|------------|--------------------------------------|---------
header | [header][] | Custom header to attach to requests. | no
debug_metrics | [debug_metrics][] | Configures the metrics that this component generates to monitor its state. | no

[header]: #header-block
[debug_metrics]: #debug_metrics-block

### header block

Expand Down Expand Up @@ -72,6 +74,10 @@ For `from_context` to work, other components in the pipeline also need to be con
Do this by adding the value that `from_context` needs to the `metadata_keys` of the batch processor.
* `otelcol` receivers must be configured with `include_metadata` set to `true` so that metadata keys are available to the pipeline.

### debug_metrics block

{{< docs/shared lookup="reference/components/otelcol-debug-metrics-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

## Exported fields

The following fields are exported and can be referenced by other components:
Expand Down
6 changes: 6 additions & 0 deletions docs/sources/reference/components/otelcol.auth.oauth2.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,15 +60,21 @@ The following blocks are supported inside the definition of
Hierarchy | Block | Description | Required
----------|---------|------------------------------------|---------
tls | [tls][] | TLS settings for the token client. | no
debug_metrics | [debug_metrics][] | Configures the metrics that this component generates to monitor its state. | no

[tls]: #tls-block
[debug_metrics]: #debug_metrics-block

### tls block

The `tls` block configures TLS settings used for connecting to the token client. If the `tls` block isn't provided, TLS won't be used for communication.

{{< docs/shared lookup="reference/components/otelcol-tls-client-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

### debug_metrics block

{{< docs/shared lookup="reference/components/otelcol-debug-metrics-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

## Exported fields

The following fields are exported and can be referenced by other components:
Expand Down
6 changes: 6 additions & 0 deletions docs/sources/reference/components/otelcol.auth.sigv4.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,10 @@ The following blocks are supported inside the definition of
Hierarchy | Block | Description | Required
------------|-----------------|------------------------------------|---------
assume_role | [assume_role][] | Configuration for assuming a role. | no
debug_metrics | [debug_metrics][] | Configures the metrics that this component generates to monitor its state. | no

[assume_role]: #assume_role-block
[debug_metrics]: #debug_metrics-block

### assume_role block

Expand All @@ -77,6 +79,10 @@ If the `assume_role` block is specified in the config and `sts_region` is not se

For cross region authentication, `region` and `sts_region` can be set different to different values.

### debug_metrics block

{{< docs/shared lookup="reference/components/otelcol-debug-metrics-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

## Exported fields

The following fields are exported and can be referenced by other components:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,19 @@ The following blocks are supported inside the definition of
| Hierarchy | Block | Description | Required |
| --------- | ---------- | ------------------------------------------------- | -------- |
| output | [output][] | Configures where to send received telemetry data. | yes |
debug_metrics | [debug_metrics][] | Configures the metrics that this component generates to monitor its state. | no

[output]: #output-block
[debug_metrics]: #debug_metrics-block

### output block

{{< docs/shared lookup="reference/components/output-block-metrics.md" source="alloy" version="<ALLOY_VERSION>" >}}

### debug_metrics block

{{< docs/shared lookup="reference/components/otelcol-debug-metrics-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

## Exported fields

The following fields are exported and can be referenced by other components:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,9 +118,11 @@ Hierarchy | Block | Description | Required
----------|------------|-------------------------------------------|---------
store | [store][] | Configures the in-memory store for spans. | no
output | [output][] | Configures where to send telemetry data. | yes
debug_metrics | [debug_metrics][] | Configures the metrics that this component generates to monitor its state. | no

[store]: #store-block
[output]: #output-block
[debug_metrics]: #debug_metrics-block

### store block

Expand All @@ -135,6 +137,10 @@ Name | Type | Description | Defau

{{< docs/shared lookup="reference/components/output-block-metrics.md" source="alloy" version="<ALLOY_VERSION>" >}}

### debug_metrics block

{{< docs/shared lookup="reference/components/otelcol-debug-metrics-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

## Exported fields

The following fields are exported and can be referenced by other components:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ The following blocks are supported inside the definition of
| histogram > explicit | [explicit][] | Configuration for a histogram with explicit buckets. | no |
| histogram > exponential | [exponential][] | Configuration for a histogram with exponential buckets. | no |
| output | [output][] | Configures where to send telemetry data. | yes |
debug_metrics | [debug_metrics][] | Configures the metrics that this component generates to monitor its state. | no

It is necessary to specify either a "[exponential][]" or an "[explicit][]" block:

Expand All @@ -115,6 +116,7 @@ It is necessary to specify either a "[exponential][]" or an "[explicit][]" block
[exemplars]: #exemplars-block
[events]: #events-block
[output]: #output-block
[debug_metrics]: #debug_metrics-block

### dimension block

Expand Down Expand Up @@ -212,6 +214,10 @@ The following attributes are supported:

{{< docs/shared lookup="reference/components/output-block-metrics.md" source="alloy" version="<ALLOY_VERSION>" >}}

### debug_metrics block

{{< docs/shared lookup="reference/components/otelcol-debug-metrics-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

## Exported fields

The following fields are exported and can be referenced by other components:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ protocol > otlp > client > tls | [tls][] | Configures TLS for th
protocol > otlp > client > keepalive | [keepalive][] | Configures keepalive settings for the gRPC client. | no
protocol > otlp > queue | [queue][] | Configures batching of data before sending. | no
protocol > otlp > retry | [retry][] | Configures retry mechanism for failed requests. | no
debug_metrics | [debug_metrics][] | Configures the metrics that this component generates to monitor its state. | no
debug_metrics | [debug_metrics][] | Configures the metrics that this component generates to monitor its state. | no

The `>` symbol indicates deeper levels of nesting. For example, `resolver > static`
refers to a `static` block defined inside a `resolver` block.
Expand Down
15 changes: 15 additions & 0 deletions docs/sources/reference/components/otelcol.exporter.prometheus.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,21 @@ See [Creating Prometheus labels from OTLP resource attributes][] for an example.
[Creating Prometheus labels from OTLP resource attributes]: #creating-prometheus-labels-from-otlp-resource-attributes
{{< /admonition >}}

## Blocks

The following blocks are supported inside the definition of
`otelcol.exporter.prometheus`:

Hierarchy | Block | Description | Required
----------|------------|--------------------------------------|---------
debug_metrics | [debug_metrics][] | Configures the metrics that this component generates to monitor its state. | no

[debug_metrics]: #debug_metrics-block

### debug_metrics block

{{< docs/shared lookup="reference/components/otelcol-debug-metrics-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

## Exported fields

The following fields are exported and can be referenced by other components:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ source | [source][] | Configures the
source > remote | [remote][] | Configures the gRPC client used to retrieve the Jaeger remote sampling document. | no
source > remote > tls | [tls_client][] | Configures TLS for the gRPC client. | no
source > remote > keepalive | [keepalive][] | Configures keepalive settings for the gRPC client. | no
debug_metrics | [debug_metrics][] | Configures the metrics that this component generates to monitor its state. | no

The `>` symbol indicates deeper levels of nesting. For example, `grpc > tls`
refers to a `tls` block defined inside a `grpc` block.
Expand All @@ -62,6 +63,7 @@ refers to a `tls` block defined inside a `grpc` block.
[remote]: #remote-block
[tls_client]: #tls-client-block
[keepalive_client]: #keepalive-client-block
[debug_metrics]: #debug_metrics-block

### http block

Expand Down Expand Up @@ -238,6 +240,10 @@ Name | Type | Description
`ping_response_timeout` | `duration` | Time to wait before closing inactive connections if the server does not respond to a ping. | | no
`ping_without_stream` | `boolean` | Send pings even if there is no active stream request. | | no

### debug_metrics block

{{< docs/shared lookup="reference/components/otelcol-debug-metrics-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

## Component health

`otelcol.extension.jaeger_remote_sampling` is only reported as unhealthy if given an invalid
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ exclude > attribute | [attribute][] | A list of attributes to match agains
exclude > resource | [resource][] | A list of items to match the resources against. | no
exclude > library | [library][] | A list of items to match the implementation library against. | no
exclude > log_severity | [log_severity][] | How to match against a log record's SeverityNumber, if defined. | no
debug_metrics | [debug_metrics][] | Configures the metrics that this component generates to monitor its state. | no

The `>` symbol indicates deeper levels of nesting. For example, `include > attribute`
refers to an `attribute` block defined inside an `include` block.
Expand All @@ -69,6 +70,7 @@ If both an `include` block and an `exclude`block are specified, the `include` pr
[resource]: #resource-block
[library]: #library-block
[log_severity]: #log_severity-block
[debug_metrics]: #debug_metrics-block

### action block

Expand Down Expand Up @@ -205,6 +207,10 @@ For example, adding a `span_names` filter could cause the component to error if

{{< docs/shared lookup="reference/components/output-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

### debug_metrics block

{{< docs/shared lookup="reference/components/otelcol-debug-metrics-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

## Exported fields

The following fields are exported and can be referenced by other components:
Expand Down
6 changes: 6 additions & 0 deletions docs/sources/reference/components/otelcol.processor.batch.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,13 +98,19 @@ The following blocks are supported inside the definition of
Hierarchy | Block | Description | Required
----------|------------|---------------------------------------------------|---------
output | [output][] | Configures where to send received telemetry data. | yes
debug_metrics | [debug_metrics][] | Configures the metrics that this component generates to monitor its state. | no

[output]: #output-block
[debug_metrics]: #debug_metrics-block

### output block

{{< docs/shared lookup="reference/components/output-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

### debug_metrics block

{{< docs/shared lookup="reference/components/otelcol-debug-metrics-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

## Exported fields

The following fields are exported and can be referenced by other components:
Expand Down
6 changes: 6 additions & 0 deletions docs/sources/reference/components/otelcol.processor.filter.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,11 +89,13 @@ traces | [traces][] | Statements which filter traces. | no
metrics | [metrics][] | Statements which filter metrics. | no
logs | [logs][] | Statements which filter logs. | no
output | [output][] | Configures where to send received telemetry data. | yes
debug_metrics | [debug_metrics][] | Configures the metrics that this component generates to monitor its state. | no

[traces]: #traces-block
[metrics]: #metrics-block
[logs]: #logs-block
[output]: #output-block
[debug_metrics]: #debug_metrics-block


### traces block
Expand Down Expand Up @@ -160,6 +162,10 @@ Only one of the statements inside the list of statements has to be satisfied.

{{< docs/shared lookup="reference/components/output-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

### debug_metrics block

{{< docs/shared lookup="reference/components/otelcol-debug-metrics-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

## Exported fields

The following fields are exported and can be referenced by other components:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ pod_association | [pod_association][] | Rules to associate pod metadata
pod_association > source | [source][] | Source information to identify a pod. | no
exclude | [exclude][] | Exclude pods from being processed. | no
exclude > pod | [pod][] | Pod information. | no
debug_metrics | [debug_metrics][] | Configures the metrics that this component generates to monitor its state. | no


The `>` symbol indicates deeper levels of nesting. For example, `extract > annotation`
Expand All @@ -88,6 +89,7 @@ refers to an `annotation` block defined inside an `extract` block.
[source]: #source-block
[exclude]: #exclude-block
[pod]: #pod-block
[debug_metrics]: #debug_metrics-block

### extract block

Expand Down Expand Up @@ -237,6 +239,10 @@ Name | Type | Description | Default | Required

{{< docs/shared lookup="reference/components/output-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

### debug_metrics block

{{< docs/shared lookup="reference/components/otelcol-debug-metrics-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

## Exported fields

The following fields are exported and can be referenced by other components:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,13 +76,19 @@ The following blocks are supported inside the definition of
Hierarchy | Block | Description | Required
----------|------------|---------------------------------------------------|---------
output | [output][] | Configures where to send received telemetry data. | yes
debug_metrics | [debug_metrics][] | Configures the metrics that this component generates to monitor its state. | no

[output]: #output-block
[debug_metrics]: #debug_metrics-block

### output block

{{< docs/shared lookup="reference/components/output-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

### debug_metrics block

{{< docs/shared lookup="reference/components/otelcol-debug-metrics-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

## Exported fields

The following fields are exported and can be referenced by other components:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,21 @@ Trace ID hashing samples based on hash values determined by trace IDs.

The `probabilistic_sampler` supports sampling logs according to their trace ID, or by a specific log record attribute.

## Blocks

The following blocks are supported inside the definition of
`otelcol.processor.probabilistic_sampler`:

Hierarchy | Block | Description | Required
----------|------------|--------------------------------------|---------
debug_metrics | [debug_metrics][] | Configures the metrics that this component generates to monitor its state. | no

[debug_metrics]: #debug_metrics-block

### debug_metrics block

{{< docs/shared lookup="reference/components/otelcol-debug-metrics-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

## Exported fields

The following fields are exported and can be referenced by other components:
Expand Down
Loading

0 comments on commit 7902416

Please sign in to comment.