Run the OpenTelemetry Collector in Kubernetes for Front-End Tracing

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

startSpan vs startActiveSpan in OpenTelemetry JS

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

Starter Elm app that deploys on Netlify

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

a fire hydrant is sideways on the ground.

Run an OpenTelemetry Collector locally in Docker

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

Spring and JPA: use custom value types inside entities with a custom converter

If you want secure code, or code with fewer bugs, you want to track the kind of data you’re passing around. In your code, do not pass around strings or any other built-in built-in primitive type. Those are for the edges: we have to accept strings as input, we have to write VARCHAR to the …

Read moreSpring and JPA: use custom value types inside entities with a custom converter