OpenTelemetry is an open-source project by the Cloud Native Computing Foundation (CNCF). Its goal is to unify and standardize the creation and collection of telemetry within code.
Internal, code-created telemetry can be valuable for development, product, and security teams. Thanks to the observability OpenTelemetry provides, developers and site reliability engineering teams (SRE) can now devote more time to creating new app features rather than wrestling with their maintenance. Moreover, the platform can integrate with many interfaces which makes it easy to track and analyze app usage and performance data in real-time.
OpenTelemetry consists of multiple subprojects, which are its implementation in disparate languages and environments. Its telemetry standard consists of traces, metrics, and logs.
Applications and servers are often very complicated, with many possible flows and branches. This makes it difficult for developers to detect the sources of vulnerabilities and bugs, and can make it even more difficult to remediate them. The task becomes even harder when applied in a cloud-native environment. Here, code is split into countless microservices, and issues might cross over multiple containers.
Each event (a.k.a., span) has associated metadata, such as the service in which it occurs, how long it has lasted, what occurred, and any exception data. The trace represents a far bigger picture—the flow of events within an application.
A given trace can help developers understand the source of an issue, recreate it, and fix it much faster. A group of traces can help the SRE team find an app bottleneck and provide better resources to alleviate it. Trace statistics can also assist product teams to assess which features are frequently used, which ones require improvement, and those that become obsolete.
We’re an ongoing contributor to the project Python Pika library. The Pika library is used for communicating over AMQP queues, and our contribution to OpenTelemetry helps trace these messages over the queues. Our contribution includes an instrumentor, the application of OpenTelemetry specifications. It’s what causes events that occur to collect information, report the span, and continue a given trace.
By creating this library, we had to 1) fully assess how trace metadata should be passed over to queues, 2) find a way to continue a trace over an asynchronous flow, and 3) enrich the spans with event information. It was an educational and fun experience for the Oxeye team. You can find our library release here, and our source code here.
Contributing to open source projects has many payoffs. It’s a great opportunity for developers to take part in a large project, gain reviews from professionals, and improve their coding skills. It’s also an opportunity to thoroughly grasp the inner workings of emerging technologies, while also gaining professional credit and connections.
The Oxeye team quickly discovered how widely used our instrumentation has become; within a week of publishing it, we received feature requests and contributions to our library from other open source contributors. That was a terrific affirmation of our effort!
OpenTelemetry is CNCF’s flagship project and is pleased to accept contributions. Oxeye suggests you join us and contribute to the project today.