Application Observability

Ajaydarshanala
2 min readJul 23, 2024

--

The document contains High level understanding of observability concept

Definition according to Spring observability team :: What is observability? In our understanding, it is how well you can understand the internals of your system by examining its outputs. We believe that the interconnection between metrics, logging, and distributed tracing gives you the ability to reason about the state of your system in order to debug exceptions and latency in your applications.

Glossary:
https://docs.micrometer.io/tracing/reference/glossary.html#:~:text=Span%3A%20The%20basic%20unit%20of,IDs%20(normally%20IP%20addresses).

Micrometer : Micrometer is a metrics instrumentation library for JVM-based applications

Span: The basic unit of work. For example, sending an RPC is a new span, as is sending a response to an RPC. Spans also have other data, such as descriptions, timestamped events, key-value annotations (tags), the ID of the span that caused them, and process IDs (normally IP addresses).

Spans can be started and stopped, and they keep track of their timing information. Once you create a span, you must stop it at some point in the future.

Trace: A set of spans forming a tree-like structure. For example, if you run a distributed big-data store, a trace might be formed by a PUT request.

Annotation/Event: Used to record the existence of an event in time.

Tracer: A library that handles the lifecycle of a span. It can create, start, stop, and report spans to an external system via reporters / exporters.

Tracing context: For distributed tracing to work, the tracing context (trace identifier, span identifier, and so on) must be propagated through the process (for example, over threads) and over the network.

Log correlation: Parts of the tracing context (such as the trace identifier and the span identifier) can be populated to the logs of a given application. One can then collect all logs in a single storage and group them with a trace ID. That way, you can get all logs, for a single business operation (trace) from all services put in a chronological order.

Latency analysis tools: A tool that collects exported spans and visualizes the whole trace. Such a tool allows easy latency analysis.

Default Metrics : https://docs.spring.io/spring-boot/reference/actuator/metrics.html#actuator.metrics.supported
JVM Metrics published under the jvm. meter name
System Metrics : published under the system., process., and disk. meter names.
Application Startup Metrics
1.
application.started.time
2.application.ready.time
Logger Metrics published under the log4j2.events. or logback.events. meter names.
Task Execution and Scheduling Metrics
Spring MVC Metrics generated with the name, http.server.requests
Spring WebFlux Metrics http.server.requests
………………..and more metrics in the above link

--

--