|
| 1 | +--- |
| 2 | +title: OpenTelemetry announces support for profiling |
| 3 | +linkTitle: OpenTelemetry announces support for profiling |
| 4 | +date: 2024-03-19 |
| 5 | +author: '[Austin Parker](https://github.com/austinlparker) (Honeycomb)' |
| 6 | +--- |
| 7 | + |
| 8 | +In 2023, OpenTelemetry announced that it achieved stability for |
| 9 | +[logs, metrics, and traces](https://www.cncf.io/blog/2023/11/07/opentelemetry-at-kubecon-cloudnativecon-north-america-2023-update/). |
| 10 | +While this was our initial goal at the formation of the project, fulfilling our |
| 11 | +vision of enabling built-in observability for cloud native applications requires |
| 12 | +us to continue evolving with the community. This year, we’re proud to announce |
| 13 | +that exactly two years after the Profiling SIG was created at KubeCon + |
| 14 | +CloudNativeCon Europe 2022 in Valencia, we’re taking a big step towards this |
| 15 | +goal by merging a profiling data model into our specification and working |
| 16 | +towards a stable implementation this year! |
| 17 | + |
| 18 | +## What is profiling? |
| 19 | + |
| 20 | +Profiling is a method to dynamically inspect the behavior and performance of |
| 21 | +application code at run-time. Continuous profiling gives insights into resource |
| 22 | +utilization at a code-level and allows for this profiling data to be stored, |
| 23 | +queried, and analyzed over time and across different attributes. It’s an |
| 24 | +important technique for developers and performance engineers to understand |
| 25 | +exactly what’s happening in their code. OpenTelemetry’s |
| 26 | +[profiling signal](https://github.com/open-telemetry/oteps/blob/main/text/profiles/0239-profiles-data-model.md) |
| 27 | +expands upon the work that has been done in this space and, as a first for the |
| 28 | +industry, connects profiles with other telemetry signals from applications and |
| 29 | +infrastructure. This allows developers and operators to correlate resource |
| 30 | +exhaustion or poor user experience across their services with not just the |
| 31 | +specific service or pod being impacted, but the function or line of code most |
| 32 | +responsible for it. |
| 33 | + |
| 34 | +We’re thrilled to see the embrace of this vision by the industry, with many |
| 35 | +organizations coming together to help define the profiling signal. More |
| 36 | +specifically, the following two donations are in play: |
| 37 | + |
| 38 | +- Elastic has |
| 39 | + [pledged to donate](https://github.com/open-telemetry/community/issues/1918) |
| 40 | + their proprietary eBPF-based profiling agent <sup>1</sup> |
| 41 | +- Splunk has begun the process of |
| 42 | + [donating their .NET based profiler](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/pull/3196) |
| 43 | + |
| 44 | +These are being donated to the project in order to accelerate the delivery and |
| 45 | +implementation of OpenTelemetry profiling. |
| 46 | + |
| 47 | +## What does this mean for users? |
| 48 | + |
| 49 | +Profiles will support bi-directional links between themselves and other signals, |
| 50 | +such as logs, metrics, and traces. You’ll be able to easily jump from resource |
| 51 | +telemetry to a corresponding profile. For example: |
| 52 | + |
| 53 | +- Metrics to profiles: You will be able to go from a spike in CPU usage or |
| 54 | + memory usage to the specific pieces of the code which are consuming that |
| 55 | + resource |
| 56 | +- Traces to profiles: You will be able to understand not just the location of |
| 57 | + latency across your services, but when that latency is caused by pieces of the |
| 58 | + code it will be reflected in a profile attached to a trace or span |
| 59 | +- Logs to profiles: Logs often give the context that something is wrong, but |
| 60 | + profiling will allow you to go from just tracking something (i.e. Out Of |
| 61 | + Memory errors) to seeing exactly which parts of the code are using up memory |
| 62 | + resources |
| 63 | + |
| 64 | +These are just a few and these links work the opposite direction as well, but |
| 65 | +more generally profiling helps deliver on the promise of observability by making |
| 66 | +it easier for users to query and understand an entire new dimension about their |
| 67 | +applications with minimal additional code/effort. |
| 68 | + |
| 69 | +A community in motion |
| 70 | + |
| 71 | +This work would not be possible without the dedicated contributors who work on |
| 72 | +OpenTelemetry each day. We’ve recently passed a new milestone, with over 1000 |
| 73 | +unique developers contributing to the project each month, representing over 180 |
| 74 | +companies. Across our most popular repositories, OpenTelemetry sees over 30 |
| 75 | +million downloads a month<sup>2</sup>, and new open source projects are adopting |
| 76 | +our standards at a regular pace, including |
| 77 | +[Apache Kafka](https://cwiki.apache.org/confluence/display/KAFKA/KIP-714%3A+Client+metrics+and+observability), |
| 78 | +and [dozens more](https://opentelemetry.io/ecosystem/integrations/). We’re also |
| 79 | +deepening our integrations with other open source projects in CNCF and out, such |
| 80 | +as [OpenFeature](https://openfeature.dev) and |
| 81 | +[OpenSearch](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/23611), |
| 82 | +in addition to our existing integrations with Kubernetes, Thanos, Knative, and |
| 83 | +many more. |
| 84 | + |
| 85 | +2024 promises to be another big year for OpenTelemetry as we continue to |
| 86 | +implement and stabilize our existing tracing, metrics, and log signals while |
| 87 | +adding support for profiling, client-side RUM, and more. It’s a great time to |
| 88 | +get involved – check out our [website](https://opentelemetry.io) to learn more! |
| 89 | + |
| 90 | +<sup>1</sup> Pending due diligence and review by the OpenTelemetry maintainers. |
| 91 | +<sup>2</sup> According to public download statistics of our .NET, Java, and |
| 92 | +Python APIs |
0 commit comments