Profiling

Find the function that's burning your CPU

A flame graph answers what logs and traces can't: which function is actually on the CPU, or holding memory, right now. KloudMate samples your services continuously and turns those samples into a flame graph down to the line.

checkout-api · on-CPU time — KloudMate flame graph KloudMate · Profiling Flame graph · CPU checkout-api · on-CPU time Width is the share of CPU samples runtime.main http.ServeHTTP checkout.Handler catalog.Handler inventory.Lookup json.Marshal db.Query sql.Query reflect.Value net.Read syscall.Read syscall.Read

Traces tell you which service is slow, not why.

A trace stops at the service boundary. Profiling goes inside it and samples the running code, so instead of guessing which function is expensive you see it, ranked by how much CPU or memory it actually used.

What teams can do with Profiling

Sample running services continuously, find the hotspot down to the line, and prove whether a deploy made things better or worse.

Continuous, always-on profiles

Services are sampled continuously at low overhead, so the flame graph for any moment is already there when you need it, no debugger to attach and no build to ship.

Profile CPU, memory, and goroutines

Not just CPU. Profile allocated and in-use memory, object counts, and goroutines too, each as its own flame graph, whatever your SDK collects.

Compare before and after a deploy

The difference view sets two time windows side by side and colors what grew and what shrank, so you can answer "did that change make it worse?" in seconds.

Slice by service and label

Break a service's profiles down by the attributes your SDK attaches, region, pod, or version, to isolate the one instance that's hot.

From a slow service to the line to fix

Start wide across every service, narrow to the one that's hot, then open its flame graph and read the hotspot straight off the widest frame.

01

Send profiles

Add a Pyroscope-compatible SDK, or send through the KloudMate Agent so it attaches the labels that help with root cause.

02

Scan every service

See every reporting service and its peak at a glance, so you start with the outlier instead of profiling all of them.

03

Open the flame graph

The widest frame is the biggest consumer. Zoom into it to reach the specific function and line responsible.

04

Confirm the fix

After you ship, use the difference view to check the hotspot shrank instead of moving somewhere else.

Which service is hot right now — KloudMate Profiling KloudMate · Profiling All services · CPU Which service is hot right now Reporting 18 Type cpu Issue Occurrence trend Status checkout-api peak 71% on-CPU hot catalog-svc peak 39% on-CPU rising search-svc peak 22% on-CPU steady billing-worker peak 14% on-CPU steady

Find the hot service at a glance

Don't guess which service to profile. Every service sending profiles shows its peak and a trend on one screen, so the outlier jumps out before you open a flame graph.

  • Switch profile type, CPU, memory, objects, or goroutines, and see who's hottest
  • Peak and a live trend on every card, so a spike stands out immediately
  • Click straight through to that service's flame graph, already filtered to the type
checkout-api, after the 3pm deploy — KloudMate Difference view KloudMate · Difference view Difference view · CPU checkout-api, after the 3pm deploy Compared against the window before the deploy runtime.main http.ServeHTTP checkout.Handler catalog.Handler inventory.Lookup json.Marshal db.Query sql.Query reflect.Value net.Read syscall.Read slower faster

Spot a regression right after a deploy

Set a before window and an after window, and KloudMate colors what changed: red where a frame grew, green where it shrank. A new hotspot is impossible to miss.

  • Read a regression straight off the graph, no diffing stack traces by hand
  • Grown frames turn red, shrunk frames green, so the change jumps out
  • Catch a fix that just moved the cost somewhere else instead of removing it
From SDK sample to flame graph — KloudMate correlation Ingestion From SDK sample to flame graph 01 Pyroscope SDK
samples the service continuously
02 KM Agent
attaches resource labels
03 KloudMate
Pyroscope or OTel Profiles
04 Flame graph
by service, type, and label
Languages Go · Java · Python · Node .NET, Ruby, and Rust too Overhead continuous, low overhead no debugger, no new build

Send profiles from any language you run

KloudMate speaks the Pyroscope ingest protocol and the OpenTelemetry Profiles signal, so any Pyroscope-compatible SDK works. Send through the KloudMate Agent and it attaches the resource labels that make root cause faster.

  • Go, Java, Python, Node.js, Ruby, .NET, and Rust, each with a dedicated setup guide
  • Ingest over the Pyroscope protocol or OpenTelemetry Profiles, via the agent or straight to the endpoint
  • Correlate a hotspot here with the trace that triggered it, and let Assistant investigate the top functions
KloudMate AI

Ask KloudMate Assistant to read the flame graph for you

Assistant investigates a flame graph's top functions, so you get the hotspot and a direction to fix it without reading every frame yourself.

  • Summarize Name the function taking the most CPU or memory
  • Compare Say what a deploy changed between two windows
  • Guide Point to the trace or line behind the hotspot
Explore platform
What's burning CPU in checkout? — KloudMate Auto-RCA Assistant summary What's burning CPU in checkout? Q
Summarize the top CPU consumer and what changed after the 3pm deploy.
Assistant · likely cause
  • sql.Query → syscall.Read is 30% of on-CPU time, up from 12% before the deploy.
  • The 3pm build added an N+1 query inside inventory.Lookup.
  • Batch the lookup or add the missing index, then open the trace to confirm the call count.
Hotspot sql.Query → syscall.Read 30% of CPU samples Since deploy up 18 points vs the prior window Suggested next view Trace + Difference view same service and window

Get started

From telemetry to root cause,
in one platform.

Connect your OpenTelemetry pipeline, AWS integrations, or eBPF agent. Distributed tracing, log management, alerting, and AI-assisted investigation: unified, with predictable pricing.