Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Why does continuous profiling matter to develop...

Avatar for Salaboy Salaboy
November 12, 2024

Why does continuous profiling matter to developers? #appdevelopercon

for more information visit: https://salaboy.com

Avatar for Salaboy

Salaboy

November 12, 2024
Tweet

More Decks by Salaboy

Other Decks in Technology

Transcript

  1. Why does continuous profiling matter to developers? KubeCon NA Salt

    Lake City 2024 Co-located event: AppDeveloperCon
  2. Who are we? Jonas Kunz Observability SW Engineer @ Elastic

    OpenTelemetry-Java Contributor Jonas Kunz @ CNCF-Slack Mauricio Salatino @Diagrid @Daprdev Application Development WG co-chair https://salaboy.com
  3. Agenda - Building Cloud Native Resilient and Observable applications -

    Pillars of Observability - (Continuous) Profiling - Next steps
  4. Dapr: enabling developers with APIs - Stands for Distributed application

    Runtime - Uses a proxy to expose application-level APIs to solve common distributed challenges - We used two APIs for this examples: - Service to Service invocation - PubSub for async communications - All APIs cover cross-functional concerns such as resiliency, observability and security
  5. Profiling - Measuring where and how an application spends it’s

    time without having to modify/instrument it - “Time” can be many things - CPU-Time, Wall-Clock, IO-time, … - Profiling sees the world from OS-perspective (Threads, processes, OS-resources) App Process Profiler E.g. Linux Perf, Java Flight Recorder In-Process Profiling App Process OS-Kernel eBPF-Profiler eBPF Profiling E.g. opentelemetry-ebpf-profiler
  6. Continuous-Profiling in Production Whole-System Visibility Unlock unknown-unknowns - from the

    kernel through userspace into high-level code, across multi-cloud workloads. Polyglot Visibility C/C++, Rust & Go (without debug symbols on host) PHP, Python, Java (or any JVM language), Ruby, DotNet, Perl & NodeJS. Extremely Low Overhead Continuous profiling in production with negligible overhead. Typical case: < 1% CPU, ~250MB of RAM - Optimyze.cloud launches low-overhead multi-runtime zero-instrumentation profiler in 2021 - Acquired by Elastic soon after - Donated to OpenTelemetry in 2024 - Continued development and evolution opentelemetry-ebpf-profiler
  7. What’s ahead - Stabilization of the profiling signal (OTLP) -

    Stabilization of profiling support in the OTEL-collector - Standardization of trace - profiling correlation - More than CPU-profiling (e.g. IO, page-faults,etc) … and much more!