API Monitoring for Microservices: A Practical Guide to Keeping Distributed Systems Healthy

by API Status Check Team

TL;DR

Microservices multiply your API monitoring complexity exponentially. Focus on distributed tracing, per-service health checks, inter-service latency tracking, and cascading failure detection. Use OpenTelemetry for instrumentation, set alerts on the four golden signals, and aggregate status across all services with a tool like API Status Check.

Staff Pick

📡 Monitor your APIs — know when they go down before your users do

Better Stack checks uptime every 30 seconds with instant Slack, email & SMS alerts. Free tier available.

Start Free →

Affiliate link — we may earn a commission at no extra cost to you

API Monitoring for Microservices: A Practical Guide to Keeping Distributed Systems Healthy

Quick Answer: Monitoring APIs in a microservices architecture requires a fundamentally different approach than monitoring a monolith. You need distributed tracing to follow requests across services, per-service health checks, inter-service latency tracking, and cascading failure detection. This guide covers the strategies, metrics, and tools that actually work in production.

You split your monolith into microservices for good reasons—independent deployments, team autonomy, technology flexibility. But you also inherited a monitoring problem that's an order of magnitude harder.

In a monolith, a failing API endpoint means one thing is broken. In microservices, a single user request might touch 5, 10, or 20 services. When something breaks, the failure could originate anywhere in that chain—and it will cascade in ways that make root cause analysis feel like detective work.

This guide gives you a practical, battle-tested approach to API monitoring for microservices that actually scales.

The Four Golden Signals for Microservices

Google's Site Reliability Engineering book defines four golden signals that apply perfectly to microservices API monitoring. Track these for every service:

1. Latency

Measure latency at the percentile level, not just averages. In microservices, latency compounds across the call chain.

  • p50 (median): Your typical user experience
  • p95: Where problems start surfacing for a meaningful number of users
  • p99: Your worst-case realistic scenario
  • p99.9: Tail latency that hints at underlying issues

Why percentiles matter more in microservices: If Service A calls Service B at p99 = 200ms, and Service B calls Service C at p99 = 200ms, the combined p99 for that path could be 400ms+. Latency accumulates across every hop, making percentile tracking critical at each service boundary.

2. Traffic (Throughput)

Monitor requests per second at each service. In microservices, traffic patterns reveal dependency relationships. If the Order Service suddenly gets 10x normal traffic, that's useful context—but knowing which upstream service is generating that traffic is even more valuable.

3. Errors

Track error rates as a percentage of total requests, broken down by:

  • HTTP status codes: 4xx (client errors) vs 5xx (server errors)
  • Application-level errors: Successful HTTP responses that contain error payloads
  • Timeout errors: Requests that never completed
  • Partial failures: Responses where some data is missing due to a downstream service being unavailable

4. Saturation

How "full" is each service? Monitor:

  • CPU and memory utilization per container/pod
  • Connection pool usage (database, HTTP client, message queue)
  • Request queue depth
  • Thread pool utilization

When saturation approaches capacity, latency spikes and errors follow. In microservices, one saturated service creates backpressure across the entire system.


Essential Monitoring Strategies

Distributed Tracing

Distributed tracing is the single most important monitoring capability for microservices. It assigns a unique trace ID to each incoming request and propagates that ID across every service call, creating a complete picture of the request's journey.

How it works:

  1. The API gateway generates a trace ID (e.g., trace-abc123) for each incoming request
  2. Every downstream service includes this trace ID in its logs and passes it to the next service
  3. Each service creates a "span" recording its processing time
  4. A tracing backend assembles all spans into a complete trace

What a trace reveals:

[API Gateway] ──→ [Auth Service: 12ms] ──→ [Cart Service: 45ms]
                                              ├──→ [Inventory Service: 230ms] ⚠️ SLOW
                                              └──→ [Pricing Service: 18ms]
                   ──→ [Payment Service: 340ms]
                   ──→ [Order Service: 25ms]
                   ──→ [Notification Service: 8ms]

In this trace, you can immediately see that the Inventory Service is unusually slow. Without distributed tracing, you'd be checking each service individually, guessing at the cause.

Implementation with OpenTelemetry:

OpenTelemetry (OTel) has become the industry standard for instrumentation. It's vendor-neutral, supported by every major cloud provider, and has SDKs for virtually every programming language. If you're starting fresh, use OTel—it avoids vendor lock-in and is backed by the Cloud Native Computing Foundation.

Health Check Endpoints

Every microservice should expose a health check endpoint. But not all health checks are created equal.

Liveness checks (/health/live): "Is this process running?"

  • Returns 200 if the service is alive
  • Used by orchestrators (Kubernetes) to restart crashed services
  • Should be lightweight—no dependency checks

Readiness checks (/health/ready): "Can this service handle requests?"

  • Checks database connections, cache connectivity, downstream service availability
  • Used by load balancers to route traffic away from unhealthy instances
  • Can return degraded status with details

Deep health checks (/health/deep): "Is everything this service depends on working?"

  • Tests all downstream dependencies
  • Expensive—don't call this on every request
  • Useful for automated monitoring and API status dashboards

Example readiness check response:

{
  "status": "degraded",
  "timestamp": "2026-07-15T10:30:00Z",
  "checks": {
    "database": { "status": "healthy", "latency_ms": 3 },
    "redis": { "status": "healthy", "latency_ms": 1 },
    "inventory-service": { "status": "unhealthy", "error": "timeout after 5000ms" },
    "payment-gateway": { "status": "healthy", "latency_ms": 120 }
  }
}

This structured approach to health checks gives your monitoring system granular visibility into each service's dependency tree—essential for fast root cause analysis.

Circuit Breaker Monitoring

Circuit breakers prevent cascading failures by stopping calls to failing downstream services. But the circuit breaker itself needs monitoring.

Track these circuit breaker metrics for each inter-service connection:

Metric What It Tells You
State (closed/open/half-open) Whether calls are flowing normally
Trip count (last hour) How often the circuit has opened
Failure rate triggering trips Whether your thresholds are calibrated correctly
Time in open state Duration of downstream outages
Rejected request count Traffic impact of circuit breaker activations

When a circuit breaker opens, that's not just a technical event—it means a feature in your product is degraded or unavailable. Connect circuit breaker state changes to your alerting pipeline so your team knows immediately.

Inter-Service Latency Mapping

Create a service dependency map that tracks real-time latency between every pair of communicating services. This is different from individual service latency—it captures the network and serialization overhead between services.

What to track:

  • Median and p99 latency for each service-to-service connection
  • Error rates per connection
  • Request volume per connection
  • Retry rates (high retries indicate instability)

This map becomes your most valuable debugging tool. When a user reports slowness, you can visually identify which connection in the dependency graph is degraded.


Alerting Strategies That Don't Create Noise

Microservices architectures generate massive volumes of metrics. Without thoughtful alerting, your team will drown in notifications and start ignoring them—which is worse than having no alerts at all. This is a core part of API monitoring best practices.

Symptom-Based Alerting (Not Cause-Based)

Don't alert on: "Inventory Service CPU is at 80%" Alert on: "Checkout success rate dropped below 95%"

Symptom-based alerts focus on what users experience. High CPU might be fine if response times are normal. A CPU alert creates noise; a success rate alert demands action.

Multi-Window, Multi-Burn-Rate Alerts

Instead of simple threshold alerts, use burn rate alerting based on your error budget:

  • Fast burn (2% of monthly budget consumed in 1 hour): Page the on-call engineer immediately
  • Slow burn (5% of monthly budget consumed in 6 hours): Create a ticket for investigation
  • Gradual burn (10% of budget consumed in 3 days): Flag in the weekly review

This approach accounts for the fact that brief spikes in microservices are normal (deployments, autoscaling, etc.) while sustained degradation needs attention.

Dependency-Aware Alert Routing

When a downstream service fails, you'll get alerts from every upstream service that depends on it. This creates an alert storm where the root cause is buried under 20 notifications.

Solution: Implement alert deduplication based on the dependency graph. If the Inventory Service triggers an alert, suppress related alerts from Cart Service, API Gateway, and any other service that depends on Inventory. Route the single root cause alert to the team that owns the Inventory Service.


Monitoring External API Dependencies

Your microservices don't just talk to each other—they depend on external APIs too. The Payment Service calls Stripe. The Notification Service calls SendGrid. The Auth Service calls Auth0.

External dependencies are your biggest blind spot because you can't instrument them directly.

How to monitor external APIs in your microservices:

  1. Wrap external calls in instrumented clients that record latency, error rates, and circuit breaker state
  2. Set up independent synthetic monitoring that checks external API availability from outside your infrastructure
  3. Subscribe to vendor status pages and correlate their incidents with your internal metrics
  4. Use an aggregator like API Status Check to monitor all your external API dependencies from a single dashboard and get alerted before outages impact your users

This is where third-party API dependency monitoring becomes essential—microservices amplify the risk of external outages because a single external API failure can cascade through your service mesh.


Recommended Monitoring Stack

Here's a practical monitoring stack for microservices, organized by function:

Instrumentation Layer

  • OpenTelemetry SDKs — Vendor-neutral instrumentation for traces, metrics, and logs
  • Auto-instrumentation agents — Zero-code instrumentation for common frameworks (Spring Boot, Express, Django)

Metrics and Dashboards

  • Prometheus + Grafana — The open-source standard for metrics collection and visualization
  • Datadog / New Relic — Managed alternatives with built-in microservices topology mapping (see our comparison)

Distributed Tracing

  • Jaeger — Open-source, CNCF-graduated tracing backend
  • Zipkin — Lightweight alternative, great for smaller deployments
  • SigNoz — Full-stack open-source observability with native OTel support

External API Monitoring

  • API Status Check — Monitor 200+ external API statuses from one dashboard. Get alerts when dependencies go down before they cascade through your microservices
  • Synthetic monitoring — Complement status page monitoring with active endpoint checks

🔐 API keys scattered across .env files and Slack DMs? 1Password securely stores and shares API tokens, environment variables, and service credentials across your team — with audit logs and rotation reminders.

Incident Management

  • PagerDuty / Opsgenie — On-call routing with microservices-aware escalation policies
  • Slack / Discord integration — Real-time alerts in your team channels (set up Discord alerts)

Implementation Checklist

Use this checklist to build out microservices API monitoring incrementally:

Phase 1: Foundation (Week 1-2)

  • Add health check endpoints (liveness + readiness) to every service
  • Implement OpenTelemetry instrumentation in all services
  • Set up a tracing backend (Jaeger or equivalent)
  • Create a basic Grafana dashboard showing the four golden signals per service

Phase 2: Inter-Service Visibility (Week 3-4)

  • Generate a service dependency map from trace data
  • Implement circuit breakers on all inter-service calls
  • Add circuit breaker state monitoring and alerting
  • Track inter-service latency percentiles (p50, p95, p99)

Phase 3: External Dependencies (Week 5-6)

  • Identify all external API dependencies per service
  • Set up API Status Check for external API monitoring
  • Wrap external API clients with instrumentation
  • Implement fallback behavior for critical external dependencies

Phase 4: Intelligent Alerting (Week 7-8)

  • Define SLOs (Service Level Objectives) for each service
  • Implement burn-rate alerting based on error budgets
  • Set up dependency-aware alert deduplication
  • Create runbooks for the top 10 most common alert scenarios

Common Anti-Patterns to Avoid

❌ Monitoring Individual Services in Isolation

You can't understand microservice health by looking at each service independently. A service might report 100% health while returning stale cached data because its upstream dependency is down.

❌ Using Averages Instead of Percentiles

Average latency of 50ms sounds great—until you realize the p99 is 2 seconds. Averages hide the tail latency that impacts real users, especially in deep service call chains.

❌ Alerting on Every Metric

More alerts doesn't mean better monitoring. It means more noise. Alert on symptoms (user-facing impact) and investigate causes through dashboards and traces.

❌ Ignoring Inter-Service Network Latency

The network between services is a critical component that's easy to overlook. DNS issues, mTLS overhead, load balancer misconfiguration—these network-layer problems won't show up in application-level metrics.

❌ Skipping External Dependency Monitoring

Your microservices might be perfectly healthy while your product is broken because Stripe or Auth0 is having an outage. Monitor your external dependencies just as rigorously as your internal services.


Key Takeaways

Microservices API monitoring isn't just "more monitoring"—it's a fundamentally different discipline that requires:

  1. Distributed tracing as the backbone of your observability strategy
  2. Structured health checks (liveness, readiness, deep) for every service
  3. The four golden signals (latency, traffic, errors, saturation) tracked per service
  4. Circuit breaker monitoring to prevent and detect cascading failures
  5. Dependency-aware alerting that surfaces root causes, not symptoms
  6. External API monitoring through a tool like API Status Check to cover your blind spots

The teams that get microservices monitoring right don't just detect outages faster—they prevent them. Invest in observability early, and your microservices architecture will deliver on its promise of reliability and agility.


Need to monitor the APIs your microservices depend on? API Status Check tracks 200+ API status pages in real time, so you know when an external dependency goes down before it cascades through your services. Check it out →

🛠 Tools We Use & Recommend

Tested across our own infrastructure monitoring 200+ APIs daily

Better StackBest for API Teams

Uptime Monitoring & Incident Management

Used by 100,000+ websites

Monitors your APIs every 30 seconds. Instant alerts via Slack, email, SMS, and phone calls when something goes down.

We use Better Stack to monitor every API on this site. It caught 23 outages last month before users reported them.

Free tier · Paid from $24/moStart Free Monitoring
1PasswordBest for Credential Security

Secrets Management & Developer Security

Trusted by 150,000+ businesses

Manage API keys, database passwords, and service tokens with CLI integration and automatic rotation.

After covering dozens of outages caused by leaked credentials, we recommend every team use a secrets manager.

SEMrushBest for SEO

SEO & Site Performance Monitoring

Used by 10M+ marketers

Track your site health, uptime, search rankings, and competitor movements from one dashboard.

We use SEMrush to track how our API status pages rank and catch site health issues early.

From $129.95/moTry SEMrush Free
View full comparison & more tools →Affiliate links — we earn a commission at no extra cost to you

Alert Pro

14-day free trial

Stop checking — get alerted instantly

Next time your critical APIs goes down, you'll know in under 60 seconds — not when your users start complaining.

  • Email alerts for your critical APIs + 9 more APIs
  • $0 due today for trial
  • Cancel anytime — $9/mo after trial