OpenTelemetry in a script tag

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

Software is Complicated, Given Enough Time

this is complicated at some level, but I don't want to look at it that closely

I often say that software these days is complex. But is it? In Cynefin terms, it’s more like an airplane than a family: it’s complicated. Given enough expertise, all the code, lots of data, and enough time, we could analyze the causal structure of any particular system behavior. We can reason about complicated systems. When … Read moreSoftware is Complicated, Given Enough Time

A Developer’s Starting Point for Integrating with LLMs

Here’s what I know so far, from a lay-developer’s perspective (no AI or ML experience). So you’re a coder, and you’ve been asked to integrate with ChatGPT. What do you need to know? ChatGPT is an example of a Large Language Model (LLM). LLMs are a kind of machine learning (call it AI if you … Read moreA Developer’s Starting Point for Integrating with LLMs

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

Five Measurements You Should Make and Then Ignore (Plus One to Watch Intently)

Are we succeeding as a software team?Well, if our job were feature delivery, we could look at the parade of JIRA tickets in our “complete” column. That is only part of our job, though.The purpose of a software team is to provide valued capabilities to customers, internal or external. To do that, our software has … Read moreFive Measurements You Should Make and Then Ignore (Plus One to Watch Intently)

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