Rust Dublin July 2021 - OpenTelemetry and Rust.
Channel: Rust Dublin
Date: 2021-07-31

Lily Mara introduces the OpenTelemetry and tracing crates ecosystem and demonstrates a debugging scenario, adding traces and spans during a live coding session with Jaeger.

00:00:00 Intro
00:00:45 What is OpenTelemetry?
00:01:47 What is tracing?
00:08:14 How do we distribute tracing information?
00:12:06 Q: Can sampling rate be modified ad hoc?
00:14:46 Q: Any flags besides 00 and 01?
00:15:20 Q: How do the trace-id and parent-id relate to individual spans?
00:17:51 Q: Would this always be serialized in an HTTP header?
00:18:49 Story time
00:25:45 Adding tracing
00:26:29 Tracing crates
00:26:57 Wrapping the tracing into Actix-web
00:28:01 Jaeger
00:28:55 Setting up sampling
00:31:31 Using Jaeger
00:33:40 Tying things together into one logical span
00:34:44 Q: How did you connect the web app up to Jaeger?
00:36:18 Telling OpenTelemetry how to propagate events between client and server
00:38:35 Adding each microservice's name to the trace
00:43:54 Adding log-like tracing
00:45:55 Adding a tracing span around a function with #[tracing::instrument]
00:47:54 Integrating tracing and opentelemetry
00:52:54 Network errors
00:57:05 The tracing and opentelemetry crate ecosystem
00:59:47 Q: is there anything in the span level to decide whether to sample?
01:01:56 Q: how much more of the tracing/opentelemetry ecosystem is there?
01:08:03 Q: is it good practice to open a span for every function?
01:10:10 Q: does it also handle data cleanup?