Skip to main content
Version: latest

otel-metrics

The otel-metrics operator handles collecting and exporting metrics using the Prometheus exporter. When setting otel-metrics-listen=true, it will serve http requests on "0.0.0.0:2224" (configurable using otel-metrics-listen-address) with the metrics available at "/metrics".

Priority

9995

Parameters

Global Parameters

otel-metrics-listen

Enables the Prometheus exporter on the address given by otel-metrics-listen-address if set to true.

Default: false

otel-metrics-listen-address

The listen address that should be serving Prometheus requests.

Default: 0.0.0.0:2224

Instance Parameters

otel-metrics-name

Overrides the name of a datasource and explicitly sets it as name for the export. This is mandatory if you want to export the metrics. Use a name that is unique to the gadget+params combination to avoid collision of metrics.

Fully qualified name: operator.otel-metrics.otel-metrics-name

otel-metrics-print-interval

Interval in which metrics should be emitted as human-readable text. This only has effect for data sources that are annotated using metrics.print=true. This is also limited to print histograms for now. This functionality might be removed in the future. The minimum interval is 25ms.

Fully qualified name: operator.otel-metrics.otel-metrics-print-interval

Default: 1000ms

Annotations

Data Source Annotations

metrics.collect

Together with the otel-metrics-listen=true and otel-metrics-name=<name> flags, this annotation is used to enable the Otel Metrics operator to export the data source's output as Prometheus metrics.

metrics.print

If set to "true", the Otel Metrics operator will render the data source's output in more human-friendly formats.

Currently, this feature only supports rendering as histograms the output of Map Iterators with the map’s value type of gadget_histogram_slot__u32 or gadget_histogram_slot__u64 (TODO: Add link). To achieve this, the Otel Metrics operator disables the original data source and creates a new one, suffixed with -rendered, which will emit the original data source's output as a rendered histogram. Additionally, the Otel Metrics operator will configure the CLI operator for this new data source as follows:

  • Set both the cli.supported-output-modes and cli.default-output-mode annotations to histogram. This will create a custom output mode that will make the CLI operator print the output as it is received (i.e., a rendered histogram), and use this mode as the default.
  • Set the cli.clear-screen-before annotation to true to make the CLI operator clear the screen before printing each histogram.

Field Annotations

metrics.type

Defines the type of the field. If not set, the operator will try to infer it from the field type.

Possible values: counter, gauge, histogram, key.

metrics.unit

This annotation is used to set the OpenTelemetry instrument unit. It should be defined using the appropriate UCUM case-sensitive code.

metrics.description

This annotation is used to set the OpenTelemetry instrument description.

metrics.boundaries

For fields of type histogram, this annotation allows to specify the OpenTelemetry instrument explicit bucket boundaries. It should be a comma-separated list of numbers.