Coralogix¶
HolmesGPT can use Coralogix for logs/traces (DataPrime) and, separately, PromQL-style metrics. This page shows both setups.
Prerequisites¶
- A Coralogix API key with
DataQueryingpermissions - A Coralogix domain (e.g.,
eu2.coralogix.com) - (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:
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:
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:
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:
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.
Recommended: Customize Coralogix Instructions¶
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:
-
Open the Robusta platform — pick your region:
-
Navigate to Settings → AI Assistant → AI Customization
- Add your labels and metric details
- 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