About a year ago my boss asked me to look into a performance issue on one of our products. What I immediately noticed was there wasn’t really any logging or diagnostics available in the code. The way things were done made answering a basic question like, “Where is all the time going?”, really hard to answer, which is why I was asked to do it. Instead of just answering the question for the one thing I was asked to look at, though, I set out to make it easy to answer all questions like it that might come up in the future. This eventually led me to OpenTelemetry. At the time, it was in alpha. There was no .NET Framework instrumentation, lots of performance issues, and lots of challenges to tackle. To make it more useful, and to have some fun, I started contributing and I ended up sticking around to help on a bunch of things.
So this series is going to be a collection of mostly random things that might be useful or interesting or fun in the realm of OpenTelemetry .NET.
TL;DR: I’ve been collecting together all the helpful stuff in this package: Macross.OpenTelemetry.Extensions. The source is available on GitHub.
Part 1: OpenTelemetry integration (part of another series I did on logging)
Part 2: Troubleshooting OpenTelemetry .NET
Part 3: Using OpenTelemetry while debugging
Part 4: Enrich OpenTelemetry spans with contextual information