<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Elastic Observability Labs - Articles by Karolina Kurstak</title>
        <link>https://www.elastic.co/observability-labs</link>
        <description>Trusted security news &amp; research from the team at Elastic.</description>
        <lastBuildDate>Mon, 27 Jul 2026 15:55:16 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>Elastic Observability Labs - Articles by Karolina Kurstak</title>
            <url>https://www.elastic.co/observability-labs/assets/observability-labs-thumbnail.png</url>
            <link>https://www.elastic.co/observability-labs</link>
        </image>
        <copyright>© 2026. Elasticsearch B.V. All Rights Reserved</copyright>
        <item>
            <title><![CDATA[From alert to failing dependency in four clicks: Elastic APM's embedded service map]]></title>
            <link>https://www.elastic.co/observability-labs/blog/service-map-apm-dependency-analysis</link>
            <guid isPermaLink="false">service-map-apm-dependency-analysis</guid>
            <pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[The APM service map is now embedded on alert pages with filters, connection metrics and a service fly-out so you can analyse dependencies and find the root cause without leaving the alert.]]></description>
            <content:encoded><![CDATA[<p>Elastic APM 9.5 embeds the <a href="https://www.elastic.co/docs/solutions/observability/apm/service-map">service map</a> on every alert detail page, in the APM UI and on Kibana dashboards.
Open a <a href="https://www.elastic.co/docs/solutions/observability/apm/metrics">RED metric</a> alert and start dependency analysis without leaving the page.
The map now includes text search, health filters, connection RED metrics with drill-through to Traces in Discover, and a service fly-out that previews any node's health right from the map.
This walkthrough uses the <a href="https://github.com/elastic/opentelemetry-demo">OpenTelemetry Demo</a> (Astronomy Shop) to go from a RED metric alert on a checkout service to a failing shipping dependency in four steps.</p>
<p><img src="https://www.elastic.co/observability-labs/assets/images/service-map-apm-dependency-analysis/depedencies-hero.gif" alt="Embedded service map on an APM alert detail page" /></p>
<h2>Where the APM service map is available</h2>
<p>This is available in Elastic Observability serverless today and is coming to Elastic Cloud Hosted and self-managed deployments in 9.5.</p>
<h2>Prerequisites for APM service map dependency analysis</h2>
<p>You need trace data from services instrumented with any method <a href="https://www.elastic.co/docs/solutions/observability/apm/ingest">Elastic APM supports</a>.</p>
<ul>
<li><strong>Application instrumentation:</strong> one of the following:
<ul>
<li><strong><a href="https://www.elastic.co/docs/solutions/observability/apm/apm-agents">Elastic APM agents</a></strong> for Java, .NET, Node.js, Python, PHP, Ruby, Go, and other supported languages</li>
<li><strong><a href="https://www.elastic.co/docs/reference/opentelemetry">Elastic Distributions of OpenTelemetry (EDOT)</a></strong> language SDKs</li>
<li><strong><a href="https://www.elastic.co/docs/solutions/observability/apm/opentelemetry">OpenTelemetry SDKs</a></strong> sending OTLP via the EDOT Collector, Elastic Agent, APM Server, or the Managed OTLP endpoint.
If you run a custom upstream Collector pipeline, include both the <a href="https://www.elastic.co/docs/reference/edot-collector/components/elasticapmconnector"><code>elasticapm</code> connector</a> and the <a href="https://www.elastic.co/docs/reference/edot-collector/components/elasticapmprocessor"><code>elasticapm</code> processor</a>.
Those components ship with the EDOT Collector (or a custom EDOT-like build); they are not part of the standard OpenTelemetry Collector Contrib distribution.
For wiring details, see the <a href="https://www.elastic.co/docs/solutions/observability/get-started/opentelemetry/use-cases/upstream-collector">upstream collector setup</a>.</li>
</ul>
</li>
<li><strong>Service map data:</strong> distributed traces that link the services in your architecture. The map draws connections from span parent-child relationships across instrumented services.</li>
<li><strong>Backend:</strong> Elastic Observability serverless today, or Elastic Stack 9.5 on Elastic Cloud Hosted and self-managed when 9.5 releases.</li>
</ul>
<h2>Dependency analysis walkthrough: from APM alert to shipping dependency</h2>
<h3>Step 1: APM service map on the alert detail page</h3>
<p>When you receive a notification for a <a href="https://www.elastic.co/docs/solutions/observability/apm/create-apm-rules-alerts">RED metric threshold breach</a> on the checkout service, open the alert detail page.</p>
<p>The upgraded <a href="https://www.elastic.co/docs/solutions/observability/apm/service-map">service map</a> is embedded on the page, so you can start analysing dependencies the moment you land on the alert. You see checkout in context with its upstream and downstream connections without navigating away.</p>
<p>In our example, failed transactions have increased on checkout. The map is already scoped to the alert time range:</p>
<p><img src="https://www.elastic.co/observability-labs/assets/images/service-map-apm-dependency-analysis/depedencies-walkthrough-1.gif" alt="RED metric alert for checkout with embedded service map" /></p>
<h3>Step 2: Spotting a failing dependency on the service map</h3>
<p>When we scan through the downstream dependencies, we can see some indicators that there is a problem with the <strong>checkout</strong> and <strong>shipping</strong> services. When we open the shipping service fly-out to view more details, we can see the transactions for <code>/get-quote</code> have an elevated failure rate:</p>
<p><img src="https://www.elastic.co/observability-labs/assets/images/service-map-apm-dependency-analysis/depedencies-walkthrough-2.gif" alt="Identifying shipping as the failing downstream dependency on the service map" /></p>
<h3>Step 3: Drilling into failing transactions to identify RED metric drivers</h3>
<p>Click on the <code>/get-quote</code> transaction to drill into these transactions. We can see a release marker for version <code>2.3.0</code> that seems to correlate to increase in failures. To validate this is the main contributing factor, we want to analyse these transactions and check a few dimensions to isolate the behaviour to the release:</p>
<p><img src="https://www.elastic.co/observability-labs/assets/images/service-map-apm-dependency-analysis/depedencies-walkthrough-3.gif" alt="Service fly-out preview for shipping with RED metrics and transaction breakdown" /></p>
<h3>Step 4: Comparing RED metrics by dimension in Traces in Discover</h3>
<p>Using Traces in Discover, we can use the <strong>breakdown</strong> feature to compare various attributes to confirm the RED metric change is due to the release. As we break down by <code>service.version</code>, <code>k8s.deployment.name</code> and <code>k8s.pod.name</code>, we can see the failure rate is highly elevated for just this Kubernetes deployment.</p>
<p>These field names match the OpenTelemetry semantic conventions used by the demo (EDOT / OTel instrumentation). If you instrument with classic Elastic APM agents, use the ECS-style <code>kubernetes.*</code> equivalents instead (see <a href="https://www.elastic.co/docs/reference/ecs/ecs-otel-alignment-details">ECS ↔ OTel field alignment</a>).</p>
<p><img src="https://www.elastic.co/observability-labs/assets/images/service-map-apm-dependency-analysis/depedencies-walkthrough-4.gif" alt="Service fly-out preview for shipping with RED metrics and transaction breakdown" /></p>
<p>Given we have clear indicators that this problem is almost certainly due to a problem caused by this Kubernetes deployment, we would next investigate the changes this deployment made so we can identify a mitigation strategy to return the system to a healthy status, most likely a rollback of the Kubernetes deployment.</p>
<h2>Dependency analysis with the service map on custom dashboards</h2>
<p>The APM service map can also be added as a panel to custom Kibana dashboards.
If you have a custom Dashboard you would like to surface for a debugging problem with your service, you can <a href="https://www.elastic.co/docs/solutions/observability/incident-management/create-manage-rules#observability-create-manage-rules-add-investigation-resources">attach it to your alert rule</a> so users can use this to complement the default alert detail view.</p>
<p>When you receive the notification and land on the alert detail page, you can click <strong>Related Dashboards</strong> and open your custom dashboard. From here, you can use the same Service Map panel to quickly analyse dependencies just like the alert detail page:</p>
<p><img src="https://www.elastic.co/observability-labs/assets/images/service-map-apm-dependency-analysis/depedencies-variant-dashboards.gif" alt="Related dashboard with service map panel" /></p>
<h2>What's new in the APM service map</h2>
<p>Below is a list of the upgrades to the service map:</p>
<h3>Service map embedded on APM alert pages and dashboards</h3>
<ul>
<li>All APM alert detail pages will have the service map embedded to facilitate faster dependency analysis.</li>
<li>There is a new <strong>Service Map</strong> Dashboard panel that you can add to any Dashboard.</li>
</ul>
<h3>Full-screen service map for large architectures</h3>
<p>Open the map in full screen from the APM UI or from a dashboard panel. Full screen gives you more room on large architectures and works the same whether you opened the map from an alert, a service, or a dashboard.</p>
<p><img src="https://www.elastic.co/observability-labs/assets/images/service-map-apm-dependency-analysis/depedencies-fullscreen.gif" alt="Full screen service map mode" /></p>
<h3>Service map controls: search, filters, and orientation</h3>
<p>On the service map in the APM UI and on dashboard embeds, the map toolbar adds controls to move faster on busy environments:</p>
<ul>
<li><strong>Search</strong> — find services by text string</li>
</ul>
<p><img src="https://www.elastic.co/observability-labs/assets/images/service-map-apm-dependency-analysis/depedencies-quickfilter.gif" alt="Service map search, orientation, and filter controls" /></p>
<ul>
<li><strong>Orientation</strong> — switch layout direction when dense graphs are hard to read</li>
</ul>
<p><img src="https://www.elastic.co/observability-labs/assets/images/service-map-apm-dependency-analysis/depedencies-orientation.gif" alt="Service map search, orientation, and filter controls" /></p>
<ul>
<li><strong>Filters</strong> — narrow the map by alert status, whether a service has dependencies, anomaly status, and SLO status</li>
</ul>
<p><img src="https://www.elastic.co/observability-labs/assets/images/service-map-apm-dependency-analysis/depedencies-quickfilters.gif" alt="Service map search, orientation, and filter controls" /></p>
<h3>Service map legend: node shapes, connections, and anomaly scores</h3>
<p>A built-in legend explains node shapes, connection styles, and health indicators on the map. You spend less time decoding colours and icons when you are triaging under pressure.</p>
<p><img src="https://www.elastic.co/observability-labs/assets/images/service-map-apm-dependency-analysis/depedencies-legend.png" alt="Service map with legend open" /></p>
<p>The legend covers node shapes (instrumented services, databases and messaging, grouped resources), connection styles (one-way and two-way requests), and anomaly score colour rings from low through critical:</p>
<p><img src="https://www.elastic.co/observability-labs/assets/images/service-map-apm-dependency-analysis/depedencies-legend-detail.png" alt="Service map legend detail: node shapes, connections, and anomaly scores" /></p>
<h3>Minimap for navigating large service maps</h3>
<p>A minimap helps you orient yourself on large maps. It also highlights anomalous services at a glance, so you can spot outliers without panning across the full graph.</p>
<p><img src="https://www.elastic.co/observability-labs/assets/images/service-map-apm-dependency-analysis/depedencies-minimap.gif" alt="Service map minimap showing anomalous services" /></p>
<h3>RED metrics on connections with drill-through to Traces in Discover</h3>
<p>Select a connection between two services to view <a href="https://www.elastic.co/docs/solutions/observability/apm/metrics">RED metrics</a> for the requests between them: rate, errors, and duration for that specific dependency edge.</p>
<p>From there, open <strong>Traces in Discover</strong> in one click to analyse those requests with full query flexibility. That is how we confirmed shipping was failing the requests checkout sent to it in the walkthrough above.</p>
<p><img src="https://www.elastic.co/observability-labs/assets/images/service-map-apm-dependency-analysis/depedencies-edgeanalysis.gif" alt="Connection RED metrics with one-click to Traces in Discover" /></p>
<h3>Adding the service map to a dashboard from the APM UI</h3>
<p>From the service map in the APM UI, add the current map view to a dashboard in one click. You do not need to rebuild filters or time range settings manually when you want the same map on a team dashboard.</p>
<p><img src="https://www.elastic.co/observability-labs/assets/images/service-map-apm-dependency-analysis/depedencies-add-to-dashboard.gif" alt="One-click add service map to dashboard from APM UI" /></p>
<h2>Service fly-out: preview RED metrics, anomalies and SLOs from the map</h2>
<p>Wherever you view the service map in Kibana, you can open a service fly-out to preview a service without leaving the map.</p>
<p>The fly-out shows:</p>
<ul>
<li><strong>RED metrics</strong> for the service</li>
<li><strong>Anomaly status</strong> — whether machine learning has flagged unusual behaviour</li>
<li><strong>SLO status</strong> — whether the service is meeting its objectives</li>
<li><strong>Transaction breakdown</strong> — how rate, errors, and duration split across transaction types</li>
</ul>
<p>Use it to sanity-check a node before you open the full service page or follow a connection into <strong>Traces in Discover</strong>.</p>
<p><img src="https://www.elastic.co/observability-labs/assets/images/service-map-apm-dependency-analysis/depedencies-fly-out.gif" alt="Service fly-out with RED metrics, anomaly and SLO status, and transaction breakdown" /></p>
<h2>Summary: From APM alert to root cause with the service map</h2>
<p>From a RED metric alert on checkout, the embedded service map showed shipping as the failing downstream dependency. Map controls, connection RED metrics, dashboard embeds, and the service fly-out are available on every map view in Kibana, so you can start dependency analysis wherever you already work.</p>
]]></content:encoded>
            <category>observability-labs</category>
            <enclosure url="https://www.elastic.co/observability-labs/assets/images/service-map-apm-dependency-analysis/depedencies-header.png" length="0" type="image/png"/>
        </item>
    </channel>
</rss>