Managing the cost of OpenTelemetry

The dark side of the moon OpenTelemetry

Right off the bat, you might find this blog post a bit strange. We are not used to managing the cost of our metrics and logs (we surely do not need someone to write a blog post about it). So what is unique about OpenTelemetry that requires a blog post for managing cost? What to […]

OpenTelemetry and eBPF: What You Need to Know Summary

eBPF Pokémon

In this short guide, you will learn about the unexplored world of OpenTelemetry and eBPF. What does eBPF mean for observability? Why are we even discussing it in the context of OpenTelemetry? Let’s get started. What to expect? What is eBPF?  Why is eBPF relevant to observability? What do OpenTelemetry and eBPF have to do […]

OpenTelemetry Collector: A Friendly Guide for Devs

Jaeger Nirvana Album Cover

In this guide, you will learn everything you need to know about the OpenTelemetry Collector. Before reading about it myself, the collector felt like a complex beast. But as I was learning, I realized it was not so complicated after all. In a nutshell, the collector receives telemetry data and sends it to wherever you […]

How to Write Integration Tests for Kafka in NodeJS

How to write an integration test for kafka in NodeJS

Writing integration tests is usually not such a fun task. You need to replicate a real environment and test the connections between the different parts of the system. You cannot rely on mocking as you would in a unit test since you need to simulate the actual environment. In this tutorial, I’ll show you how […]

Distributed Tracing for Kafka with OpenTelemetry in Node

Distributed Tracing for Kafka with OpenTelemetry in Node

In this guide, you will learn how to run OpenTelemetry in Node to generate spans for different Kafka operations (e.g., consume and produce) and ultimately visualize your traces. We will also touch on the basics of Kafka, OpenTelemetry, distributed tracing, and how they all play out together. If you’re already familiar with Kafka and OpenTelemetry, […]

The Future of Observability

The Future of Observability

We live in an era of microservices. New products are being developed not only by funded companies but also by creative individuals. Customers are used to having a great experience, and if they don’t get that—they leave. This means developers must be able to quickly debug and resolve any issue they encounter. This has also […]

How to Achieve End to End Visibility into Redis Pub/Sub Using OpenTelemetry

TL;DR – A step-by-step tutorial video + a GitHub demo repo are below. When it comes to complex microservices architecture, using messaging brokers is a no-brainer. Communicating over a message broker reduces the mutual awareness that services should have of each other to be able to exchange messages, effectively implementing decoupling which is the root […]

3 Strategies to Solve Microservices Contracts Issues

solve contract testing

Microservice applications grow in complexity as the number of services grows.  This is something I’ve seen time and again as I’ve worked in microservice-based application architectures – one minor change to an edge service and the main customer portal is taken down due to a broken API call.  Service contracts are a first step towards […]

Kafka vs RabbitMQ vs AWS SNS/SQS: Which Broker to Choose?

Choosing a message broker

Microservice applications rely heavily on messaging and asynchronous communications to keep everything working smoothly.  Choosing the right message broker is one of the first critical choices you must make when developing the services that need to communicate with each other. Making the “right” choice can be a battle of features and edge cases that can be […]

How to Achieve End-to-End Microservices Visibility in Asynchronous Messaging with OpenTelemetry

How to Achieve End-to-End Microservices Visibility in Asynchronous Messaging Kafka with OpenTelemetry

TLDR: Watch this 5-min video (code snippets can be found below) Microservices have tons of benefits.  They enable distributed development of highly scalable applications and unleashing the full potential of public cloud infrastructure. But there can be no good without evil. Microservices are DIFFICULT to understand and troubleshoot.  When done right, microservices are asynchronous, which […]