Skip to content

Latest commit

 

History

History
220 lines (184 loc) · 7.96 KB

File metadata and controls

220 lines (184 loc) · 7.96 KB

Coralogix Exporter

Status
Stability traces, metrics beta
logs alpha
Supported pipeline types traces, metrics, logs
Distributions contrib

The Coralogix exporter sends traces, metrics and logs to Coralogix.

Please review the Collector's security documentation, which contains recommendations on securing sensitive information such as the API key required by this exporter.

Configuration

Example configuration:

exporters:
  coralogix:
    # The Coralogix traces ingress endpoint
    traces:
      endpoint: "otel-traces.coralogix.com:443"
    metrics:
      endpoint: "otel-metrics.coralogix.com:443"
    logs:
      endpoint: "otel-logs.coralogix.com:443"

    # Your Coralogix private key is sensitive
    private_key: "xxx"

    # (Optional) Ordered list of Resource attributes that are used for Coralogix
    # AppName and SubSystem values. The first non-empty Resource attribute is used.
    # Example: application_name_attributes: ["k8s.namespace.name", "service.namespace"]
    # Example: subsystem_name_attributes: ["k8s.deployment.name", "k8s.daemonset.name", "service.name"]
    application_name_attributes:
    - "service.namespace"
    subsystem_name_attributes:
    - "service.name"

    # Traces, Metrics and Logs emitted by this OpenTelemetry exporter 
    # are tagged in Coralogix with the default application and subsystem constants.
    application_name: "MyBusinessEnvironment"
    subsystem_name: "MyBusinessSystem"

    # (Optional) Timeout is the timeout for every attempt to send data to the backend.
    timeout: 30s

Tracing deprecation

The v0.60 version deprecates old Jaeger based tracing endpoint in favour of Opentelemetry based one.

To migrate, please remove the old endpoint field, and change the configuration to traces.endpoint using the new Tracing endpoint.

Old configuration:

exporters:
  coralogix:
    # The Coralogix traces ingress endpoint
    endpoint: "tracing-ingress.coralogix.com:9443"

New configuration:

exporters
  coralogix:
    # The Coralogix traces ingress endpoint
    traces:
      endpoint: "otel-traces.coralogix.com:443"

Coralogix's Endpoints

Depending on your region, you might need to use a different endpoint. Here are the available Endpoints:

Region Traces Endpoint Metrics Endpoint Logs Endpoint
USA1 otel-traces.coralogix.us:443 otel-metrics.coralogix.us:443 otel-logs.coralogix.us:443
APAC1 otel-traces.app.coralogix.in:443 otel-metrics.coralogix.in:443 otel-logs.coralogix.in:443
APAC2 otel-traces.coralogixsg.com:443 otel-metrics.coralogixsg.com:443 otel-logs.coralogixsg.com:443
EUROPE1 otel-traces.coralogix.com:443 otel-metrics.coralogix.com:443 otel-logs.coralogix.com:443
EUROPE2 otel-traces.eu2.coralogix.com:443 otel-metrics.eu2.coralogix.com:443 otel-logs.eu2.coralogix.com:443

Application and SubSystem attributes

v0.62.0 release of OpenTelemetry Collector allows you to map Application name and Subsystem name to Resource attributes. You need to set application_name_attributes and subsystem_name_attributes fields with a list of potential Resource attributes for the AppName and Subsystem values. The first not-empty Resource attribute is going to be used.

Kubernetes attributes

When using OpenTelemetry Collector with k8sattribute processor, you can use attributes coming from Kubernetes, such as k8s.namespace.name or k8s.deployment.name. The following example shows recommended list of attributes:

exporters:
  coralogix:
    # The Coralogix traces ingress endpoint
    traces:
      endpoint: "otel-traces.coralogix.com:443"
    metrics:
      endpoint: "otel-metrics.coralogix.com:443"
    logs:
      endpoint: "otel-logs.coralogix.com:443"
    application_name_attributes:
      - "service.namespace"
      - "k8s.namespace.name" 
    subsystem_name_attributes:
      - "service.name"
      - "k8s.deployment.name"
      - "k8s.statefulset.name"
      - "k8s.daemonset.name"
      - "k8s.cronjob.name"
      - "k8s.job.name"
      - "k8s.container.name"

Host Attributes

OpenTelemetry Collector resourcedetection processor can discover Host Resource attributes, such as host.name and provide Resource attributes using environment variables, which can be used for setting AppName and SubSystem fields in Coralogix.

Example:

processors:
  resourcedetection/system:
    detectors: ["system", "env"]
    system:
      hostname_sources: ["os"]

And setting environment variable such as:

OTEL_RESOURCE_ATTRIBUTES="env=production"

You can configure Coralogix Exporter:

exporters:
  coralogix:
    # The Coralogix traces ingress endpoint
    traces:
      endpoint: "otel-traces.coralogix.com:443"
    metrics:
      endpoint: "otel-metrics.coralogix.com:443"
    logs:
      endpoint: "otel-logs.coralogix.com:443"
    application_name_attributes:
      - "env" 
    subsystem_name_attributes:
      - "host.name"

EC2 Attributes

OpenTelemetry Collector resourcedetection processor can discover EC2 Resource attributes, such as EC2 tags as resource attributes.

Example:

processors:
 resourcedetection/ec2:
    detectors: ["ec2"]
    ec2:
      # A list of regex's to match tag keys to add as resource attributes can be specified
      tags:
        - ^ec2.tag.name$
        - ^ec2.tag.subsystem$

You can configure Coralogix Exporter:

exporters:
  coralogix:
    # The Coralogix traces ingress endpoint
    traces:
      endpoint: "otel-traces.coralogix.com:443"
    metrics:
      endpoint: "otel-metrics.coralogix.com:443"
    logs:
      endpoint: "otel-logs.coralogix.com:443"
    application_name_attributes:
      - "ec2.tag.name" 
    subsystem_name_attributes:
      - "ec2.tag.subsystem"

Custom Attributes

You can combine and create custom Resource attributes using transform processor. For example:

    transform:
     logs:
       queries:
       - set(resource.attributes["applicationName"], Concat("-", "development-environment", resource.attributes["k8s.namespace.name"]))

Then you can use the custom Resource attribute in Coralogix exporter:

exporters:
  coralogix:
    # The Coralogix traces ingress endpoint
    traces:
      endpoint: "otel-traces.coralogix.com:443"
    metrics:
      endpoint: "otel-metrics.coralogix.com:443"
    logs:
      endpoint: "otel-logs.coralogix.com:443"
    application_name_attributes:
      - "applicationName" 
    subsystem_name_attributes:
      - "host.name"

Need help?

Our world-class customer success team is available 24/7 to walk you through the setup for this exporter and answer any questions that may come up. Feel free to reach out to us via our in-app chat or by sending us an email to [email protected].