OpenTelemetry 101 FTW
Steve Flanders
Steve Flanders
Sr. Director of Engineering,
Splunk
@smflanders
Founding Member of
OpenTelmetry
Founding Member of OpenCensus
OpenTelemetry Collector Triager
OpenTelemetry Website Maintainer
10+ years of monitoring and
observability experience
○ OpenTelemetry + Metrics @Splunk
○ OpenCensus + APM @Omnition
○ Logs @VMware
What is OpenTelemetry?
OpenTelemetry is a collection of tools, APIs, and SDKs.
Use it to instrument, generate, collect, and export
telemetry data (metrics, logs, and traces) to help you
analyze your software’s performance and behavior.
https://opentelemetry.io/
4
is the second most active
project in CNCF today!
🎉 🎉
(per CNCF DevStats)
Everyone is Contributing and Adopting
https://github.com/open-telemetry/community/blob/master/ADOPTERS.md
https://medium.com/jaegertracing/jaeger-embraces-opentelemetry-collector-90a545cbc24
AWS | Azure | GCP Every major vendor!
Mailchimp (PHP)
Postmates (Erlang)
Shopify (Ruby)
Cloud Providers Vendors End-users Other
Jaeger > OtelCol
Fluent-bit <3 log SIG
Envoy support
OpenMetrics support
Spring support
COLLECTOR
Single binary to receive,
process, and export data
SPECIFICATION
API, SDK, Data
OpenTelemetry Components
INSTRUMENTATION
LIBRARIES
Single library per language
Specification + Data Portability
https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/README.md
https://github.com/open-telemetry/opentelemetry-specification/tree/master/specification/resource/semantic_conventions
Semantic conventions normalize data.
HTTP: http.method, http.status_code
Database: db.instance, db.statement
Messaging: messaging.system
FaaS: faas.trigger
Application
Database
Otel Library
Specification + Data Portability
https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/README.md
https://github.com/open-telemetry/opentelemetry-specification/tree/master/specification/resource/semantic_conventions
Semantic conventions normalize data.
HTTP: http.method, http.status_code
Database: db.instance, db.statement
Messaging: messaging.system
FaaS: faas.trigger
Resources capture environment metadata.
Application: Service, Telemetry
Compute Unit: Container, FaaS, Process
Compute Instance: Host
Environment: OS, Cloud, Deployment
Application
Database
Otel Library
Specification + Data Portability
https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/README.md
https://github.com/open-telemetry/opentelemetry-specification/tree/master/specification/resource/semantic_conventions
Instrumentation Libraries
● Single instrumentation library per language
● All support manual instrumentation; some automatic
● Priority 1) traces 2) metrics 3) logs 4) profiling
Application
RUM
Serverless
● Receivers: how you get data in
(can be push or pull-based)
● Processors: what you to do the data
(e.g. batching, metadata, etc.)
● Exporters: how you get data out
(can be push or pull-based)
● Extensions: things you do in the
collector typically outside processing
data (e.g. health check)
Collector (Binary, Agent, Service)
Reference architecture
Project Status
API: Stable
SDK: Stable
Protocol: Stable
API: Stable
SDK: Mixed
Protocol: Stable
API: Draft
SDK: Draft
Protocol: Stable
Traces Metrics Logs
14
Resources
● https://opentelemetry.io (vendor-agnostic instrumentation and collection) [CNCF]
that supports all of the below open-source projects and more
● https://github.com/elastic/elasticsearch (logs) + https://github.com/elastic/kibana (UI)
● https://opendistro.github.io/ (logs) + https://opensearch.org/ (UI)
● https://jaegertracing.io/ (distributed tracing / APM) [CNCF]
● https://prometheus.io/ (metrics and alerting) [CNCF] + https://github.com/grafana/grafana
(UI)
● https://cortexmetrics.io/ [CNCF] or https://thanos.io/ [CNCF] (enterprise Prometheus)
● https://openmetrics.io/ (metrics standard) [CNCF]
DEMO!
https://github.com/open-telemetry/opentelemetry-demo-webstore
Thank You!

OpenTelemetry 101 FTW

  • 1.
  • 2.
    Steve Flanders Sr. Directorof Engineering, Splunk @smflanders Founding Member of OpenTelmetry Founding Member of OpenCensus OpenTelemetry Collector Triager OpenTelemetry Website Maintainer 10+ years of monitoring and observability experience ○ OpenTelemetry + Metrics @Splunk ○ OpenCensus + APM @Omnition ○ Logs @VMware
  • 3.
    What is OpenTelemetry? OpenTelemetryis a collection of tools, APIs, and SDKs. Use it to instrument, generate, collect, and export telemetry data (metrics, logs, and traces) to help you analyze your software’s performance and behavior. https://opentelemetry.io/
  • 4.
    4 is the secondmost active project in CNCF today! 🎉 🎉 (per CNCF DevStats)
  • 5.
    Everyone is Contributingand Adopting https://github.com/open-telemetry/community/blob/master/ADOPTERS.md https://medium.com/jaegertracing/jaeger-embraces-opentelemetry-collector-90a545cbc24 AWS | Azure | GCP Every major vendor! Mailchimp (PHP) Postmates (Erlang) Shopify (Ruby) Cloud Providers Vendors End-users Other Jaeger > OtelCol Fluent-bit <3 log SIG Envoy support OpenMetrics support Spring support
  • 6.
    COLLECTOR Single binary toreceive, process, and export data SPECIFICATION API, SDK, Data OpenTelemetry Components INSTRUMENTATION LIBRARIES Single library per language
  • 7.
    Specification + DataPortability https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/README.md https://github.com/open-telemetry/opentelemetry-specification/tree/master/specification/resource/semantic_conventions
  • 8.
    Semantic conventions normalizedata. HTTP: http.method, http.status_code Database: db.instance, db.statement Messaging: messaging.system FaaS: faas.trigger Application Database Otel Library Specification + Data Portability https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/README.md https://github.com/open-telemetry/opentelemetry-specification/tree/master/specification/resource/semantic_conventions
  • 9.
    Semantic conventions normalizedata. HTTP: http.method, http.status_code Database: db.instance, db.statement Messaging: messaging.system FaaS: faas.trigger Resources capture environment metadata. Application: Service, Telemetry Compute Unit: Container, FaaS, Process Compute Instance: Host Environment: OS, Cloud, Deployment Application Database Otel Library Specification + Data Portability https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/README.md https://github.com/open-telemetry/opentelemetry-specification/tree/master/specification/resource/semantic_conventions
  • 10.
    Instrumentation Libraries ● Singleinstrumentation library per language ● All support manual instrumentation; some automatic ● Priority 1) traces 2) metrics 3) logs 4) profiling Application RUM Serverless
  • 11.
    ● Receivers: howyou get data in (can be push or pull-based) ● Processors: what you to do the data (e.g. batching, metadata, etc.) ● Exporters: how you get data out (can be push or pull-based) ● Extensions: things you do in the collector typically outside processing data (e.g. health check) Collector (Binary, Agent, Service)
  • 12.
  • 13.
    Project Status API: Stable SDK:Stable Protocol: Stable API: Stable SDK: Mixed Protocol: Stable API: Draft SDK: Draft Protocol: Stable Traces Metrics Logs
  • 14.
    14 Resources ● https://opentelemetry.io (vendor-agnosticinstrumentation and collection) [CNCF] that supports all of the below open-source projects and more ● https://github.com/elastic/elasticsearch (logs) + https://github.com/elastic/kibana (UI) ● https://opendistro.github.io/ (logs) + https://opensearch.org/ (UI) ● https://jaegertracing.io/ (distributed tracing / APM) [CNCF] ● https://prometheus.io/ (metrics and alerting) [CNCF] + https://github.com/grafana/grafana (UI) ● https://cortexmetrics.io/ [CNCF] or https://thanos.io/ [CNCF] (enterprise Prometheus) ● https://openmetrics.io/ (metrics standard) [CNCF]
  • 15.
  • 16.