The ObiBlog

Implementing an OpenTelemetry Collector in .NET

Implementing an OpenTelemetry Collector in .NET

We built our OpenTelemetry collector in .NET—an unconventional but deliberate choice. In this post, we explain why we chose C#, how we implemented the collector, and how it’s performing six months later. From gRPC to JSON endpoints and caching strategies, here’s what we learned building a high-throughput OTLP server.

Easiest ClickHouse Deployment Ever (with Fly.io)

Easiest ClickHouse Deployment Ever (with Fly.io)

ClickHouse, a rising star for time-series data with impressive performance, can be easily deployed on Fly.io. Forget complex setups; this method uses a single container, making alternatives seem difficult. With minimal configuration, you get a fully functional ClickHouse instance, persistent storage, and even out-of-the-box telemetry. This article guides you through the simple steps.

10 Do’s and Don’ts of Saving State to URL Parameters

10 Do’s and Don’ts of Saving State to URL Parameters

Saving app state to URL parameters can improve navigation, shareability, and deep linking—but it comes with caveats. This post covers what to store in the URL vs. local storage or a backend, and shares best practices and common pitfalls to help you avoid broken states, security risks, or bloated browser history stacks.

5 LLMs, One Complex React Challenge: Who Built the Best Waterfall View?

5 LLMs, One Complex React Challenge: Who Built the Best Waterfall View?

LLMs have become exceptionally good at building React UIs. I put five top models—ChatGPT, Claude, DeepSeek, Gemini, and Vercel V0—to the test by asking them to create a complex waterfall view of traces and spans. With identical prompts, I tracked how far each could go and how many corrections were needed.

Brilliant but Limited: Building a Logs Dashboard with Vercel V0 AI

Brilliant but Limited: Building a Logs Dashboard with Vercel V0 AI

Building UI components often means relying on third-party libraries, tweaking them endlessly, and navigating their quirks. But what if we used AI to build everything from scratch? In my latest experiment, I used Vercel V0 AI to generate a log exploration dashboard—completely from the ground up.

10 Client-Side Logging Best Practices

10 Client-Side Logging Best Practices

While application logs on the backend is industry standard, client side logging is not quite there. But logging has huge benefits in many aspects.

Logging Web Session IDs in JavaScript

Logging Web Session IDs in JavaScript

A web session ID acts like a name tag that follows a user around while they’re on your site, right up until the browser tab is closed. Logging that ID with every log makes it easier to figure out problems.

Logging best practices: Why we need log IDs

Logging best practices: Why we need log IDs

Looking through logs often feels like looking for a needle in a haystack. Allow me to propose a concept that will make working with logs much easier: the log ID. With this in your toolbox, you'll find that analysis and aggregations on large amounts of logs are much easier.

Choosing a Log Management Vendor: The Complete Guide

Choosing a Log Management Vendor: The Complete Guide

There are several open-source logging platforms that come in both flavors: self-hosted or managed. The most prominent ones are Elastic Stack and Loki. You can roll out an Elastic or Loki instance on an EC2 relatively easily, but you’ll have to deal with maintaining and scaling.