• OpenTelemetry Tracing in 200 lines of code ↗

    Jeremy Morrell:

    Developers tend to treat tracing as deep magic, and OpenTelemetry is no exception. OpenTelemetry may be even more mysterious given how many concepts you are exposed to even with beginning examples.

    It also doesn’t help that as part of building a mature, battle-tested tracing library, the code itself tends to become more and more cryptic over time, contorting itself to avoid edge-cases, work across many environments, and optimize code paths to avoid impacting performance of its host applications. Auto-instrumentation is particularly prone to inscrutibility as it seeks to auto-magically wrap code that may never have been intended to be wrapped or extended.

    It’s no wonder then that most developers approach tracing libraries as unknowable black boxes. We add them to our applications, cross our fingers, and hope they give us useful information when the pager goes off at 2am.

    They are likely a lot simpler than you expect! Once you peel back the layers, I find a useful mental model of tracing looks like “fancy logging” combined with “context propagation” a.k.a “passing some IDs around”.

    Lots of useful tool mentions like otel-tui which is new to me. And for more fancy context, consider async-provider.

  • force_balance_tags function breaks nested G in SVG ↗

    SVG icons with nested <g> may be corrupted when displayed in WordPress. This is a 4+ year old bug. The simple workaround is to uncheck “WordPress should correct invalidly nested XHTML automatically” in Settings > Writing.

  • Yarn 4.10.0 ↗

    In addition to pnpm supporting minimumReleaseAge in pnpm 10.16, Yarn has introduced a similar feature with npmMinimalAgeGate. There are some minor differences which mostly effect npmMinimumReleaseAgeExclude. This option is similar to pnpm’s minimumReleaseAgeExclude but also supports an exact match on package locators like @react-router/[email protected] or semver and micromatch globs like @react-router/node@^7.9.1, @react-router/node@npm:^7.9.1, @react-router/node@*, or @react-router/*.

Follow

Latest Blog Post

  • Starting at Apple

    I will help small businesses succeed by building Apple Business Essentials — a product which brings together device management, 24/7 Apple support, and iCloud storage into flexible subscription plans. More →