Skip to content

Integrating Kubernetes with Coralogix Continuous Profiling

The following section provides step-by-step instructions for setting up Continuous Profiling (CP) in a Kubernetes environment by deploying the Coralogix CP agent together with the Coralogix collector. The Coralogix collector includes the OpenTelemetry (OTel) collector and serves as the central component for receiving and forwarding telemetry data—including profiling, traces, and metrics—into the Coralogix platform.

Prerequisites

  1. To get started with Continuous Profiling, first onboard Application Performance Monitoring by instrumenting your service with an OTel-compatible SDK and verifying that traces are successfully sent to Coralogix. Ensure that traces are assigned to the Medium (Monitoring) TCO pipeline to be processed correctly.

  2. Before starting the installation, ensure that your environment meets the minimum version requirements:

  • Kubernetes 1.24 or newer
  • Helm 3.9 or newer

Use the command below to confirm your Helm version:

helm version

Installing the Continuous Profiling agent and OTel collector

  1. Add the Coralogix Helm repository.

    Add the Coralogix Helm chart repository and update your local Helm repo cache by running:

    helm repo add coralogix https://cgx.jfrog.io/artifactory/coralogix-charts-virtual
    helm repo update
    
  2. Enable the Continuous Profiling agent.

    To activate the CP agent, create a file named cp.yaml and insert the following configuration:

    coralogix-profiling-agent:
      enabled: true
    

    Note

    By default, the Coralogix Continuous Profiling agent collects profiling data from all services across your Kubernetes cluster.

    To limit data collection to specific nodes—for instance, to avoid monitoring system-critical or infrastructure-dedicated nodes—you can configure node affinity, anti-affinity, and tolerations.

    These Kubernetes features allow fine-grained control over pod scheduling, enabling you to tailor where the profiling agent is deployed based on node characteristics and cluster topology.

  3. Install or upgrade the Coralogix collector.

If you haven't yet installed the Coralogix collector

  1. Create the required secret.

    Ensure a Kubernetes secret named coralogix-keys exists and includes your Coralogix Private API Key. If it doesn't, use the command below to create it:

    kubectl create secret generic coralogix-keys --from-literal=PRIVATE_KEY="<Your Coralogix Private API Key>"
    
  2. Install the OTel collector with CP agent enabled.

    After creating the secret, deploy the Coralogix integration (which includes the Otel collector) along with the CP agent using the following Helm command. Replace <cluster name> and <Your Coralogix Region Domain> with the appropriate values:

    helm upgrade --install otel-coralogix-integration coralogix/otel-integration --version=0.0.128 --render-subchart-notes --set global.domain="<Your Coralogix Domain>" --set global.clusterName=staging -f 
    values-ebpf-profiler.yaml
    

If you have already installed the Coralogix collector

If the Coralogix collector is already deployed in your cluster, add the following to your existing override file:

opentelemetry-agent:
  enabled: true
  presets:
    profilesCollection:
      enabled: true

  command:
    extraArgs: [ "--feature-gates=service.profilesSupport" ]

coralogix-ebpf-profiler:
  enabled: true
  ebpf_agent:
    otel:
      exporter:
#        # configure the opentelemetry collector endpoint here
#        endpoint: "$(HOST_IP):4317"
helm upgrade --install otel-coralogix-integration coralogix/otel-integration --version=0.0.128 --render-subchart-notes --set global.domain="<Your Coralogix Domain>" --set global.clusterName="<cluster name>" -f <your override.yaml> 

Next steps

To produce meaningful profiling insights for compiled languages like Go, Rust, C, C++, or Haskell, Coralogix Continuous Profiling requires access to debug symbols—also referred to as debuginfos. Find out more about uploading symbols here.