Span or Attribute? in OpenTelemetry custom instrumentation
Instead of emitting a log, add attributes to the current span. OpenTelemetry makes this easy, and Honeycomb makes it free. This gets you more data correlation.
Instead of emitting a log, add attributes to the current span. OpenTelemetry makes this easy, and Honeycomb makes it free. This gets you more data correlation.
When I make a website, even a toy one, I want to get telemetry. Has anyone visited it? Did my JavaScript crash? Little things. I want to send this with OpenTelemetry, because it’s the industry standard and all. Currently (November 2023), that requires a whole JavaScript build chain to package up the libraries etc etc. … Read moreOpenTelemetry in a script tag
TL;DR: skip to this readme for the easiest path When you’re running applications in Kubernetes, and you’re using OpenTelemetry for observability, then one recommended practice is to run the OpenTelemetry Collector on each node in your cluster. Then each of your applications can send telemetry data (traces, metrics, logs) to that local collector. To run … Read moreTesting an OpenTelemetry Collector deployed as a Daemonset in Kubernetes
My objective is to troubleshoot 502 errors in my load balancer. The first step is to set up access logs. That says to create an S3 bucket, create a policy for it, and then configure the load balancer. I refuse to do this in the console; I’m using terraform to create resources and kubernetes to … Read moreSetting up ALB Access Logs in EKS using Terraform
Have you ever looked at someone else’s Honeycomb query and thought “what’s up with ‘trace.parent_id does not exist’? Or wondered how Honeycomb’s home screen counts Total Requests? This is totally confusing. Here, I made a video about how to do it and why it works like that.
${BASH_SOURCE%/*} This is useful when you want to read a file that’s in the same directory as the current script, for instance. $BASH_SOURCE holds the current script, including a path. That could be a relative path or a full path. % says “strip off a glob from the end of the value, the smallest glob … Read morebash: get the directory this script is in
People can “learn to code” on so many websites, in little in-browser environments. Sites instruct on the basics of ‘for’ loops and ‘if’ statements. In advanced courses, learn algorithms and data structures. Writing toy programs is eminently teachable. Writing useful programs is something else. And writing them well is a mysterious art. Greg Wilson‘s new … Read moreBook Review: Software Design By Example
Why is this so hard? To send gRPC messages in Rust, one uses the tonic library. If you’re sending to an https endpoint, you’ll need to provide a ClientTlsConfig. By default, you’ll get a very distrustful one. Here’s the error message: the grpc server returns error (The service is currently unavailable): , detailed error message: … Read moreMake https work on gRPC in Rust: load a root certificate into the TLS config
TL;DR: Run the OpenTelemetry Collector helm chart with –values=values.yaml pointing to the values.yaml in this gist. Use kubectl get services to find the collector’s URL. The rest of this blog post walks through the whole process of setting this up. This will teach you the why and how of each step, so that you can adjust it to your needs. There’s also … Read moreRun the OpenTelemetry Collector in Kubernetes for Front-End Tracing
This is an experience report for my future reference (and yours). The OpenTelemetry Collector is useful for receiving trace data in whatever format and exporting it to the back-end of your choice for storage and querying. For instance, I wanted to receive traces over HTTP/JSON from this sneaky browser extensionLINK and send them to Honeycomb. … Read moreRun an OpenTelemetry Collector locally in Docker