Skip to content

Trino

Connect HolmesGPT to a Trino coordinator for bounded, read-only SQL diagnostics.

Prerequisites

  • A reachable Trino coordinator
  • A Trino user with access to the catalogs and schemas Holmes should inspect

Configuration

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

toolsets:
  trino:
    enabled: true
    config:
      api_url: https://trino.example.com
      trino_user: holmes
      catalog: system
      schema: runtime
      max_rows: 200
      bearer_token: "{{ env.TRINO_TOKEN }}"

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

toolsets:
  trino:
    enabled: true
    config:
      api_url: https://trino.example.com
      trino_user: holmes
      catalog: system
      schema: runtime
      max_rows: 200
      bearer_token: "{{ env.TRINO_TOKEN }}"

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:
    trino:
      enabled: true
      config:
        api_url: https://trino.example.com
        trino_user: holmes
        catalog: system
        schema: runtime
        max_rows: 200
        bearer_token: "{{ env.TRINO_TOKEN }}"

Apply the configuration:

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

Use username and password instead of bearer_token when the endpoint uses HTTP basic authentication. extra_headers can supply proxy or gateway headers.

Multiple Instances

The Trino toolset can connect to more than one Trino 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:
  trino:
    enabled: true
    config:
      instances:
        - name: prod
          api_url: https://trino.example.com
          trino_user: holmes
        - name: staging
          api_url: https://trino.example.com
          trino_user: holmes

When more than one instance is configured, HolmesGPT automatically adds an instance parameter to every Trino tool (so it can pick which instance to query) and a trino_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

Show failed Trino queries from the last hour and summarize their error types
Explain the query plan for this SELECT without running it