Breaking Free with Open Standards: OpenTelemetry and Perses for Observability

A presentation at Dutch Cloud Native & AI Community - December 2025 in December 2025 in Amsterdam, Netherlands by Kasper Borg Nissen

Slide 1

Slide 1

Dutch Cloud Native & AI Community - December 2025 Breaking Free with Open Standards: OpenTelemetry and Perses for Observability Kasper Borg Nissen, Principal Developer Advocate at @phennex kaspernissen.xyz

Slide 2

Slide 2

Who? Principal Developer Advocate at Dash0 KubeCon+CloudNativeCon EU/NA 24/25 Co-Chair (former) CNCF Ambassador Golden Kubestronaut CNCG Aarhus, KCD Denmark Organizer Co-founder & Community Lead Cloud Native Nordics

Slide 3

Slide 3

tl;dr ● OpenTelemetry is standardizing telemetry collection. ● Perses is standardizing dashboarding. ● Applying Platform Engineering principles transforms observability into a seamless, scalable, and developer-friendly experience. ● Building on Open Standards allows you to freely move between vendors, ensuring they stay on their toes and provide you the best possible experience. @phennex kaspernissen.xyz

Slide 4

Slide 4

Today… @phennex kaspernissen.xyz

Slide 5

Slide 5

@phennex kaspernissen.xyz

Slide 6

Slide 6

This fragmentation, leads to @phennex kaspernissen.xyz Image by pngtree.com

Slide 7

Slide 7

This fragmentation, leads to Complex Query Languages @phennex kaspernissen.xyz Image by pngtree.com

Slide 8

Slide 8

This fragmentation, leads to Complex Query Languages @phennex kaspernissen.xyz Vendor lock-in Image by pngtree.com

Slide 9

Slide 9

This fragmentation, leads to Complex Query Languages @phennex kaspernissen.xyz Vendor lock-in Metadata Inconsistency Image by pngtree.com

Slide 10

Slide 10

This fragmentation, leads to Complex Query Languages Vendor lock-in Metadata Inconsistency No instrumentation due to high complexity @phennex kaspernissen.xyz Image by pngtree.com

Slide 11

Slide 11

This fragmentation, leads to Complex Query Languages Vendor lock-in No instrumentation due to high complexity @phennex kaspernissen.xyz Metadata Inconsistency Lack of unified insights Image by pngtree.com

Slide 12

Slide 12

A shift is happening. @phennex kaspernissen.xyz

Slide 13

Slide 13

A shift toward correlation Find related information @phennex kaspernissen.xyz Jump between signals Reconstruct chain of events

Slide 14

Slide 14

A shift toward… @phennex kaspernissen.xyz

Slide 15

Slide 15

OpenTelemetry OpenTelemetry OTel is an open source project designed to provide standardized tools and APIs for generating, collecting, and exporting telemetry data such as traces, metrics, and logs The de-facto standard for distributed tracing, also supports metrics and logs (soon profiling) The main goals of the project are: ● ● ● Unified telemetry Vendor-neutrality Cross-platform @phennex kaspernissen.xyz

Slide 16

Slide 16

OpenTelemetry in a nutshell 2nd largest CNCF project by contributor count ✅ What it is @phennex kaspernissen.xyz A set of various things focused on letting you collect telemetry about systems: ● ● ● ● ● ● Data models API specifications Semantic conventions Library implementations in many languages Utilities and much more

Slide 17

Slide 17

OpenTelemetry in a nutshell ⛔ What it is NOT @phennex kaspernissen.xyz ● ● ● ● ● ● Proprietary An all-in-one observability tool A data storage or dashboarding solution A query language A Performance Optimizer Feature complete

Slide 18

Slide 18

1/1/20241/1/2025 Commits: 27.168 PRs+Issues: 58.508 Source: CNCF Velocity Commits: 44.486 PRs+Issues: 56.299

Slide 19

Slide 19

Signals METRICS 42 LOGS 20/JUN/2025 “GET / HTTP/1.1ˮ 200 20/JUN/2025 “GET / HTTP/1.1ˮ 200 20/JUN/2025 “GET / HTTP/1.1ˮ 200 20/JUN/2025 “GET / HTTP/1.1ˮ 200 20/JUN/2025 “GET / HTTP/1.1ˮ 200 20/JUN/2025 “GET / HTTP/1.1ˮ 200 20/JUN/2025 “GET / HTTP/1.1ˮ 200 20/JUN/2025 “GET / HTTP/1.1ˮ 200 20/JUN/2025 “GET / HTTP/1.1ˮ 200 20/JUN/2025 “GET / HTTP/1.1ˮ 200 @phennex kaspernissen.xyz TRACES PROFILES RUM

Slide 20

Slide 20

So letʼs stop talking about pillars … Kill The Three Pillars Manifesto Metrics @phennex kaspernissen.xyz Logs Traces

Slide 21

Slide 21

So letʼs stop talking about pillars … We donʼt have a metrics problem, or a tracing problem. We have systems problems. Metrics @phennex kaspernissen.xyz Logs Traces

Slide 22

Slide 22

Correlation is the superpower METRICS 42 LOGS 20/JUN/2025 “GET / HTTP/1.1ˮ 200 20/JUN/2025 “GET / HTTP/1.1ˮ 200 20/JUN/2025 “GET / HTTP/1.1ˮ 200 20/JUN/2025 “GET / HTTP/1.1ˮ 200 20/JUN/2025 “GET / HTTP/1.1ˮ 200 20/JUN/2025 “GET / HTTP/1.1ˮ 200 20/JUN/2025 “GET / HTTP/1.1ˮ 200 20/JUN/2025 “GET / HTTP/1.1ˮ 200 20/JUN/2025 “GET / HTTP/1.1ˮ 200 20/JUN/2025 “GET / HTTP/1.1ˮ 200 @phennex kaspernissen.xyz TRACES PROFILES RUM

Slide 23

Slide 23

OpenTelemetry: A 1000 miles view Instrumentation OTel API & SDK Telemetry Backends The OpenTelemetry Collector auto-instrumentation Time-series database … Log database Receive Process Analysis Tools Export Trace database Infrastructure … Kubernetes … Generate and Emit @phennex transmit kaspernissen.xyz Collect, Convert, Process, Route, Export transmit Inspired by visualizations from LFS148 Store & Analyze

Slide 24

Slide 24

OpenTelemetry: A 1000 miles view OTel API & SDK auto-instrumentation Vendor space Collection of Telemetry is The OpenTelemetry Collector standardized … Receive Process Export Infrastructure Kubernetes … “The last observability agent you will ever installˮ … and many more. Generate and Emit @phennex transmit kaspernissen.xyz Collect, Convert, Process, Route, Export transmit Store & Analyze

Slide 25

Slide 25

Telemetry without context is just data @phennex kaspernissen.xyz

Slide 26

Slide 26

What are we looking at? @phennex kaspernissen.xyz

Slide 27

Slide 27

What are we looking at? Awww… Adorable! Cute Cuteness Pretty Normal Unfortunate Creepy Reddit /r/funny, “Cuteness Vs Number of legsˮ (circa 2010 @phennex Gaah! Kill it! Kill it! kaspernissen.xyz 0 1 2 3 4 5 Number of Legs 6 7 8

Slide 28

Slide 28

How we talk about system context Organization By whom) 1 Architecture What / Why) Which service / system component is this? 2 Compute How/2 3 Platform How Kubernetes? Which cluster / namespace / deployment / cronjob / job / pod? AWS ECS? Which cluster / service / task? … 4 kaspernissen.xyz Which container? Which process? Pid? Startup args? Which runtime is it? Node.js? JVM? .NET? Which build? Which version? … Infrastructure Where 5 @phennex Which team owns it? “Who you gonna call?ˮ .. Which datacenter / Cloud region / availability zone / account does it run in? …

Slide 29

Slide 29

How to set resource attributes? ● ● ● Resource detectors & manual “hard-codingˮ. OTEL_RESOURCE_ATTRIBUTES env var Added to telemetry “in transitˮ using the OpenTelemetry Collector. import import import import { { { { NodeSDK } from ‘@opentelemetry/sdk-node’; ConsoleSpanExporter } from ‘@opentelemetry/sdk-trace-node’; envDetector, processDetector, Resource} from ‘@opentelemetry/resources’; awsEcsDetector } from ‘@opentelemetry/resource-detector-aws’; const sdk = new NodeSDK({ traceExporter: new ConsoleSpanExporter(), // Skip metric exporter, auto-instrumentations and more. See // https://opentelemetry.io/docs/languages/js/getting-started/nodejs/ instrumentations: [getNodeAutoInstrumentations()], // Specify which resource detectors to use resourceDetectors: [envDetector, processDetector, awsEcsDetector], // Hard-coded resource resources: [new Resource({ team: ‘awesome’, })], }); sdk.start(); Sample initialization of the OpenTelemetry JS Distro in a Node.js application

Slide 30

Slide 30

without context semantic conventions is just data @phennex kaspernissen.xyz

Slide 31

Slide 31

Semantic Conventions Semantic Conventions define a common set of (semantic) attributes which provide meaning to data when collecting, producing and consuming it. https://github.com/open-telemetry/semantic-conventions Semantic Conventions by signals: ● ● ● ● ● Events: Semantic Conventions for event data. Logs: Semantic Conventions for logs data. Metrics: Semantic Conventions for metrics. Resource: Semantic Conventions for resources. Trace: Semantic Conventions for traces and spans. @phennex kaspernissen.xyz

Slide 32

Slide 32

OpenTelemetry semantic conventions to context layers 1 Organization 😢 Architecture Service (stable) and (experimental) Deployment Environment 2 Compute 3 Platform Kubernetes Cloud (cloud.platform specifically) Cloud-provider specific @phennex 4 kaspernissen.xyz COM NOT PRE A HE LIST NSIVE ! Telemetry SDK (stable) and (experimental) Compute Unit and Instance Operating System Process & Process Runtimes Device, Browser, Webengine, … … 5 Infrastructure Cloud (general stuff)

Slide 33

Slide 33

So, why OpenTelemetry? Instrument once, use everywhere @phennex Separate telemetry generation from analysis kaspernissen.xyz Make software observable by default Improve how we use telemetry

Slide 34

Slide 34

Thatʼs all great, but how do I make it easily accessible for my developers? @phennex kaspernissen.xyz

Slide 35

Slide 35

The dual role of Platform Engineers in Observability @phennex kaspernissen.xyz

Slide 36

Slide 36

Observe the platform Enable developers (cloud, cluster, CI/CD, shared DBs, etc.) (traces, metrics, logs, profiling) @phennex kaspernissen.xyz

Slide 37

Slide 37

@phennex kaspernissen.xyz

Slide 38

Slide 38

What types of Telemetry do I need? Prevalent telemetry types End-user devices and IoT — — —— —- — — — —— — ——- — — Runtimes, applications and services — — —— —- — — — —— — ——- — — Cloud, FaaS, Container orchestration — — —— —- — — — —— — ——- — — Operating system — — —— —- — — — —— — ——- — — Virtualisation Bare metal Based on: “What is observability?ˮ by ubuntu.com Infrastructure context — — —— —- — — — —— — ——- — — — — —— —- — — — —— — ——- — — Application context

Slide 39

Slide 39

Platform Engineering for Observability Self-Service Experience Explicit and Consistent APIs Golden Paths Modularity Platform as a Product Core Requirements @phennex kaspernissen.xyz

Slide 40

Slide 40

Platform Engineering for Observability Self-Service Experience Auto-Instrumentation Explicit and Consistent APIs Semantic Conventions Golden Paths Observability built-in Modularity Collector Pipelines Platform as a Product Documentation + Support Core Requirements Cross-signal correlation @phennex kaspernissen.xyz

Slide 41

Slide 41

Thatʼs all great, but I ask again, how do I make it easily accessible for my developers? @phennex kaspernissen.xyz

Slide 42

Slide 42

The answer: Auto-instrumentation + Operators = No-touch Instrumentation @phennex kaspernissen.xyz

Slide 43

Slide 43

OpenTelemetry Operator Instrumentation OpenTelemetryCollector OpAMPBridge OpenTelemetry Operator @phennex kaspernissen.xyz TargetAllocator

Slide 44

Slide 44

Auto-Instrumentation with the OpenTelemetry Operator Instrumentation Instructs how to inject auto-instrumentation Injects instrumentation in to the pod OpenTelemetry Operator @phennex kaspernissen.xyz

Slide 45

Slide 45

Observability doesnʼt stop at instrumentation. @phennex kaspernissen.xyz

Slide 46

Slide 46

Perses An open specification for dashboards. CNCF Sandbox project @phennex kaspernissen.xyz

Slide 47

Slide 47

Dashboards as Code Perses PersesDatasource perses-operator @phennex kaspernissen.xyz PersesDashboard

Slide 48

Slide 48

Demo @phennex kaspernissen.xyz

Slide 49

Slide 49

@phennex kaspernissen.xyz

Slide 50

Slide 50

@phennex kaspernissen.xyz

Slide 51

Slide 51

@phennex kaspernissen.xyz

Slide 52

Slide 52

@phennex kaspernissen.xyz

Slide 53

Slide 53

@phennex kaspernissen.xyz

Slide 54

Slide 54

@phennex kaspernissen.xyz

Slide 55

Slide 55

Deployment @phennex kaspernissen.xyz DaemonSet

Slide 56

Slide 56

Putting it all together… @phennex kaspernissen.xyz

Slide 57

Slide 57

Golden defaults for developers @phennex kaspernissen.xyz

Slide 58

Slide 58

Observability is evolving - fast. @phennex kaspernissen.xyz

Slide 59

Slide 59

OpenTelemetry is standardizing telemetry collection. @phennex kaspernissen.xyz

Slide 60

Slide 60

Perses is standardizing dashboarding. @phennex kaspernissen.xyz

Slide 61

Slide 61

Applying Platform Engineering principles can transform observability from an afterthought into a seamless, scalable, and developer-friendly experience. @phennex kaspernissen.xyz

Slide 62

Slide 62

Observability is a systems problem - not a tracing, logging, or metrics problem. @phennex kaspernissen.xyz

Slide 63

Slide 63

When we connect signals together, we empower developers to solve problems faster. @phennex kaspernissen.xyz

Slide 64

Slide 64

And last but not least, Building on Open Standards allows you to freely move between vendors, ensuring they stay on their toes and provide you the best possible experience. @phennex kaspernissen.xyz

Slide 65

Slide 65

https://university.platformengineering.org/observability-for-platform-engineering

Slide 66

Slide 66

https://platformengineering.org/reports/observability-for-platform-engineers

Slide 67

Slide 67

New book Get a free copy

Slide 68

Slide 68

Remember to join the raffle… Win a Dash0 backpack

Slide 69

Slide 69

Thank you! Get in touch! Kasper Borg Nissen, Principal Developer Advocate at Demo can be found here! https://github.com/dash0hq/otel-platform-demo @phennex kaspernissen.xyz