Instrumentation of Containerized Applications

To achieve complete observability over containerized applications, Lumigo's distributed tracing for containerized applications is based on OpenTelemetry and supports both Lumigo OpenTelemetry Distributions and "vanilla" OpenTelemetry.

Lumigo Kubernetes Operator

Lumigo can automatically trace your Python and Node.js applications running on Kubernetes via the Lumigo Kubernetes Operator.

Lumigo OpenTelemetry Distributions

Lumigo's distributions of OpenTelemetry are based on upstream, selected OpenTelemetry packages, and have additional capabilities:

  • No-code injection: The distributions can be added to your applications without code changes to the applications themselves; the distribution is an additional dependency you add to your application at build time, and are activated and configured exclusively via environment variables.

  • Automated regression testing: All the automatic instrumentation included in Lumigo distributions of OpenTelemetry are rigorously, automatically tested for compatibility with all available versions of the packages they instrument. As new versions of an instrumented package are released, we automatically check for its compatibility and add it to the support matrix.

The Lumigo's own tracers for containerized applications are distributions of OpenTelemetry, available for the Python, Node.js, and Java.

"Vanilla" OpenTelemetry

Lumigo supports "vanilla" OpenTelemetry, that is, the OpenTelemetry SDKs and implementations provided by the community, as documented by the OpenTelemetry Support section.

πŸ“˜

What should you use?

  • If your applications are running on Kubernetes, use the Lumigo Kubernetes Operator.
  • If your containerized applications are running on Amazon ECS and you manage them via AWS CDK 2, have a look at the Lumigo CDK Constructs. With one line of code, you can get all Node.js and Python workloads running on Amazon ECS in your CDK application traced with Lumigo.
  • If your applications are not already instrumented with OpenTelemetry and there is a Lumigo OpenTelemetry Distribution for the programming languages the applications are built with, go ahead and use the Lumigo OpenTelemetry Distribution: they are super easy to adopt and work out of the box with Lumigo.
  • If your applications are not already instrumented with OpenTelemetry but there is no Lumigo OpenTelemetry Distribution yet for the programming languages the applications are built with, then use the community OSS OpenTelemetry that fits you best; the Other OpenTelemetry implementations section provides pointers to get you started.
  • If your applications are already instrumented with OpenTelemetry, as it happens with increasingly more third-party components every day, then use the instrumentation you already have.
    The OpenTelemetry Support provides a lot of sample configurations for many OpenTelemetry SDKs out there.

πŸ“˜

Questions about adding OpenTelemetry to your applications?

If you are having issues connecting an application instrumented with OpenTelemetry with Lumigo, please contact our support.