TELEMETRY WITHOUT THE TOOL TAX Ben Greenberg @rabbigreenberg

Once upon a time… @rabbigreenberg

@rabbigreenberg

Web development was simpler @rabbigreenberg

What happened? �� @rabbigreenberg

Distributed Architecture @rabbigreenberg Containerization Kubernetes Five Nines

As complexity grows, so does the ecosystem to support it @rabbigreenberg

Maybe you have a similar story to my own? @rabbigreenberg

Hi, my name is Ben Software Developer @rabbigreenberg

I write code @rabbigreenberg

Sometimes, I even write tests @rabbigreenberg

Then one day, something happened… @rabbigreenberg

I discovered Observability was useful �� @rabbigreenberg

But, there’s a lot of tooling out there How do you choose? @rabbigreenberg

3/17 OpenTelemetry is a response to tooling overload and vendor lock-in @rabbigreenberg

Gain critical visibility into your app with one dependency �� @rabbigreenberg

HOW DID IT ALL GET STARTED? The origin story of OTel

The Telemetry Reality: Agents Divided instrumentation APIS SDKs @rabbigreenberg Protocols Collectors

The evolution of the project OpenTracing OpenCensus OpenTelemetry @rabbigreenberg

2015 A vendor neutral standard and set of APIs to trace across microservices @rabbigreenberg @rabbigreenberg

2017 @rabbigreenberg Collect metrics and traces and send to any backend of your choice

2019 @rabbigreenberg A unified point to integrate metrics and traces across all surfaces

2021 @rabbigreenberg v1.0.0 released of the specification

The OTel Perspective: United Instrumentation Metrics Logs Traces @rabbigreenberg

Open standards decrease complexity @rabbigreenberg

HOW DOES IT WORK?

This is your application Construct metric data without concern if it gets consumed by an OTel agent or not This is the OTel API layer The instrumentation layer by language Processor and exporter of the telemetry data https://newrelic.com/blog/best-practices/opentelemetry-concepts @rabbigreenberg

Breaking down the OTel Collector Receiver Accepts telemetry data Processor Exporter Pipeline to process Send the data to a the data backend of your choice (i.e. filter, sample and Formats the telemetry Popular library OTLP (OTel Protocol) Receiver enrich the data) data for the requirements of the chosen backend @rabbigreenberg

TRACES AND METRICS What’s the difference?

Traces 01 Trace is a single request in the system Capturing a Single Request 02 03 @rabbigreenberg Span is a single component of a trace Traces are trees of spans

Metrics 01 Metrics are aggregated measurements Capturing data over time 02 03 @rabbigreenberg Metric data captures a moment in time Metrics are less detailed than traces

Example of Trace API Implementation https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/exceptions.md @rabbigreenberg

Example of Metrics API Implementation https://opentelemetry.io/docs/instrumentation/java/manual/ @rabbigreenberg

WHAT TO DO WITH YOUR DATA What happens after you collect?

The new golden rule: Your data is yours @rabbigreenberg

Build Your Own Observability Backend @rabbigreenberg

Uniform specs make building your own backend possible �� @rabbigreenberg

Bring your data to the vendor of your choice @rabbigreenberg

Vendors that support OpenTelemetry @rabbigreenberg

WHY DOES THIS MATTER?

“Tool proliferation Aleksey Vorona InformationWeek remains of the challenging double-edged swords facing DevOps-minded @rabbigreenberg teams.”

“… the DevOps space is Nana Janashia Techworld with nana developing really fast and we see new technologies, new concepts emerging all the time, so many engineers feel pressure to learn new tools to use in their projects.” @rabbigreenberg

OPENTELEMETRY PROVIDES YOU WITH THE DATA YOU NEED…

Without The Tool Tax @rabbigreenberg

THANK YOU! @rabbigreenberg