OpenTelemetry Introduction#
Warning
Note that OpenTelemetry support in CTA is in its early stages and considered experimental. Published metrics and their attributes are likely to change.
Before getting started with OpenTelemetry, we recommend you to read the official OpenTelemetry page: What is OpenTelemetry. This page explains what OpenTelemetry is, what it is for and why it exists.
To use OpenTelemetry in C++, we use the opentelemetry-cpp SDK. This client is not provided as an RPM, so we package it ourselves using the cta-dependencies GitLab repository and publish it to the cta-dependencies RPM repo.
To read further about OpenTelemetry in CTA, see:
At the moment we use OpenTelemetry only to produce Metrics. However, other telemetry data such as Tracing and Logs are also part of the OpenTelemetry spec. Support for these might be added in the future.
References#
While we try to give a brief explanation of these concepts when they are used, it is still useful to get a more complete definition and examples from the official documentation. Below are a number of useful links that can help in understanding the various concepts at play in OpenTelemetry. The short definitions below are (mostly) quoted from this documentation.
- Signals: system outputs that describe the underlying activity of the operating system and applications running on a platform.
- Metrics: a measurement of a service captured at runtime.
- Instrumentation: the process of adding instruments to a system that emit signals
- Resources: an entity that produces signals.
- Semantic Conventions: a set of conventions that specify common names for different kinds of operations and data.