AI 인프라에 대한 관찰 가능성: CPU 및 메모리 이상으로 모니터링해야 할 사항

작성자

카테고리:

← 피드로
DEV Community · Sushyam Nagallapati · 2026-08-18 개발(SW)

Thanks for taking the time to read. If you’ve worked with AI infrastructure or observability, I’d love to hear your experience in the comments.

In Part 2 of AI Infrastructure for Cloud Engineers, we looked at how GPUs, scheduling, autoscaling, and model serving change the way AI workloads run on Kubernetes.

Read Part 2: Running AI Workloads on Kubernetes: GPUs, Scheduling, Scaling, and Model Serving

Getting an AI workload into production is only the beginning.

Once users depend on it, the questions change:

  • Is the platform healthy?
  • Are GPUs being used efficiently?
  • Why is inference slowing down?
  • Are requests building up in a queue?
  • Is the model producing tokens fast enough?
  • Which dependency is causing the delay?

A Kubernetes dashboard showing healthy Pods cannot answer all of these questions.

Production AI systems need visibility across infrastructure, accelerators, inference, and the full request path.

Why CPU and Memory Aren’t Enough

Traditional infrastructure metrics still matter.

For Kubernetes, we still need to watch:

CPU
Memory
Pod availability
Pod restarts
Node health
Network
Storage
Request rate
Error rate
Latency

Enter fullscreen mode Exit fullscreen mode

But consider this:

Pods Running:       5/5
CPU Usage:          42%
Memory Usage:       58%
Pod Restarts:       0

Enter fullscreen mode Exit fullscreen mode

Everything looks healthy.

Now look at the AI workload:

GPU utilization:       99%
Inference latency:     Increasing
Queue depth:           Growing
Time to first token:   Increasing

Enter fullscreen mode Exit fullscreen mode

The platform is technically running.

The user experience is still getting worse.

That is the main difference with AI infrastructure observability: you need to connect infrastructure health with model behavior.

The 4 Layers of AI Observability

I find it useful to think about AI observability in four layers:

1. Kubernetes Infrastructure
          ↓
2. GPU / Accelerator
          ↓
3. Model Inference
          ↓
4. End-to-End Request

Enter fullscreen mode Exit fullscreen mode

Each layer answers a different question.

1. Kubernetes Infrastructure

This is the foundation.

Monitor:

Pod availability
Pod restarts
Node health
CPU utilization
Memory utilization
Network
Storage
Deployment health

Enter fullscreen mode Exit fullscreen mode

If inference suddenly becomes slow, you first need to know whether the problem is actually inside the model.

Maybe the Pod is under memory pressure.

Maybe a node has a networking issue.

Maybe the application cannot reach a dependency.

Kubernetes metrics provide that first layer of context.

2. GPU and Accelerator Metrics

GPUs are often among the most expensive resources in an AI platform.

Useful signals include:

GPU utilization
GPU memory usage
Temperature
Power consumption
Device health
GPU errors

Enter fullscreen mode Exit fullscreen mode

For NVIDIA environments, DCGM Exporter can expose GPU telemetry in a Prometheus-compatible format.

A simple monitoring flow might look like this:

GPU Nodes
   ↓
DCGM Exporter
   ↓
Prometheus
   ↓
Grafana

Enter fullscreen mode Exit fullscreen mode

The goal is not just to ask:

Is the GPU busy?

A better question is:

Is the GPU being used efficiently while keeping inference healthy?

For example:

GPU:          95%
Queue:        Low
Latency:      Stable
Throughput:   High

Enter fullscreen mode Exit fullscreen mode

That may be perfectly healthy.

But:

GPU:          95%
Queue:        Growing
Latency:      Increasing
Errors:       Increasing

Enter fullscreen mode Exit fullscreen mode

tells a very different story.

The value comes from correlating signals rather than looking at one metric in isolation.

3. Inference Metrics

Inference metrics tell us what the AI service is actually doing.

The most useful ones include:

Request rate
Inference latency
Time to first token
Tokens per second
Queue depth
Concurrent requests
Model errors
Timeouts

Enter fullscreen mode Exit fullscreen mode

A request may pass through several stages:

Request
   ↓
Queue
   ↓
Model Processing
   ↓
First Token
   ↓
Response Generation
   ↓
Complete Response

Enter fullscreen mode Exit fullscreen mode

That gives us several useful timings:

  • Inference latency: total time to complete the request
  • Time to first token: how long the user waits before seeing the first output
  • Tokens per second: generation speed after inference begins
  • Queue depth: how many requests are waiting for capacity

Queue depth is especially useful as an early warning signal.

Imagine:

09:00 → 2 waiting requests
09:05 → 18
09:10 → 64
09:15 → 140

Enter fullscreen mode Exit fullscreen mode

Nothing has crashed.

But demand is arriving faster than the available inference capacity can handle.

That signal can also feed autoscaling:

Queue grows
    ↓
Scaling signal
    ↓
More inference capacity
    ↓
Queue decreases

Enter fullscreen mode Exit fullscreen mode

This is where AI-specific metrics become operational signals, not just dashboard numbers.

4. Observe the Complete Request Path

A production AI application is rarely just a model.

A request might travel through:

User
 ↓
API Gateway
 ↓
AI Application
 ↓
Model Server
 ↓
Vector Database
 ↓
External Tool
 ↓
Response

Enter fullscreen mode Exit fullscreen mode

If the request takes eight seconds, we need to know where those eight seconds were spent.

Without tracing:

Request duration: 8.2 seconds

Enter fullscreen mode Exit fullscreen mode

With tracing:

API Gateway          40 ms
Application          70 ms
Vector Search       420 ms
Model Inference     6.4 sec
External Tool       950 ms

Enter fullscreen mode Exit fullscreen mode

Now the bottleneck is much easier to identify.

Metrics, Logs, and Traces Work Together

Each observability signal answers a different question.

Metrics

Is something wrong?

Example:

Inference latency increased 40%.

Enter fullscreen mode Exit fullscreen mode

Logs

What happened?

Example:

Model request timed out after 10 seconds.

Enter fullscreen mode Exit fullscreen mode

Traces

Where did it happen?

Example:

Most of the delay occurred during vector retrieval.

Enter fullscreen mode Exit fullscreen mode

Together:

Metric Alert
     ↓
Latency increased
     ↓
Trace investigation
     ↓
Vector search is slow
     ↓
Logs
     ↓
Database connection pool exhausted

Enter fullscreen mode Exit fullscreen mode

That is much more useful than looking at disconnected dashboards.

A correlation ID also helps connect these signals.

{
  "request_id": "req-a91f82",
  "service": "model-server",
  "model": "model-v2",
  "latency_ms": 1840,
  "status": "success"
}

Enter fullscreen mode Exit fullscreen mode

Now the same request can be followed through logs and traces across multiple services.

Avoid logging:

API keys
Access tokens
Passwords
Sensitive prompts
Private customer data
Confidential model responses

Enter fullscreen mode Exit fullscreen mode

Observability should improve visibility without becoming a security risk.

A Practical AI Observability Stack

A simple cloud-native setup could look like:

Kubernetes
   │
   ├── Application Metrics
   ├── GPU Metrics
   ├── Logs
   └── Traces
   │
   ▼
OpenTelemetry / Exporters
   │
   ├── Prometheus
   ├── Log Backend
   └── Trace Backend
   │
   ▼
Grafana
Dashboards
Alerts

Enter fullscreen mode Exit fullscreen mode

The tools may differ between organizations.

The pattern is what matters:

Collect
   ↓
Correlate
   ↓
Visualize
   ↓
Alert
   ↓
Investigate

Enter fullscreen mode Exit fullscreen mode

Build Dashboards Around Questions

A dashboard with dozens of graphs can still be difficult to use.

Instead, build dashboards around operational questions.

Is the platform healthy?

Monitor:

Available replicas
Pod restarts
Node health
Request success rate

Enter fullscreen mode Exit fullscreen mode

Are GPUs healthy?

Monitor:

GPU utilization
GPU memory
Temperature
Power
Device health

Enter fullscreen mode Exit fullscreen mode

Is inference healthy?

Monitor:

Request latency
Time to first token
Tokens per second
Queue depth
Concurrent requests

Enter fullscreen mode Exit fullscreen mode

Where are failures happening?

Monitor:

Errors by model
Errors by provider
Timeouts
Retries
Failed requests

Enter fullscreen mode Exit fullscreen mode

That gives engineers somewhere useful to start during an incident.

Alert on User Impact

Not every metric needs an alert.

For example, 90% GPU utilization does not automatically mean there is a problem.

If throughput is high and latency is stable, the system may simply be using its resources efficiently.

A more useful alert might be:

Queue depth increasing
AND
Inference latency increasing

Enter fullscreen mode Exit fullscreen mode

That points to something users are actually experiencing.

The best alerts are actionable.

Otherwise, teams eventually start ignoring them.

Tenant Visibility Matters

Multi-tenant AI platforms also need visibility by tenant.

Suppose the overall error rate reaches 15%.

That sounds serious.

But the breakdown might be:

Tenant A:  1%
Tenant B:  2%
Tenant C: 78%
Tenant D:  1%

Enter fullscreen mode Exit fullscreen mode

Now the problem looks isolated rather than platform-wide.

This matters when tenants use different:

Model providers
API keys
Quotas
Tools
Workloads

Enter fullscreen mode Exit fullscreen mode

Tenant-level visibility also helps with rate limiting, failure isolation, and capacity planning.

Observability Also Leads Into Cost

GPU utilization is not only a performance metric.

It is also a cost signal.

Consider:

Cluster A
GPU utilization: 82%

Cluster B
GPU utilization: 19%

Enter fullscreen mode Exit fullscreen mode

If both clusters use similar hardware, Cluster B deserves investigation.

Maybe that spare capacity is intentional.

Or maybe the organization is paying for GPUs that spend most of their time idle.

The same applies to:

GPU hours
Tokens generated
Requests served
Model usage

Enter fullscreen mode Exit fullscreen mode

These signals begin to connect infrastructure behavior with spend.

That leads directly into the next part of this series: FinOps for AI.

Practical AI Observability Checklist

Before running an AI workload in production, make sure you can answer:

  • Are Kubernetes workloads healthy?
  • Which GPUs are being used?
  • How much GPU memory is consumed?
  • What is the inference latency?
  • What is the time to first token?
  • How many requests are waiting?
  • Can one request be traced across services?
  • Are alerts tied to meaningful user impact?

If several of these questions cannot be answered quickly, there is probably an observability gap.

What’s Next?

Observability tells us how the infrastructure behaves.

It also reveals something else:

How efficiently are we using the infrastructure we are paying for?

GPU hours, token usage, inference volume, idle capacity, and model selection all affect the economics of an AI platform.

In Part 4, we will look at:

FinOps for AI: Understanding GPU, Token, and Inference Costs

We will break down where AI infrastructure costs come from, why GPU utilization matters financially, and what cloud teams can measure to avoid unnecessary spend.

Final Thoughts

For AI infrastructure, CPU and memory are still important.

They are simply no longer enough.

A production AI platform needs visibility across:

Kubernetes
     ↓
GPU Infrastructure
     ↓
Model Serving
     ↓
Inference
     ↓
Dependencies
     ↓
User Experience

Enter fullscreen mode Exit fullscreen mode

The real value comes from connecting those layers.

Instead of asking:

Why does the AI feel slow?

we want to be able to say:

Queue depth increased because the inference workers reached GPU capacity, which pushed time to first token above our target.

That is the difference between simply monitoring infrastructure and actually understanding the system.

Thanks for Reading

This article is Part 3 of my AI Infrastructure for Cloud Engineers series:

  1. Why Kubernetes Is Becoming the Operating System for AI Infrastructure
  2. Running AI Workloads on Kubernetes: GPUs, Scheduling, Scaling, and Model Serving
  3. Observability for AI Infrastructure: What to Monitor Beyond CPU and Memory
  4. Coming next: FinOps for AI: Understanding GPU, Token, and Inference Costs
  5. Building a Production AI Platform: Kubernetes, GitOps, IaC, Security, and Observability

I regularly share what I learn about cloud infrastructure, Kubernetes, DevOps, SRE, observability, and the engineering behind production AI systems.

LinkedIn: Connect with me on LinkedIn

If you’re operating AI workloads in production, which signal has been most useful for you: GPU utilization, inference latency, time to first token, queue depth, or something else?

원문에서 계속 ↗