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.

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

toolsets:
  coralogix:
    enabled: true
    config:
      api_key: "<your 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 <your 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

First, create a Kubernetes secret with your Coralogix API key:

kubectl create secret generic coralogix-api-key \
  --from-literal=api-key=your-coralogix-api-key \
  -n holmes

Namespace must match Holmes' deployment

Create the secret in the same namespace where Holmes runs. The -n holmes flag in the Holmes Helm tab and -n default in the Robusta Helm tab match each chart's documented defaults — adjust if you installed Holmes/Robusta into a different namespace. A secret in the wrong namespace silently resolves to an empty env var and authentication will fail with no clear error.

Then add to your Holmes Helm values:

additionalEnvVars:
  - name: CORALOGIX_API_KEY
    valueFrom:
      secretKeyRef:
        name: coralogix-api-key
        key: api-key

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

First, create a Kubernetes secret with your Coralogix API key:

kubectl create secret generic coralogix-api-key \
  --from-literal=api-key=your-coralogix-api-key \
  -n default

Namespace must match Holmes' deployment

Create the secret in the same namespace where Holmes runs. The -n holmes flag in the Holmes Helm tab and -n default in the Robusta Helm tab match each chart's documented defaults — adjust if you installed Holmes/Robusta into a different namespace. A secret in the wrong namespace silently resolves to an empty env var and authentication will fail with no clear error.

Then add to your Robusta Helm values:

holmes:
  additionalEnvVars:
    - name: CORALOGIX_API_KEY
      valueFrom:
        secretKeyRef:
          name: coralogix-api-key
          key: api-key
  toolsets:
    coralogix:
      enabled: true
      config:
        api_key: "{{ env.CORALOGIX_API_KEY }}"
        domain: "eu2.coralogix.com"
        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"

Update your Helm values and run a Helm upgrade:

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

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

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. Go to platform.robusta.dev
  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