|
OpenTracing
h ttps:// opentracing.io/
OpenTracing develops a platform-independent, vendor-independent Trace protocol that makes it easy for developers to add or replace implementations of distributed tracing systems. In November 2016 the CNCF Technical Committee voted to accept OpenTracing as a Hosted project, this is the third project of CNCF, the first one is Kubernetes, the second one is Prometheus, which shows the importance CNCF attaches to the observability behind OpenTracing. For example, the big names Zipkin and Jaeger follow the OpenTracing protocol.
OpenCensus
h ttps:// opencensus.io/
You may think, since we have OpenTracing, what's the point of OpenCensus? I'm sorry, but you should know that OpenCensus was initiated by Google, the company that first proposed the concept of Tracing, and OpenCensus is also the community version of Google Dapper. OpenCensus and OpenTracing the biggest difference is that in addition to Tracing, it also puts Metrics also included, so that you can also do the basic metrics monitoring on OpenCensus; also a little different is that OpenCensus is not pure specification development, he also puts the data collection, including Agent, Collector, a brain have engaged in the OpenCensus has a large number of followers, and recently the biggest news is that Microsoft also announced that it is joining the OpenCensus community version of the Google Dapper. OpenCensus can be said to be like a tiger with wings.
What is OpenTelemetry?
h ttps:// opentelemetry.io/
OpenTelemetry merges the OpenTracing and OpenCensus projects to provide a set of APIs and libraries to standardize the collection and transmission of telemetry data.OpenTelemetry provides a secure, vendor-neutral tool so that data can be sent to different backends as needed.
The OpenTelemetry project consists of the following components:
- Promotes the use of a consistent specification across all projects
- Specification-based, APIs with interfaces and implementations
- SDKs (implementations of the APIs) in different languages, e.g. Java, Python, Go, Erlang, etc.
- Exporters: can send the data to a chosen backend
- Collectors: vendor-neutral implementations for processing and exporting telemetry data
Opentelemetry Terminology:
Traces: records request activity that passes through the distributed system, a trace is a directed acyclic graph of spans
Spans: a named, time-based operation is represented in a trace. spans are nested to form a trace tree. Each trace contains a root span that describes the end-to-end latency, and its sub-operations may also have one or more sub-spans.
Metrics: raw metric data about a service captured at runtime. metric instruments defined by Opentelemetry. observer supports data collection via asynchronous APIs, one data per collection interval.
Context: a span contains a span context, which is a globally unique identifier that indicates the unique request to which each span belongs and the data needed to transfer trace information across service boundaries. openTelemetry also supports a correlation context, which can contain user-defined attributes. The correlation context is not required and components can choose not to carry and store this information.
Context propagation: Indicates the passing of context information between different services, usually via an HTTP header. Context propagation is one of the key features of the Opentelemetry system. In addition to tracing, there are some interesting uses, e.g., performing A/B tests. OpenTelemetry supports Context propagation through multiple protocols to avoid possible problems, but it is important to note that it is better to use a single method in your own application.
Benefits of OpenTelemetry
By combining OpenTracing and OpenCensus into one open standard, OpenTelemetry offers the following conveniences:
Simple choice: Instead of having to choose between two standards, OpenTelemetry is compatible with both OpenTracing and OpenCensus. Cross-platform: OpenTelemetry supports a wide range of languages and backends. It represents a vendor-neutral way to capture and transmit telemetry data to backends without changing existing tools. Simplifying Observability: As OpenTelemetry says, "High quality observations require high quality telemetry". Hopefully, we will see more vendors move to OpenTelemetry because it is more convenient and only requires testing of a single standard.
|
Previous article .NET Core in Linux traffic packet capture practiceNext article:Deploying Jaeger Distributed Link Tracing Tutorial with Docker
|