OpenTelemetry

OpenTelemetry

132 bookmarks
Custom sorting
Continuing to answer questions while I'm running our social media this week, here's one from Jeremy Morrell at Cloudflare, formerly at Heroku.
Continuing to answer questions while I'm running our social media this week, here's one from Jeremy Morrell at Cloudflare, formerly at Heroku.
Continuing to answer questions while I'm running our social media this week, here's one from Jeremy Morrell at Cloudflare, formerly at Heroku. "I'd be curious about writing the full unsampled firehose to S3. That can be a lot of data! Were there any hurdles there?" And yes, it's such an interesting and deep one once you get to a sufficient scale of data. The first knob to tweak is using the most efficient encoding -- this means using OTLP/proto instead of OTLP/json. But there's a lot more tweaking to do beyond that. Beyond using OTLP/proto there's some other things you should do with large data volume. For instance, use AWS PrivateLink or gateway endpoints both to talk to Honeycomb and to S3. You definitely don't want that volume of data passing to the public internet (even TLS encrypted, this isn't about security), because as Corey Quinn says, NAT gateways cost your firstborn child. So use PrivateLink to make sure that the data takes the most cost-effective path. You also will need to, at sufficiently large scales, use a prefix in your S3 buckets for the collector ID, so that you are not "laser pointer of death" blasting the S3 infrastructure by writing to /year=2025/month=06/day=27/hour=18/minute=01 etc. from all collectors at once; prefix your writes with id=abc012 where abc012 is a stand-in for the collector's pod name, so each parallel writer uses a different key. and you'll probably want to (again, at very large scales) talk to your AWS account rep about making sure that your S3 buckets are manually partitioned so that they will not hotspot on individual S3 metadata servers. But at smaller scales, writing raw telemetry to S3 just works. Happy observing, -- Liz Fong-Jones
·linkedin.com·
Continuing to answer questions while I'm running our social media this week, here's one from Jeremy Morrell at Cloudflare, formerly at Heroku.
Scaling Observability with OpenTelemetry: A Technical Overview
Scaling Observability with OpenTelemetry: A Technical Overview
Observability isn’t just about collecting data. It’s about making that data useful. In a world full of endless system events, how can we actually understand ...
·youtu.be·
Scaling Observability with OpenTelemetry: A Technical Overview
HTTP semantic convention stability migration
HTTP semantic convention stability migration
Due to the significant number of modifications and the extensive user base affected by them, existing HTTP instrumentations published by OpenTelemetry are required to implement a migration plan that will assist users in transitioning to the stable HTTP semantic conventions. Specifically, when existing HTTP instrumentations published by OpenTelemetry are updated to the stable HTTP semantic conventions, they: SHOULD introduce an environment variable OTEL_SEMCONV_STABILITY_OPT_IN in their existing major version, which accepts: http - emit the stable HTTP and networking conventions, and stop emitting the old HTTP and networking conventions that the instrumentation emitted previously. http/dup - emit both the old and the stable HTTP and networking conventions, allowing for a phased rollout of the stable semantic conventions. The default behavior (in the absence of one of these values) is to continue emitting whatever version of the old HTTP and networking conventions the instrumentation was emitting previously. Need to maintain (security patching at a minimum) their existing major version for at least six months after it starts emitting both sets of conventions. May drop the environment variable in their next major version and emit only the stable HTTP and networking conventions. [!NOTE] OTEL_SEMCONV_STABILITY_OPT_IN is only intended to be used when migrating from an experimental semantic convention to its initial stable version.
·opentelemetry.io·
HTTP semantic convention stability migration
OpenTelemetry for Go: measuring the overhead
OpenTelemetry for Go: measuring the overhead
We benchmarked the overhead of OpenTelemetry in a high-load Go application and compared it to eBPF-based instrumentation. The results may surprise you - tracing adds cost, but it’s not always a dealbreaker
·coroot.com·
OpenTelemetry for Go: measuring the overhead
Exposing OTel Collector in Kubernetes with Gateway API & mTLS
Exposing OTel Collector in Kubernetes with Gateway API & mTLS
The goal of this blog post is to demonstrate how you can expose an OpenTelemetry (OTel) Collector running inside Kubernetes to the outside world securely, using the Kubernetes Gateway API and mutual TLS (mTLS) for authentication and encryption. As observability becomes increasingly critical in modern distributed systems, centralizing telemetry data via OTel Collectors deployed in one or many Kubernetes clusters is common practice. Often, services or agents running outside your Kubernetes cluster need to send data to these Collectors. Exposing internal services requires careful consideration of security and standardization. This is where the Kubernetes Gateway API and mTLS shine.
·opentelemetry.io·
Exposing OTel Collector in Kubernetes with Gateway API & mTLS
Baggage
Baggage
Contextual information that is passed between signals.
·opentelemetry.io·
Baggage
Sampling
Sampling
Learn about sampling and the different sampling options available in OpenTelemetry.
·opentelemetry.io·
Sampling
Registry
Registry
Find libraries, plugins, integrations, and other useful tools for using and extending OpenTelemetry.
·opentelemetry.io·
Registry
Ruby
Ruby
A language-specific implementation of OpenTelemetry in Ruby.
·opentelemetry.io·
Ruby
Monitoring Minecraft with OpenTelemetry · Blog · Dash0
Monitoring Minecraft with OpenTelemetry · Blog · Dash0
One of the secret pleasures of life is to be paid for things you would do for free. On a completely unrelated note, this blog post documents my time figuring out how to monitor a Minecraft server with OpenTelemetry, Prometheus and Dash0.
·dash0.com·
Monitoring Minecraft with OpenTelemetry · Blog · Dash0
observIQ/otel-distro-builder: Build custom OpenTelemetry Collector Distributions from manifest files with a local build utility, Docker, Google Cloud Build, or a GitHub Action.
observIQ/otel-distro-builder: Build custom OpenTelemetry Collector Distributions from manifest files with a local build utility, Docker, Google Cloud Build, or a GitHub Action.
Build custom OpenTelemetry Collector Distributions from manifest files with a local build utility, Docker, Google Cloud Build, or a GitHub Action. - observIQ/otel-distro-builder
·github.com·
observIQ/otel-distro-builder: Build custom OpenTelemetry Collector Distributions from manifest files with a local build utility, Docker, Google Cloud Build, or a GitHub Action.