惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
博客园 - 司徒正美
小众软件
小众软件
H
Help Net Security
博客园 - 聂微东
宝玉的分享
宝玉的分享
Jina AI
Jina AI
酷 壳 – CoolShell
酷 壳 – CoolShell
阮一峰的网络日志
阮一峰的网络日志
M
MIT News - Artificial intelligence
博客园 - 【当耐特】
U
Unit 42
大猫的无限游戏
大猫的无限游戏
Apple Machine Learning Research
Apple Machine Learning Research
S
SegmentFault 最新的问题
腾讯CDC
MongoDB | Blog
MongoDB | Blog
云风的 BLOG
云风的 BLOG
J
Java Code Geeks
I
InfoQ
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Martin Fowler
Martin Fowler
博客园 - 三生石上(FineUI控件)
Vercel News
Vercel News

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
Agentic Observability: How I Wired a Real App with Dynatr...
Pavan Belagatti · 2026-06-01 · via DEV Community

Every engineering team runs into the same annoying problem sooner or later. Monitoring tells you that something is broken, but it usually stops right there. You can see error rates. You can see latency spikes. You can see failed requests. But the questions that matter during an incident are often still unanswered.

Who owns this service? What depends on it? Where is the runbook? Which Slack channel should I use? Is this a real outage or a known failure mode?

That gap is exactly why I put together this small Agentic Observability demo. I built a tiny shopping app, instrumented it with OpenTelemetry, sent the telemetry into Dynatrace, and then used Port as the context layer so I could connect operational signals with engineering knowledge. The result is a much more useful troubleshooting workflow. Instead of staring at dashboards and guessing, I can ask what is happening and get back both live health data and human context in one place.

This setup is intentionally small, but it maps really well to the kind of confusion that happens in real systems. The app has products, a cart, checkout flow, and a few baked-in failure scenarios so the observability story actually has something interesting to surface.

The real problem with observability today

Traditional observability is good at detection. It can tell me that a service is unhealthy, response times are increasing, or failures are climbing. That is valuable, of course. But during incident response, detection is only the starting point.

The painful part begins immediately after that.

  • I need to know which team owns the service.
  • I need to know the service tier and whether it is business critical.
  • I need to understand upstream and downstream dependencies.
  • I need the right runbook.
  • I need to know how to contact the people who can fix it.
  • I need enough context to understand whether the anomaly is expected, accidental, or part of a test.

This is where Agentic Observability becomes interesting. The goal is not just to collect telemetry. The goal is to make the telemetry actionable by connecting it to the operational and organizational context around the system.

Agentic Observability

The demo architecture at a glance

shop demo

I kept the demo simple on purpose. There are only three major pieces involved, but together they create a much stronger workflow than any single tool would provide alone.

A Flask shopping app that simulates realistic user behavior and failures.
Dynatrace to ingest traces and analyze service health, latency, logs, and errors.
Port as the context layer, storing service ownership, tier, runbooks, Slack channels, and related metadata.

The connection point between the observability platform and the context layer is the MCP connector in Port. I used that to connect the Dynatrace MCP server, which lets Port access live monitoring data while still grounding the experience in engineering context.

That combination is really the whole idea behind this version of Agentic Observability. Dynatrace knows what is happening technically. Port knows what that service means inside the organization.

What I built: a tiny Flask e-commerce app

Tiny shopping app

The application itself is intentionally modest. It is a small e-commerce style service with a few common user actions:

  • Browsing products
  • Adding items to the cart
  • Checking out
  • Viewing orders

It is not meant to be production-grade commerce software. It is just realistic enough to behave like a real service and produce interesting telemetry.

I also added fake traffic and fake failures into the flow. That mattered because I did not want a perfect demo where everything stays green all the time. Real systems fail in messy ways, and a good Agentic Observability setup should help make sense of that mess.

Some checkout flows succeed. Some fail. Some traffic is generated artificially. The point is to create enough activity that the tools have something meaningful to detect and explain.

Step 1: Auto-instrument the app with OpenTelemetry

The first layer is instrumentation. I wrapped the Flask app with OpenTelemetry so requests automatically emit traces. I did not need to write a bunch of custom tracing logic for every endpoint. That keeps the setup cleaner and closer to how I would want to instrument a real service quickly.

Once that was in place, every request moving through the shop could generate telemetry data, including:

  • Request traces
  • Errors
  • Latency information
  • Operational signals around the application flow

This is the foundation. Without it, there is no visibility into what the app is actually doing.

Step 2: Stream traces into Dynatrace

After instrumentation, the traces stream directly into Dynatrace. Dynatrace auto-detects the service and begins tracking the health of the application in real time.

For this demo, that meant I could quickly see:

  • The service showing up as an active monitored workload
  • Traffic spikes from the generated activity
  • Error behavior during intentional checkout failures
  • Latency and service-level patterns over time

This part is classic observability. Dynatrace is doing exactly what an observability platform should do: gather the signals, analyze them, and make abnormal behavior visible.

But again, raw visibility is not the whole story.

shop app

Step 3: Add the missing context in Port

This is where things get a lot more useful.

I modeled the service in Port. Port acts as an agentic developer platform and, in this setup, it works as a context layer over the telemetry coming from Dynatrace. That context includes the kind of information engineers usually have to hunt down manually during an incident.

For the service, I stored details like:

  • Owner of the service
  • Tier or criticality level
  • Environment
  • Runbook
  • Slack channel for communication
  • Dependencies related to the service

This is the missing half of incident response. When a metric turns red, I do not want to begin a scavenger hunt. I want the operational signal and the human context tied together.

agentic observability

How the Dynatrace MCP server fits into the workflow

The Port MCP connector is what ties everything together. I used it to connect the Dynatrace MCP server into Port, which means Port can reach into Dynatrace when needed and pull live monitoring data as part of a contextual query.

That matters because now I am not bouncing between disconnected tools mentally. Instead, Port can combine:

  • Its own service metadata
  • Ownership and operational details
  • Live health information from Dynatrace
  • Relevant answers returned through agentic queries

Port supports multiple data source patterns, including APIs, GitOps, infrastructure-as-code, web integrations, and MCP servers. For this demo, the Dynatrace MCP integration was the key piece because it let me bridge observability data and service context directly.

dynatrace

Running the app and generating failures

Once the shop app was running locally, I exercised the common paths: browse products, add them to the cart, and go through checkout. I also generated some fake user activity and deliberately introduced failures during checkout.

That created the exact kind of mixed operational picture I wanted:

  • Normal requests
  • Confirmed orders
  • Periodic failures
  • Traffic increases over time

orders view

In the orders view, I could see the system state changing as synthetic traffic and failures were happening. In Dynatrace, the service activity became visible as spikes and behavioral changes. That gave me enough signal to test whether the full Agentic Observability flow could actually explain what was going on.

What the agentic query experience looks like

After connecting Dynatrace and Port, I could ask a plain-language question about the service rather than manually piecing everything together from dashboards and documents.

I queried the system about what was happening with the demo service. Port AI, which is the native chat experience inside Port, then began collecting data from both Port and Dynatrace in parallel.

That is an important detail. It was not just answering from one static metadata record. It was combining two different kinds of information:

Entity context from Port, such as owner, tier, environment, runbook, and communication channel
Health metrics from Dynatrace, such as traffic, recent behavior, and failures

That is the essence of Agentic Observability. The system is not merely showing a chart. It is assembling the context needed to reason about the chart.

Port chat

The answer gets a lot more useful than a red metric

Once the query completed, I got back a consolidated view of the service.
It identified the service and surfaced key metadata such as:

  • The owning team
  • The service tier
  • The environment
  • The communication channel
  • The runbook location
  • Whether there were any open incidents
  • Recent traffic behavior over the last couple of hours

That is already a huge improvement over standard monitoring alone. Instead of only knowing that a service is active or unhealthy, I immediately know how that service fits into the engineering organization.

Then I asked a deeper follow-up question about the cause of failures.

The system checked the logs and correlated what it found. The result was actually reassuring: the error was not some mysterious production bug. It was an intentionally hardcoded failure in the demo, resulting in a 500 internal server error during checkout.

That answer is exactly what I wanted to prove. With a good Agentic Observability flow, I should be able to distinguish quickly between:

  • A real incident
  • A synthetic test
  • A known intentional failure mode
  • An unexpected regression

observability with AI

Why this pattern matters for engineering teams

The demo is small, but the bottleneck it addresses is very real.

In many teams, observability data lives in one place, service ownership in another, runbooks in another, incident tools somewhere else, and tribal knowledge in Slack or people’s heads. During an outage, every extra click and every missing piece of context adds delay.

This approach reduces that friction by bringing the pieces together.

Agentic Observability is useful because it helps answer the operational questions that come right after detection:

  • What failed?
  • Why is it failing?
  • Who owns it?
  • What should happen next?
  • Where is the documentation?
  • Is this service connected to other important systems?

Instead of forcing an engineer to manually join that information, the platform can do it for them.

What Port contributes beyond simple metadata

Port context lake

It is easy to think of Port as just a catalog for services, but in this setup it does something more important. It serves as a reliable operational context layer for engineering teams.

Because the service entity in Port includes ownership, deployment-related knowledge, team details, and related service information, Port becomes the right place to anchor agentic queries. Dynatrace provides the live signal. Port provides the meaning around the signal.

That is why the answers become much more actionable. The system is not simply observing. It is interpreting the observation in the context of how the organization actually works.

You can extend the same pattern to other tools

Although this demo used Dynatrace, the broader pattern is not limited to one observability vendor. Port’s MCP connector approach makes it possible to connect multiple developer tools and bring them into the same context-rich workflow.

I specifically called out that the same idea can be extended to tools like:

  • PagerDuty
  • New Relic
  • Other MCP-enabled developer and operations tools

So the bigger idea here is not “use one tool for everything.” The bigger idea is “build a context layer that can speak to the right tools and answer engineering questions with the full picture.”

The data flow behind this Agentic Observability demo

The end-to-end flow for the demo is straightforward:

  • A shopper interacts with the Flask application.
  • OpenTelemetry captures traces as requests move through the system.
  • Dynatrace ingests and analyzes those traces, logs, and errors.
  • The Dynatrace MCP server is connected into Port.
  • Port combines live monitoring data with service context.
  • Agentic queries return an operationally meaningful answer instead of isolated raw metrics.

That pipeline is the practical core of Agentic Observability. Instrument the app, collect the signals, connect the tools, add the missing human context, and let engineers query the system in a way that reflects how incidents actually happen.

architectural flow

What I liked most about this setup

The most useful part was not the dashboard itself. It was the reduction in ambiguity.

When something breaks, I do not want five tabs open and three separate searches just to figure out basic ownership and intent.
I want one place that can tell me:

  • What changed
  • What is unhealthy
  • Whether the failure is real or expected
  • Who needs to be involved
  • What the next step should be

That is why this style of Agentic Observability feels promising. It closes the gap between telemetry and action.

Final thoughts

This demo was intentionally small, but the lesson is not small at all. Good observability should do more than report failures. It should help engineering teams respond with confidence.

Dynatrace handled the telemetry side beautifully. Port added the context that observability platforms often do not have on their own. Connecting the two through the MCP layer created a workflow where I could ask what is happening with a service and get back something genuinely useful.

That, to me, is the practical value of Agentic Observability. It is not just about smarter dashboards or nicer charts. It is about turning system signals into answers that are grounded in ownership, dependencies, documentation, and action.

If you are trying to make incident response less chaotic, this pattern is absolutely worth exploring.