Introducing Lightstep Receiver for OpenTelemetry Collector
OpenTelemetry Lightstep Receiver helps you ingest traces generated by legacy Lightstep tracers in a simple way.
OpenTelemetry is a vendor-neutral, flexible standard that supports traces, metrics, and logs all in one place. Organizations who adopted older tracing solutions like OpenTracing or custom legacy tracer libraries to instrument their applications are faced with a migration task.
Today, weβre excited to announce the Lightstep Receiver for OpenTelemetry Collector, a component capable to receive tracing traffic from legacy Lightstep tracers, convert it to OpenTelemetry and propagate via OpenTelemetry Collector's traces pipeline.
If your application is instrumented with legacy Lightstep tracer library supporting only Lightstep satellites as trace collector, the OpenTelemetry Collector together with the Lightstep Receiver provides a straightforward way to export your trace data to any backend system which OpenTelemetry collector supports. For Zalando that opens a possibility to engage our application fleet into OpenTelemetry without a need to switch applications themselves from Lightstep tracers to OpenTelemetry.
Supported tracers and protocols
- lightstep-tracer-python: both Thrift binary and Protobuf
- lightstep-tracer-javascript: Thrift JSON over http
- lightstep-tracer-go: Protobuf over grpc
The lightstepreceiver
receives OpenTracing traces from Lightstep tracers converting them into OpenTelemetry traces propagating it further in pipelines:
Configuration steps
Here's a simple guide to set up your OpenTelemetry Collector and send your traces to any backend of your choice:
- Build the custom OpenTelemetry Collector: You need to make a custom build of the OpenTelemetry collector (this step will not be required if in future the Lightstep Receiver is included into the standard OpenTelemetry Collector Contrib pack). For this follow the standard OCB build routine, adding the Lightstep Receiver definition into the
receivers
section:
receivers:
- gomod: github.com/zalando/otelcol-lightstep-receiver <put version here>
name: lightstepreceiver
Set Up the OpenTelemetry Collector: The first step is to install the OpenTelemetry Collector. You can deploy the Collector as a standalone service, within a Kubernetes cluster, or as an agent on each service node. It will act as the central point for receiving, processing, and exporting your trace data.
Configure the Collector to Receive Lightstep Traces: In your
otelcol-config.yaml
configuration file, define the Lightstep Receiver
receivers:
lightstepreceiver:
protocols:
pbgrpc:
endpoint: "0.0.0.0:4317"
pbhttp:
endpoint: "0.0.0.0:4327"
thrift:
endpoint: "0.0.0.0:4417"
- Configure the Exporter to Your Desired Backend: After setting up the receiver, configure the exporters section to route your trace data to your desired backend. Below example just has the
debug
exporter printing data into console log, and the key benefit is that you may use any exporter that OpenTelemetry Collector supports.
exporters:
debug:
verbosity: detailed
- Set up the pipeline having the Lightstep Receiver as an entry point for tracing pipeline:
service:
pipelines:
traces:
receivers: [lightstepreceiver]
processors: []
exporters: [debug]
Conclusion
Ingesting trace data originating from OpenTracing and legacy tracer libraries to OpenTelemetry doesnβt need to be a painful, all-at-once effort. With the OpenTelemetry Collector and Lightstep Receiver, you can easily route traces from your legacy tracing solutions to any backend, whether itβs Lightstep, AWS X-Ray, or any other system that supports OpenTelemetry.
By using the OpenTelemetry Collector, you gain the flexibility to access raw data before ingestion enabling you to make any kind of special processing you need: from special sampling, and enriching data with additional attributes, to establishing the routes of ingesting data into different target systems depending on certain criteria.
Get started with the OpenTelemetry Collector and begin your migration to OpenTelemetry today. You can find more details and the Lightstep Receiver on GitHub.
Happy tracing, and may your trace data flow seamlessly to any observability backend you choose! π
The Zalando Observability Team
We're hiring! Do you like working in an ever evolving organization such as Zalando? Consider joining our teams as a Backend Engineer!