.NET Tools

.NET Annotated Monthly | August 2023

Did you know? Observability is tagged as #o11y across social media platforms. Where did that hashtag come from? It’s a numeronym, in which we repeat the first and last letter of the original word, and the number in the middle represents the amount of characters that are omitted.

.NET Annotated Monthly Newsletter.

Get news, tips, tricks, and great content about .NET and software development related topics.

.NET news

Featured content 

We’d like to thank Laila Bougria for curating this month’s featured content! She is an international speaker, and a Microsoft Azure MVP. Laila enjoys the creative process of writing software and solving complex problems. In her free time, she loves to tangle up some yarn into beautifully knitted patterns as she untangles her thoughts. Catch up with Laila on Twitter and Mastodon.

Thanks for having me as a guest on the blog JetBrains! It’s a pleasure to share a little about my interests with a community that focuses on improving the experience of building software! A topic I’ve been very interested in lately is observability.

Why, you might ask? Over the last eight years or so, I’ve been focused on message- and event-driven systems, both in terms of building them and helping to build tooling to support these kinds of systems. When I first started building systems using messaging, it required a true mind-shift: from understanding asynchronicity and dealing with eventual consistency to achieving idempotency. Nevertheless, I quickly realized how much this architectural style helped me model applications in a way that made them easier to maintain and more aligned with the business domain than ever before. However, there was one significant drawback to this type of system: it was incredibly hard and complex to debug.

That’s why observability caught my eye, specifically with the introduction of the OpenTelemetry project in 2020. Observability refers to the ability to understand the inner workings of a running system based on the telemetry it emits. When we talk about observability in software, we’re not just talking about collecting data for the sake of it. Observability means having the ability to ask any question about your system’s behavior, performance, and health without changing any code (which requires redeployment, too!), hours of yak shaving, assembling log files from different servers, and without late pizza evenings writing complex database queries and speculating about how the data got there. Most importantly, it means not disappointing users by telling them they must have imagined the perceived behavior because it works on our machine.

As the industry shifted to building more complex distributed systems with the rise of microservices and the breadth of available services and hosting options from cloud vendors, observability tools emerged. Although powerful, each solution presented its own programming model, guidelines, and storage format. With the OpenTelemetry project, the Cloud Native Computing Foundation built a vendor-, language- and platform-agnostic solution for observability that finally standardizes how applications generate, collect, and export telemetry information to observability backends. With support for tracing, metrics, and logs, it provides a wide range of signals that allow developers to increase the observability of complex systems.

The bottom line is that observability is not the next buzzword—it’s a must-have in today’s complex software landscape. As our software continues to evolve and grow in complexity, we also need to invest efforts into simplifying and streamlining how we can understand their behavior. We can ensure just that by investing time and effort into observability and harnessing the power of OpenTelemetry.

If you’re ready to shed some light on the blind spots in your systems, I leave you with some additional resources on the topic to get you started:

  • Message processing failed, but what’s the root cause? – I had the pleasure of presenting a session on this topic at the JetBrains .NET Days last year. This more recent recording from NDC Oslo, shows up-to-date samples with the latest .NET OpenTelemetry libraries.
  • Announcing Azure Monitor OpenTelemetry Distro – In this recent announcement, Matt McCleary and Sam Spencer share Microsoft’s plans to adapt Azure Monitor and all Azure SDKs to use the OpenTelemetry Protocol (OTLP), making it language-agnostic.
  • OpenTelemetry with the Grafana stack – If you’re looking for practical code examples on setting up OpenTelemetry in .NET using Grafana, Glen Versweyveld has covered you with his GitHub repository.
  • OpenTelemetry .NET API on GitHub – The official .NET implementation for OpenTelemetry is open source, available on GitHub, and comes with comprehensive documentation and samples.
  • O11y newsletter: Finally, if you want to remain up-to-date on the latest advancements in the observability space, Michael Hausenblas has a newsletter dedicated to the topic through which he shares his weekly findings.

Programing tutorials and tips 

.NET tutorials and tips

Looking for awesome and helpful .NET libraries? Maarten’s got you covered.

Related programming tutorials and tips:

Check out this great Azure Blob Storage Bindings tweet tutorial by Golda.

Interesting and cool stuff

And finally, the latest from JetBrains

Here’s a chance to catch up on JetBrains news that you might have missed:

⚒️ Check out our .NET Guide! Videos, tips, and tricks on .NET related topics. 🎥🪄⚒️

Blog posts, webinars, etc..:

Don’t miss this fantastic offer! CODE Magazine is offering a free subscription to JetBrains customers. Get your copy today!

Sharing is caring! So share content that you find useful with other readers. Don’t keep it to yourself! Send us an email with your suggestions for publication in future newsletters!

image description

Discover more