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.
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
TL;DR: startSpan is easier and measures a duration. Use it if your work won’t create any subspans. startActiveSpan requires that you pass a callback for the work in the span, and then any spans created during that work will be children of this active span. I’m instrumenting a Node.js app with OpenTelemetry, and adding some … Read morestartSpan vs startActiveSpan in OpenTelemetry JS
It also works with VSCode devcontainers and on GitPod. Because Step 1 in any new project is a reproducible development environment, and Step 2 is get it in production. Step 3 is implement something. Copy this code: systemsthinking-dev/poker-in-elm at starter (github.com) This is my accomplishment for the day, so I’m here to share it with … Read moreStarter Elm app that deploys on Netlify