Using the OpenTelemetry Collector with Flink [Technical Preview]

The OpenTelemetry metrics reporter makes it easier and more efficient to aggregate Flink jobs' metrics to a central OpenTelemetry-compatible service using open standards.

The following dependencies need to be added to the pom.xml file.

<dependency>
    <groupId>io.opentelemetry</groupId>
    <artifactId>opentelemetry-sdk-metrics</artifactId>
    <version>1.30.0</version>
</dependency>
<dependency>
    <groupId>io.opentelemetry</groupId>
    <artifactId>opentelemetry-exporter-otlp</artifactId>
    <version>1.30.0</version>
</dependency>

After compiling your application you can start collecting metrics with the command line options below.

Add the following command line options to your job to start collecting metrics:

...
    -yD metrics.reporters=otel \
  -yD metrics.reporter.otel.factory.class=org.apache.flink.metrics.otel.OpenTelemetryMetricReporterFactory \ 
  -yD metrics.reporter.otel.exporter.endpoint=[*** FQDN OR IP ADDRESS ***]:[*** PORT ***] \
  -yD metrics.reporter.otel.service.name=[*** SERVICE NAME ***] \
  -yD metrics.reporter.otel.service.version=[*** SERVICE VERSION ***] \
  ...
  

For more information on using the Flink OpenTelemetry Metrics Reporter, refer to the Apache Flink documentation.