Category: Opentelemetry observability for Java and Spring Boot
-
Types of Sampling in OpenTelemetry
1. Why Sampling Exists in the First Place When engineers first learn distributed tracing, the natural instinct is to say, “Let us trace everything, because more data is always better.” In a small development environment this approach works perfectly fine, and in fact it is strongly recommended because it helps you understand how your system…
-
Span Vs Resource Attributes
1. First, the Big Picture In OpenTelemetry, telemetry data (traces, metrics, logs) has three layers of information: Resource attributes describe the identity of the service. Span attributes describe a specific operation. If you confuse these two, your observability data becomes hard to query, hard to aggregate, and semantically wrong. 2. What Is a Resource? (Conceptual…
-
Span parent–child relationships
1. Introduction Before talking about parent and child spans, we must first clearly understand what a span is in OpenTelemetry. A span represents a single unit of work in your system. That unit of work could be: A trace is simply a collection of spans that all belong to the same request or transaction. So,…
-
Project Setup for Opentelemetry
In this tutorial and the examples going forward we’ll use a project setup which is available at path ‘https://github.com/vinsguru/opentelemetry-observability‘. We are using the ‘02-distributed-tracing‘ section in this tutorial. We’ll discuss the various files in the repository. Here is the docker-compose.yaml: The different services here are: Let’s discuss the other config files. opentelemetry-config.properties opentelemetry-config.properties is the…
-
Observability primer
What is Observability? Observability lets you understand a system from the outside by letting you ask questions about that system without knowing its inner workings. Furthermore, it allows you to easily troubleshoot and handle novel problems, that is, “unknown unknowns”. It also helps you answer the question “Why is this happening?” To ask those questions…
-
Micrometer vs OpenTelemetry: Why Learning OpenTelemetry Still Makes Sense
Many Spring developers often ask a very reasonable question: “If I am already using Spring, and Spring provides Micrometer, then why do I even need OpenTelemetry?” At first glance, this question feels completely valid, because Micrometer is indeed a Spring-supported and well-integrated library, and in many projects it already gives some useful insights. However, to…
-
What Is OpenTelemetry and Why Do We Need It?
In this tutorial, we are going to understand what OpenTelemetry is, but instead of starting with a formal definition, it is much more useful to first understand the problem that OpenTelemetry is trying to solve. Once the problem becomes clear, the purpose and value of OpenTelemetry will feel very natural and obvious. The Problem: Modern…
-
The Three Pillars of Observability: Logs, Metrics, and Traces
In the previous tutorial, we defined observability as the ability to understand the internal state of a system by analyzing the outputs that the application produces. These outputs are often called signals or telemetry signals, because they continuously describe what the system is doing and how it is behaving from the inside. In modern observability…
-
Observability vs Monitoring
When we build modern applications, especially applications based on microservices and distributed architectures, one of the hardest problems is not just writing code, but understanding what is actually happening inside the system when something goes wrong in production. Very often, teams have dashboards and alerts, yet they still struggle to explain why the system is…
