OpenTelemetry Collector

The OpenTelemetry Collector is an agent that offers a vendor-agnostic implementation of how to receive, process and export telemetry data to one or more open-source or commercial back-ends, including Lumigo.

The steps to configure an OpenTelemetry collector to report data to Lumigo are effectively just one: provide the right configuration (see OpenTelemetry Collector. In the Keeping your Lumigo Token secure, we provide some optional tips to handle the Lumigo token safely.

📘

On tracing AWS Lambda functions with OpenTelemetry

Lumigo supports tracing AWS lambda functions through its dedicated tracers, see the AWS Lambda Tracing documentation. Tracing AWS Lambda functions with OpenTelemetry is not currently supported in Lumigo: the tracing data will be accepted and processed, but it will not be marked as coming from a Lambda function, or be related with other Lambda data Lumigo collects.

OpenTelemetry Collector Configuration

IMPORTANT: If you use the OpenTelemetry Collector to send data to Lumigo, the Authorization HTTP header data must be configured in the exporter uploading data to the Lumigo OpenTelemetry endpoint. For more information about authorization and the Lumigo OpenTelemetry endpoint, refer to the Lumigo OpenTelemetry Endpoint.

exporters:
  otlphttp/lumigo:
    endpoint: https://ga-otlp.lumigo-tracer-edge.golumigo.com/v1/traces
    headers:
      Authorization: LumigoToken <token>

service:
  pipelines:
    traces:
      exporters: [otlphttp/lumigo]

📘

YAML is out to get you :-)

Mind the indentation! And if YAML does get you, be sure to let @brunoborges know.

Keeping your Lumigo Token secure

The OpenTelemetry Collector supports interpolation of environment variables in its configurations and, on platforms that support mounting secrets as environment variables like Amazon Elastic Container Service (Amazon ECS), Amazon Elastic Kubernetes Service (Amazon EKS) or any other Kubernetes flavor, this provides an excellent way of configuring the Lumigo token safely!

Assuming that the LumigoToken is available as the value of the LUMIGO_TOKEN environment variable on the OpenTelemetry Collector process, the configuration then becomes:

exporters:
  otlphttp/lumigo:
    endpoint: https://ga-otlp.lumigo-tracer-edge.golumigo.com/v1/traces
    headers:
      Authorization: LumigoToken ${LUMIGO_TOKEN}

service:
  pipelines:
    traces:
      exporters: [otlphttp/lumigo]

Supported semantic conventions

Semantic Conventions, also known as semantic attributes, are commonly used to specify common names for various types of operations and data in OpenTelemetry. Employing semantic conventions allows for the standardization of naming across code bases, libraries, and platforms.

The supported Semantic Conventions are available for traces and resources:

AWS Distro for OpenTelemetry

The AWS Distro for OpenTelemetry offers a version of the OpenTelemetry Collector that can send trace data to Lumigo.

OpenTelemetry Quarkus.io Extension

Quarkus.io has an OpenTelemetry Extension that supports sending trace data over the OTLP/gRPC protocol.

As Lumigo currently supports OTLP/HTTP (see Lumigo OpenTelemetry Endpoint) and the Quarkus OpenTelemetry extension does not (yet!), the suggested setup is to send the data from the Quarkus application to an OpenTelemetry Collector, and the latter forwards it to Lumigo.