opentelemetry-examples
opentelemetry-specification
opentelemetry-examples | opentelemetry-specification | |
---|---|---|
6 | 101 | |
18 | 3,807 | |
- | 0.8% | |
2.9 | 9.3 | |
over 1 year ago | 3 days ago | |
JavaScript | Makefile | |
GNU General Public License v3.0 only | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
opentelemetry-examples
-
Guide to Distributed Tracing with OpenTelemetry Dotnet
You can view the complete code on GitHub here.
-
OpenTelemetry Collector as an Agent on Kubernetes – Part 2
You can find all gateway configurations in this gateway.yml file.
-
How to Instrument AWS Services with OpenTelemetry
In the example code for this blog, I also added an AWS api gateway so we can trigger the Lambda using a public URL. That is out of scope for this blog, but you can visit the source code and check it out.
-
How to Get Started with OpenTelemetry Go
We will start with creating a simple to-do app that uses Mongo and the Gin framework. Then, we will send tracing data to Jaeger Tracing and to Aspecto for visualization. You can find all the relevant files in this Github repository.
-
Guide to OpenTelemetry Distributed Tracing in Rust
Here is a link for the source code.
-
Get Started with OpenTelemetry Node: A Practical Guide for Devs
You can find the complete project in this GitHub repository. We created three versions for the tracing.js file (for Aspecto, Jaeger, and console) to make it easier to use.
opentelemetry-specification
-
Monitoring Your FastAPI Application with OpenTelemetry and OpenObserve
If you encounter issues with logs not being ingested or exported, double-check your configuration and consult the OpenTelemetry Discussions forum for help and insights from the community.
-
The Problem with OpenTelemetry
Well actually. They (python SDK maintainers) argue their implementation is the correct one according to the spec. See this issue thread for example.
https://github.com/open-telemetry/opentelemetry-specificatio...
There are more. This is a symptom of a how hard it is to dive into Otel due to its surface area being so big.
-
OpenTelemetry Journey #00 - Introduction to OpenTelemetry
It means that the OpenTelemetry project provides not only a specification to define the contract between the applications, collectors, and telemetry databases, but also a set of APIs, SDKs, and tools like instrumentation libraries (for different languages), collectors, operators, etc. OpenTelemetry is open-source and vendor-agnostic, so the project is not tied to any specific vendor or cloud provider.
-
Migrating to OpenTelemetry
Sure, happy to provide more specifics!
Our main issue was the lack of a synchronous gauge. The officially supported asynchronous API of registering a callback function to report a gauge metric is very different from how we were doing things before, and would have required lots of refactoring of our code. Instead, we wrote a wrapper that exposes a synchronous-like API: https://gist.github.com/yolken-airplane/027867b753840f7d15d6....
It seems like this is a common feature request across many of the SDKs, and it's in the process of being fixed in some of them (https://github.com/open-telemetry/opentelemetry-specificatio...)? I'm not sure what the plans are for the golang SDK specifically.
Another, more minor issue, is the lack of support for "constant" attributes that are applied to all metrics. We use these to identify the app, among other use cases, so we added wrappers around the various "Add", "Record", "Observe", etc. calls that automatically add these. (It's totally possible that this is supported and I missed it, in which case please let me know!).
Overall, the SDK was generally well-written and well-documented, we just needed some extra work to make the interfaces more similar to the ones were were using before.
-
OpenTelemetry Exporters - Types and Configuration Steps
OpenTelemetry is an open-source collection of tools, APIs, and SDKs that aims to standardize the way we generate and collect telemetry data. It follows a specification-driven development. The OpenTelemetry specification has design and implementation guidelines for how the instrumentation libraries should be implemented. In addition, it provides client libraries in all the major programming languages that follow the specification.
-
OpenTelemetry in 2023
Two problems with OpenTelemetry:
1. It doesn't know what the hell it is. Is it a semantic standard? Is a protocol? It is a facade? What layer of abstraction does it provide? Answer: All of the above! All the things! All the layers!
2. No one from OpenTelemetry has actually tried instrumenting a library. And if they have, they haven't the first suggestion on how instrumenters should actually use metrics, traces, and logs. Do you write to all three? To one? I asked this question two years ago, not a single response. [1]
[1] https://github.com/open-telemetry/opentelemetry-specificatio...
-
Tracetest Analyzer: Identify patterns and issues with code instrumentation
OpenTelemetry Specification GitHub
-
OpenTelemetry vs. OpenMetrics: Which semantic convention should you use?
One update to this: we proposed replacing the count suffix in OpenTelemetry with total to match Prometheus/OpenMetrics. That discussion resulted in the count suffix being removed from the OpenTelemetry semantic conventions. We'll soon update our metric from being called function.calls.count to just function.calls and the generated Prometheus queries will refer to function_calls_total. That resolves one of the main conflicts between the two specs.
-
OpenTelemetry Logs status?
This is your best bet if you want to track status updates: https://github.com/open-telemetry/opentelemetry-specification/issues/2911
-
Distributed Tracing with OpenTelemetry - Part I
OpenTelemetry is a standard for implementing telemetry in your applications. It provides a specification, containing the requirements that all implementations should follow as well as some implementations for major languages, including an API and a SDK to interact with it.
What are some alternatives?
opentelemetry-lambda - Create your own Lambda Layer in each OTel language using this starter code. Add the Lambda Layer to your Lambda Function to get tracing with OpenTelemetry.
Serilog - Simple .NET logging with fully-structured events
opentelemetry-ext-js - js extensions for the open-telemetry project
Sentry - Developer-first error tracking and performance monitoring
opentelemetry-dotnet - The OpenTelemetry .NET Client
zipkin - Zipkin is a distributed tracing system
actix-web - Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.
pino - 🌲 super fast, all natural json logger
opentelemetry-rust - The Rust OpenTelemetry implementation
sqs-consumer - Build Amazon Simple Queue Service (SQS) based applications without the boilerplate
otel-with-apache-pulsar - Example of application that produces and consumes events to/from Apache Pulsar. Traces from the transactions are captured using OpenTelemetry and sent to Elastic Observability.