What Is This OpenTelemetry Thing? • Martin Thwaites • GOTO 2024 (Category Architecture)
Interesting. speech Martin Thwaites, Principal Developer Advocate from Honeycomb The main point of the speech is about this
- The author begins with the origins of observability, when people focused on flashing light bulbs on the devices themselves:)
- In the 2000s, metrics were used to monitor production systems, as space was scarce and systems performance was not too large. Here it was important to preaggregate the data correctly, initially understanding what information would be needed, since the metrics were calculated in advance, and the original events were not stored. Sometime in the 2010s, time-series databases were used to store metrics.
- Then became popular logs, which are often used ELK stack (Elastic, Logstach, Kibana). This allowed to move away from preliminary data aggregation and improve observability. In fact, in Kibana, it was possible to build beautiful dashboards after the fact, aggregating data as needed.
- Sometime in the mid-2010s, systems became more complex and distributed, and distributed tracing tools and standards became available. OpenTracing and OpenCensus
- At some point they came together and became OpenTelemetry CNCF is an incubating project, which, along with graduated, is considered stable and suitable for use in the market.
- OpenTelemetry is good because it replaced the previous two standards, which over time became deprecated and allowed to detach the instrumentation of telemetry from the backends to which it goes. This standard has a protocol and SDK for all popular programming languages.
- OpenTelemetry also has problems - it develops through committees, which slows down the process of revisions and extensions of the standard. OpenTelemetry has logs, metrics, tracks. Traces are a way to describe the interaction of services taking into account causal relationships. (This is done through connections between Spaniards.). Traces make it very convenient to deal with the behavior of a complex distributed system.
- Logs are designed for people and have a message template, they are useful for local debugging and checking the operation of traces.
- Metrics are aggregated time series of data. They are used to measure and analyze performance. Cheap to store and fast to process, but limited in context and dimension.
- OpenTelemetry allows you to think about connections between systems. Data dissemination involves the correlation and transmission of state information. The W3C tracing context specification defines headers and data for transmission.
- The author speaks in detail about the W3C Baggage, propagation format for distributed context. It allows you to transfer additional context between services, but there are problems, for example, the transfer of data through third-party APIs can lead to leakage of confidential information.
- It’s cool when OpenTelemetry is built into your application templates – it helps SRE teams get standardized observability data.
- OpenTelemetry has a collector that is used to proxify and process telemetry data. It allows you to centralize the configuration and send data to multiple vendors, as well as provide a central point for information security or data enrichment.
- In OpenTelemetry, you can configure sampling to reduce the cost of observation
- It's fun to sample not from the head, but from the tail, when we know what's hit the trays. A tail sampler can report slow processes and errors, but the trade-off here is that data latency and high memory costs.
- OpenTelemetry also has challenges – sending data across cross-haul availability zones can be expensive. Data sending decisions require compromises. OpenTelemetry requires constant attention and customization.
- OpenTelemetry Expects More Semantic Agreements and Libraries
#SRE #Architecture #DistributedSystems #Software