<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>OpenTelemetry on foojay.io - Friends of OpenJDK</title><link>https://foojayio.github.io/website/today/category/opentelemetry/</link><description>Recent content in OpenTelemetry on foojay.io - Friends of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 24 Jun 2026 07:15:41 +0000</lastBuildDate><atom:link href="https://foojayio.github.io/website/today/category/opentelemetry/index.xml" rel="self" type="application/rss+xml"/><item><title>Quarkus Unpacked: Insights from the Foojay Podcast</title><link>https://foojayio.github.io/website/today/quarkus-unpacked-insights-from-the-foojay-podcast/</link><pubDate>Tue, 23 Jun 2026 12:36:54 +0000</pubDate><guid>https://foojayio.github.io/website/today/quarkus-unpacked-insights-from-the-foojay-podcast/</guid><description>&lt;figure class="alignleft is-resized"&gt;
 &lt;img decoding="async" src="3-Quarkus-Unpacked-2-2.jpeg" alt="Quarkus: A Runtime and Framework for Cloud-Native Java" style="width:300px"&gt;
&lt;/figure&gt;
&lt;p&gt;I recently had the pleasure of joining the &lt;a href="https://www.youtube.com/watch?v=_nJCTTrnZkE" target="_blank" rel="noopener noreferrer"&gt;Foojay podcast&lt;/a&gt;
 to talk about Quarkus in depth. The conversation covered a lot of ground, from what makes Quarkus different to the practical trade-offs between JVM and native mode. This post captures the key questions and answers from that discussion, lightly edited for readability.{#_quarkus_unpacked_insights_from_the_foojay_podcast}&lt;/p&gt;
&lt;p&gt;If you have been following this blog series, note that the third installment on building your own stack with Quarkus is coming next. Consider this a bonus entry that distills the podcast conversation into a format you can read, reference, and share.&lt;/p&gt;</description></item><item><title>Observing Apache NetBeans with OpenTelemetry and Dash0</title><link>https://foojayio.github.io/website/today/observing-apache-netbeans-with-opentelemetry-and-dash0/</link><pubDate>Sun, 14 Jun 2026 22:03:09 +0000</pubDate><guid>https://foojayio.github.io/website/today/observing-apache-netbeans-with-opentelemetry-and-dash0/</guid><description>&lt;p&gt;&lt;em&gt;What happens when you point an observability agent at your IDE rather than your application?&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="h2-0-the-question-nobody-thinks-to-ask"&gt;The question nobody thinks to ask&lt;/h2&gt;
&lt;p&gt;Observability is something we do to our applications. We instrument services, add trace context to HTTP requests, collect JVM heap metrics, ship logs to a backend. The IDE we use to write that instrumentation is &amp;mdash; by convention &amp;mdash; invisible. It just runs. When it is slow, we assume it is busy. When it crashes, we restart it. We have no data.&lt;/p&gt;</description></item><item><title>From Zero (Really Zero) to OpenTelemetry</title><link>https://foojayio.github.io/website/today/from-zero-really-zero-to-opentelemetry/</link><pubDate>Tue, 19 May 2026 13:36:11 +0000</pubDate><guid>https://foojayio.github.io/website/today/from-zero-really-zero-to-opentelemetry/</guid><description>&lt;p&gt;Here&amp;rsquo;s a super awesome prompt (e.g., for Claude Code) that you can use with &lt;a href="https://github.com/dash0hq/agent-skills" target="_blank" rel="noopener noreferrer"&gt;https://github.com/dash0hq/agent-skills&lt;/a&gt;
, the free collection of skills for AI coding agents to make applications observable with OpenTelemetry, such as with &lt;a href="https://www.dash0.com/" target="_blank" rel="noopener noreferrer"&gt;Dash0&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;And the end result is this, a view into the traces of your application (without anything at all at the start of the process).
&lt;img src="https://foojayio.github.io/website/today/from-zero-really-zero-to-opentelemetry/dash0-foojay-2-1024x545.png" alt="" loading="lazy"&gt;
&lt;/p&gt;
&lt;h2 id="h2-0-the-super-awesome-prompt"&gt;&lt;strong&gt;The Super Awesome Prompt&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Take a careful look below: before doing this prompt, not only do we not have an application that is instrumented with OpenTelemetry yet. Not only do we not have the agent we need to do the instrumentation yet.&lt;/p&gt;</description></item><item><title>From Zero to Full Observability with Dash0</title><link>https://foojayio.github.io/website/today/from-zero-to-full-observability-with-dash0/</link><pubDate>Sat, 04 Apr 2026 06:35:47 +0000</pubDate><guid>https://foojayio.github.io/website/today/from-zero-to-full-observability-with-dash0/</guid><description>&lt;p&gt;This guide walks through the complete process of deploying a minimal Spring Boot service to Kubernetes and adding full observability using the &lt;a href="https://www.dash0.com/docs/dash0/monitoring/kubernetes/about-kubernetes" target="_blank" rel="noopener noreferrer"&gt;Dash0 Kubernetes Operator&lt;/a&gt;
 &amp;mdash; without making any changes to the application code.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.dash0.com/docs/dash0" target="_blank" rel="noopener noreferrer"&gt;Dash0&lt;/a&gt;
 is an OpenTelemetry-native observability platform that collects and correlates traces, metrics, and logs, and provides infrastructure monitoring across Kubernetes resources &amp;mdash; pods, nodes, namespaces, deployments, daemonsets, statefulsets, jobs, and cronjobs &amp;mdash; as well as cloud infrastructure such as AWS. Its Kubernetes operator can automatically instrument workloads at the pod level, with no changes required to application code or container images.
&lt;img src="https://foojayio.github.io/website/today/from-zero-to-full-observability-with-dash0/kubernetes-dash0-1024x581.png" alt="" loading="lazy"&gt;
&lt;/p&gt;</description></item><item><title>Spring Boot 4 - OpenTelemetry Guide</title><link>https://foojayio.github.io/website/today/spring-boot-4-opentelemetry-explained/</link><pubDate>Wed, 10 Dec 2025 09:09:58 +0000</pubDate><guid>https://foojayio.github.io/website/today/spring-boot-4-opentelemetry-explained/</guid><description>&lt;p&gt;In my previous &lt;a href="https://foojayio.github.io/website/today/preparing-for-spring-framework-7-and-spring-boot-4/"&gt;article&lt;/a&gt;
, I outlined a comprehensive list of features introduced in Spring Framework 7 and Spring Boot 4.&lt;/p&gt;
&lt;p&gt;In this series of articles, we will explore these features in detail using a pragmatic approach. In this second article, I will dive deep into integration of Observability framework i.e., &lt;em&gt;&lt;strong&gt;OpenTelemetry with SpringBoot&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;As an architect and developer, when I engage in system design&amp;mdash;whether it involves monolithic architecture, microservices, or contemporary cloud-native applications&amp;mdash;I have made the integration of &lt;strong&gt;observability&lt;/strong&gt; patterns utilizing &lt;strong&gt;open-telemetry&lt;/strong&gt; tools a standard practice. Through observability, we can monitor application behavior via &lt;strong&gt;metrics, logs, and traces&lt;/strong&gt; that we trigger&lt;/p&gt;</description></item><item><title>OpenTelemetry Tracing on the JVM</title><link>https://foojayio.github.io/website/today/opentelemetry-tracing-on-the-jvm/</link><pubDate>Sun, 17 Aug 2025 08:00:39 +0000</pubDate><guid>https://foojayio.github.io/website/today/opentelemetry-tracing-on-the-jvm/</guid><description>&lt;p&gt;You may know I&amp;rsquo;m a big fan of OpenTelemetry. I recently finished developing a &lt;a href="https://yowcon.com/melbourne-2025/masterclasses/560/gain-practical-in-depth-experience-with-observability-using-opentelemetry" target="_blank" rel="noopener noreferrer"&gt;master class for the YOW! conference&lt;/a&gt;
 at the end of the year. During development, I noticed massive differences in configuration and results across programming languages. Even worse, differences exist across frameworks inside the same programming language.&lt;/p&gt;
&lt;p&gt;In this post, I want to compare the different zero-code OpenTelemetry approaches on the JVM, covering the most widespread:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Spring Boot with Micrometer Tracing&lt;/li&gt;
&lt;li&gt;Spring Boot with the OpenTelemetry Agent&lt;/li&gt;
&lt;li&gt;OpenTelemetry Spring Boot Starter&lt;/li&gt;
&lt;li&gt;Quarkus&lt;/li&gt;
&lt;li&gt;Quarkus with the OpenTelemetry Agent&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="h2-0-commonalities"&gt;Commonalities&lt;/h2&gt;
&lt;p&gt;I keep the architecture pretty simple:&lt;/p&gt;</description></item><item><title>Spring Cloud Stream for Real-Time Event-Driven Systems</title><link>https://foojayio.github.io/website/today/spring-cloud-stream-event-driven-architecture-part-1/</link><pubDate>Mon, 21 Jul 2025 13:33:34 +0000</pubDate><guid>https://foojayio.github.io/website/today/spring-cloud-stream-event-driven-architecture-part-1/</guid><description>&lt;p&gt;&lt;strong&gt;Envision operating a successful e-commerce platform where every moment is crucial. Customers make purchases, adjust inventory levels, process payments, and dispatch shipping alerts&amp;mdash;all in real time. In the background, microservices diligently function to guarantee seamless operations. However, how do these services interact effectively, particularly during peak traffic occurrences such as flash sales or holiday shopping events?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An efficient method to execute this use case involves utilizing Spring Cloud Stream (SCS) as the messaging infrastructure. SCS facilitates seamless interaction among microservices, enhancing the system&amp;rsquo;s responsiveness and scalability. A significant benefit of SCS is that it provides an abstraction layer, allowing developers to transition between messaging technologies such as Kafka or RabbitMQ or Pulsar or Amazon Kinesis without altering their fundamental business logic.&lt;/p&gt;</description></item><item><title>Challenge yourself with Application Observability Code Challenges</title><link>https://foojayio.github.io/website/today/challenge-yourself-with-application-observability-code-challenges/</link><pubDate>Wed, 22 Jan 2025 13:19:56 +0000</pubDate><guid>https://foojayio.github.io/website/today/challenge-yourself-with-application-observability-code-challenges/</guid><description>&lt;p&gt;Code challenges are a nice way to challenge yourself with programming, resulting in some great challenges like &lt;a href="https://github.com/gunnarmorling/1brc" target="_blank" rel="noopener noreferrer"&gt;#1brc&lt;/a&gt;
 and the yearly &lt;a href="https://adventofcode.com" target="_blank" rel="noopener noreferrer"&gt;Advent of Code (#AoC)&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;While these challenges often include a competitive element, the Application Observability Code Challenges are focussed on the learning about observability practices.&lt;/p&gt;
&lt;h2 id="h2-0-what-are-the-application-observability-code-challenges"&gt;What are the Application Observability Code Challenges?&lt;/h2&gt;
&lt;p&gt;The idea of these challenges came to me based on the challenges above and the fact that I see in practice that quite a few developers are struggling to get up to speed with applying observability practices.&lt;/p&gt;</description></item><item><title>OpenTelemetry Tracing on Spring Boot, Java Agent vs. Micrometer Tracing</title><link>https://foojayio.github.io/website/today/opentelemetry-tracing-on-spring-boot-java-agent-vs-micrometer-tracing/</link><pubDate>Thu, 22 Aug 2024 08:34:57 +0000</pubDate><guid>https://foojayio.github.io/website/today/opentelemetry-tracing-on-spring-boot-java-agent-vs-micrometer-tracing/</guid><description>&lt;p&gt;&lt;strong&gt;My &lt;a href="https://github.com/nfrankel/opentelemetry-tracing" target="_blank" rel="noopener noreferrer"&gt;demo&lt;/a&gt;
 of OpenTelemetry Tracing features two Spring Boot components. One uses the Java agent, and I noticed a different behavior when I recently upgraded it from v1.x to v2.x. In the other one, I&amp;rsquo;m using Micrometer Tracing because I compile to GraalVM native, and it can&amp;rsquo;t process Java agents.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I want to compare these three different ways in this post: Java agent v1, Java agent v2, and Micrometer Tracing.&lt;/p&gt;</description></item></channel></rss>