Observability For You and Me with OpenTelemetry

eschabell 157 views 31 slides Jul 04, 2024
Slide 1
Slide 1 of 31
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31

About This Presentation

Are you interested in dipping your toes in the cloud native observability waters, but as an engineer you are not sure where to get started with tracing problems through your microservices and application landscapes on Kubernetes? Then this is the session for you, where we take you on your first step...


Slide Content

Observability For
You and Me with
OpenTelemetry
Eric D. Schabell
Director Evangelism
@ericschabell{@fosstodon.org}
4 Jul 2024
Tech Meetup Glasgow

chronosphere.io
Cloud Native O11y (at scale)
Nuts & Bolts of OpenTelemetry
Getting Your Feet Wet

chronosphere.io
Cloud Native Observability at Scale

chronosphere.io
Cloud Native

chronosphere.io
Data volume
Experiment:
-Hello World app on 4 node
Kubernetes cluster with Tracing,
End User Metrics (EUM), Logs,
Metrics (containers / nodes)
-30 days == +450 GB

chronosphere.io
Retention
Retention
Retention
Retention
Retention
Retention
Retention

chronosphere.io
Cloud Native at Scale

chronosphere.io
Simple O11y

chronosphere.io
O11y at Scale (over time…)

chronosphere.io
“It’s remarkable how common this
situation is, where an organization
is paying more for their
observability data, than they do
for their production
infrastructure.”
?

chronosphere.io
O11y at Scale (need)

chronosphere.io
Telemetry is automatically collecting, transmitting
and measuring data from remote sources. It
transmits data back to a central location and
analyzes to monitor and control remote systems.

chronosphere.io
Nuts & Bolts of
OpenTelemetry

chronosphere.io
OpenTelemetry is not an
observability back-end.

chronosphere.io
https://opentelemetry.io

chronosphere.io
Traces give us the big picture and understanding
the full path a request takes in your application.
Spans represents a unit of work or operation and
are building blocks of traces.
Metrics are measurements of a service
captured at runtime.
Logs are a timestamped text record,
either structured (recommended) or
unstructured, with metadata.

chronosphere.io
●API - generating & correlating tracing data
●SDK - language specific impl
●Data - OpenTelemetry Protocol (OTLP)
Specification

chronosphere.io
Applications (Java)
OTel Auto Instrumentation (libraries)
OTel API
OTel SDK
OTel Collector
OTLP OTLP OTLP
(Auto) instrumentation

chronosphere.io
Host Observability Backend
(Prometheus, Jaeger, Fluent Bit, etc.),
Applications
OTel Auto Instrumentation
OTel API
OTel SDK
OTel Collector Agent
OTLP
OTLP
OTLP OTLP OTLP
Collector (agent)

chronosphere.io
Host
Host
Host
Observability Backend
(Prometheus, Jaeger, Fluent Bit, etc.),
Applications
OTel Auto Instrumentation
OTel API
OTel SDK
OTel Collector Agent
OTLP
OTLP OTLP OTLP
Collector (gateway)
OTel Collector Gateway

chronosphere.io
Observability Backend
(Prometheus, Jaeger, Fluent Bit, etc.),
OTel Collector
OTLP
Telemetry
(Spans)
Collector (internals)
ReceiverProcessorExporter

chronosphere.io
Spans and Traces

chronosphere.io
Metrics in OTel
●Counter - value accumulates over time
●Asynchronous Counter - Same as the Counter, but is
collected once for each export (aggregated value)
●UpDownCounter: example could be a queue length
●Asynchronous UpDownCounter - Same as the
UpDownCounter, but is collected once for each export
●Gauge: Measures a current value at the time it is read
●Histogram: A client-side aggregation of values, such as request
latencies (buckets)

chronosphere.io
OpenTelemetry’s approach with logs is different. Because existing logging
solutions are widespread in language and operational ecosystems,
OpenTelemetry acts as a “bridge” between those logs, the tracing and
metrics signals, and other OpenTelemetry components.

chronosphere.io
Kubernetes Operator
Collector
Auto-instrumentation
Collector
Auto-instrumentation
Collector
Auto-instrumentation
Collector
Auto-instrumentation

chronosphere.io
Getting Your Feet Wet

chronosphere.io
CNCF - cloud-native.slack.com

chronosphere.io
CNCF - End User Community

chronosphere.io
Workshop (aka Demo)
Demo application is a Flask web application
written in Python:
●http://localhost:8001/ - page load count
●http://localhost:8001/doggo - photo from the Dog API
●http://localhost:8001/rolldice - simulated dice roll
●http://localhost:16686 - Jaeger UI

Workshop?
Short link: bit.ly/opentelemetry-workshop

Questions?
Eric D. Schabell
Director Evangelism
@ericschabell{@fosstodon.org}