Skip to content

Coralogix

HolmesGPT can use Coralogix for logs/traces (DataPrime) and, separately, PromQL-style metrics. This page shows both setups.

Prerequisites

  1. A Coralogix API key with DataQuerying permissions
  2. A Coralogix domain (e.g., eu2.coralogix.com)
  3. (Optional) Your team's slug - only needed for generating clickable UI permalink URLs in tool output

You can find your domain and team_slug from the URL you use to access Coralogix. For example, if you access Coralogix at https://my-team.app.eu2.coralogix.com/ then team_slug is my-team and domain is eu2.coralogix.com.

Configuration

Configure both the Coralogix DataPrime toolset (for logs/traces) and the Prometheus metrics toolset (for metrics) using the same API key. The team_slug field is optional — it's only used to generate clickable permalink URLs that open query results in the Coralogix UI.

Holmes automatically derives the UI hostname for permalinks from your domain — the Coralogix UI uses a different hostname than the API in most regions. For example, with the US2 domain (us2.coralogix.com or cx498.coralogix.com) permalinks point to https://<team_slug>.app.cx498.coralogix.com. If your team's UI lives at a non-standard address, set the optional ui_url field to its full base URL (e.g. ui_url: "https://my-team.app.cx498.coralogix.com") to override the derived hostname.

Set the environment variable:

export CORALOGIX_API_KEY=your-coralogix-api-key

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

toolsets:
  coralogix:
    enabled: true
    config:
      api_key: "{{ env.CORALOGIX_API_KEY }}"
      domain: "eu2.coralogix.com"
      # Optional: enables clickable UI permalink URLs in tool output
      team_slug: "your-company-name"

  prometheus/metrics:
    enabled: true
    subtype: coralogix
    config:
      additional_headers:
        Authorization: "Bearer {{ env.CORALOGIX_API_KEY }}"
      prometheus_url: "https://ng-api-http.eu2.coralogix.com/metrics"  # replace domain

After making changes to your configuration, run:

holmes toolset refresh

Create a Kubernetes secret in the namespace Holmes runs in:

kubectl create secret generic holmes-coralogix-logs \
  --from-literal=CORALOGIX_API_KEY=your-coralogix-api-key \
  -n <namespace>

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

extraEnvVarsSecrets:
  - holmes-coralogix-logs

toolsets:
  coralogix:
    enabled: true
    config:
      api_key: "{{ env.CORALOGIX_API_KEY }}"
      domain: "eu2.coralogix.com"
      # Optional: enables clickable UI permalink URLs in tool output
      team_slug: "your-company-name"

  prometheus/metrics:
    enabled: true
    subtype: coralogix
    config:
      additional_headers:
        Authorization: "Bearer {{ env.CORALOGIX_API_KEY }}"
      prometheus_url: "https://ng-api-http.eu2.coralogix.com/metrics"  # replace domain

Apply the configuration:

helm upgrade holmes robusta/holmes -f values.yaml

Create a Kubernetes secret in the namespace Holmes runs in:

kubectl create secret generic holmes-coralogix-logs \
  --from-literal=CORALOGIX_API_KEY=your-coralogix-api-key \
  -n <namespace>

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

holmes:
  extraEnvVarsSecrets:
    - holmes-coralogix-logs

  toolsets:
    coralogix:
      enabled: true
      config:
        api_key: "{{ env.CORALOGIX_API_KEY }}"
        domain: "eu2.coralogix.com"
        # Optional: enables clickable UI permalink URLs in tool output
        team_slug: "your-company-name"

    prometheus/metrics:
      enabled: true
      subtype: coralogix
      config:
        additional_headers:
          Authorization: "Bearer {{ env.CORALOGIX_API_KEY }}"
        prometheus_url: "https://ng-api-http.eu2.coralogix.com/metrics"  # replace domain

Apply the configuration:

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

Note: Both toolsets use the same API key. In Kubernetes, you only need to create one secret — the env var feeds both the coralogix toolset's api_key field and the Prometheus toolset's Authorization header.

Multiple Instances

The Coralogix toolset can connect to more than one Coralogix 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:
  coralogix:
    enabled: true
    config:
      instances:
        - name: prod
          api_key: "<your Coralogix API key>"
          domain: "eu2.coralogix.com"
        - name: staging
          api_key: "<your Coralogix API key>"
          domain: "eu2.coralogix.com"

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

By specifying details about your Coralogix metrics, logs, and traces, you can significantly speed up and improve investigations. This allows Holmes to work with your environment directly, rather than spending time discovering labels, mappings, and metric names on its own.

To configure this:

  1. Open the Robusta platform — pick your region:

  2. Navigate to Settings → AI Assistant → AI Customization

  3. Add your labels and metric details
  4. Save your changes

Example Custom Instructions

Below is an example of how your custom instructions might look, based on the labels and metrics used in your environment:

# Coralogix details

For Coralogix, use the following label mappings for logs:
- pod: k8s.pod_name
- namespace: k8s.namespace_name
- service: k8s.service_name
- deployment: k8s.deployment_name

Custom Coralogix metrics:
- payments_failures: tracks payment processing failures
- api_latency_p95: 95th percentile API latency