Skip to content

Apache Flink

Connect HolmesGPT to the Flink JobManager monitoring REST API.

Prerequisites

  • A reachable Flink JobManager REST endpoint

Configuration

Add the following to ~/.holmes/config.yaml. Create the file if it doesn't exist:

toolsets:
  flink:
    enabled: true
    config:
      api_url: http://flink-jobmanager.streaming.svc:8081
      max_items: 100

When using the standalone Holmes Helm Chart, update your values.yaml:

toolsets:
  flink:
    enabled: true
    config:
      api_url: http://flink-jobmanager.streaming.svc:8081
      max_items: 100

Apply the configuration:

helm upgrade holmes holmes/holmes --values=values.yaml

When using the Robusta Helm Chart (which includes HolmesGPT), update your generated_values.yaml:

holmes:
  toolsets:
    flink:
      enabled: true
      config:
        api_url: http://flink-jobmanager.streaming.svc:8081
        max_items: 100

Apply the configuration:

helm upgrade robusta robusta/robusta --values=generated_values.yaml --set clusterName=<YOUR_CLUSTER_NAME>

For authenticated gateways, set bearer_token, basic-auth username and password, or templated extra_headers.

Multiple Instances

The Apache Flink toolset can connect to more than one Apache Flink instance. List each one under instances: with a unique name. Any config field set outside instances: becomes a default that every instance inherits, so shared settings only need to be written once.

toolsets:
  flink:
    enabled: true
    config:
      instances:
        - name: prod
          api_url: http://flink-jobmanager.streaming.svc:8081
        - name: staging
          api_url: http://flink-jobmanager.streaming.svc:8081

When more than one instance is configured, HolmesGPT automatically adds an instance parameter to every Apache Flink tool (so it can pick which instance to query) and a flink_list_instances tool to list the configured instances. With a single instance — including the flat config without instances: — the tools are unchanged and fully backwards compatible.

See Multiple Instances for the full behaviour, including global defaults and health reporting.

Common Use Cases

Why did the latest Flink job fail?
Check whether checkpoint duration or failed checkpoints explain the lag