APM Services

Overview

After instrumenting your application, use the APM Services pages to see the health of every service, drill into one service in detail, visualize how services depend on each other, and review the errors they produce. For how service identity works, and the metrics that power these pages, see Metrics for APM and Traces.

Service List

The Services page is the primary entry point into APM: a table of every instrumented service in your environment, sorted by request volume, with request rate, latency, error rate, and Apdex for the selected time range. Click any row to open that service’s Service detail page.

Some examples of services:

  • A group of URL endpoints grouped together under an API service

  • A group of database queries grouped together as one database service

  • A group of periodic jobs configured as a cron service

Click APM in the top navigation, then Service List under Services.

The table has two tabs:

  • Table (default) — one row per service.

  • Databases — one row per database connection (Postgres, Redis, and so on). Database calls get their own row here instead of being folded into the calling service’s numbers, so a slow query is visible on its own.

Each row shows:

Column What it shows

Name

The service name. Duplicate service names are common, so Kloudfuse also shows the distinguishing facets (environment, namespace, region, and so on) under the name, and a color bar indicating span type. Hover a row to see the full facet values.

Requests / Requests/s

Total request count, or request rate, for the selected time range.

p50 / p99 Latency

Median and 99th-percentile latency. Use COLUMNS to add p75, p90, p95, min, max, or average latency.

Max Latency

The single slowest request in the time range.

Error %

Percentage of requests that returned an error.

Apdex

The Application Performance Index score for the service (0–1); see APDEX score.

Use Search services to find a service by name, and the COLUMNS button to choose which of the columns above are shown.

The facet panel on the left narrows the table by span type, language, version, and any Infrastructure, Cloud, or Additional labels attached to your services — see Filtering traces for the full list of filterable attributes; the same facets apply to Services, Databases, Service Map, and Traces. Use the time range picker (top right, default Last 1 hour) to change the window the table’s metrics are computed over, and Refresh to re-run the query.

Service detail

Open a service’s detail page by clicking its row in the Service List, the Databases table, or a node in the Service Map. This page is where you go from "this service looks unhealthy" to the specific span, deployment, or dependency causing it — see Using APM: Monitoring, Debugging, and Alerting for the full workflow.

At the top of the page:

  • The service selector (breadcrumb) lets you switch to a different service without going back to the list.

  • No SLO + / an existing SLO badge — click to add or view an Availability or Latency SLO for this service.

  • ASM not enabled / an ASM badge — Application Service Monitoring status for this service.

  • No APM alerts * / an alert count badge — click * to open the alert wizard already scoped to this service; see Create an APM alert and Alerting on APM signals.

  • The time range picker (default Last 1 hour) and Refresh.

Summary charts

Four summary numbers — Requests/s, P99 Latency, Error Rate, Apdex — and four charts sit above the tab strip and apply to the whole service regardless of which tab is selected below:

  • Requests/s — request throughput over time.

  • Error Rate — percentage of requests returning an error, over time.

  • Latency P99 — the drop-down lets you switch to p50/p75/p90/p95/average/max/min.

  • Execution Time Breakdown — a stacked chart showing how much of total execution time each downstream service / span_type combination accounts for. Use this to see, at a glance, whether a slowdown is coming from the service’s own code or from a call it makes to another service or database.

Tabs

Below the summary charts, a tab strip breaks the same three metrics (Requests/s, Latency, Error Rate) down by a different dimension per tab, plus a few tabs with their own dedicated content.

Span Names

The default tab. Breaks Requests/s, Latency, and Error Rate down by span_name — the individual operations (endpoints, queries, jobs) this service performs. Use this to find which specific operation is slow or erroring, rather than the service as a whole.

Deployments

Breaks the three metrics down by service_version. If a regression started after a rollout, the bad version’s line diverges from the others here — this is usually the fastest way to confirm or rule out a deployment as the cause.

Downstream

Breaks the three metrics down by the services this service calls. A latency or error problem that only appears here (and not in Span Names) usually means the root cause is downstream, not in this service’s own code.

Upstream

The mirror of Downstream: breaks the three metrics down by the services that call this one. Use it to see whether a problem is isolated to traffic from one caller.

Service Map

An embedded Service Map scoped to this service and its immediate neighbors.

Errors

A table of the error groups produced by this service in the selected time range, with language, trend sparkline, occurrence count, and first/last seen. Click an error group to see the traces behind it.

Infra

Correlates this service’s health with the Kubernetes infrastructure it runs on, in three sub-tabs — Pods, Nodes, Volumes. Each sub-tab includes outlier panels (for example, Outliers Pod - Requests/Sec, Outliers Pod - Errors, Outliers Pod - P90 Latencies) that surface the specific pods deviating from the rest of the fleet, so you can tell a code problem from a resource problem without leaving APM.

Runtime

Language-runtime metrics for the service — memory (including Resident Memory Size, broken down and top-10), plus garbage collection, goroutine/thread counts, and other runtime metrics depending on the instrumented language.

SLOs

Shows SLO burn for any Availability or Latency SLOs configured for this service (via the No SLO + control in the header). If none are configured, this tab reports "No SLOs configured for this service."

Traces

The Traces Explorer, pre-filtered to this service, so you can jump straight from an aggregate metric to an individual request.

Logs

Log lines correlated to this service for the selected time range, without leaving the page.

Report

A Performance / SLA table, optionally broken down by span_name, summarizing the service’s request volume, latency, and error rate for reporting purposes.

Service Map

The Service Map is a graphical workflow representation of all services in the deployment. It visualizes the relationships and dependencies between every instrumented service, so you can see how services communicate and spot bottlenecks or failure points without reading through a table.

Click APM in the top navigation, then Service Map under Services. You can also open a map scoped to a single service from the Service Map tab on that service’s Service detail page.

Each node is a service; edges are calls between them. Node size reflects traffic volume, and node color reflects health (error rate). Use this to spot, at a glance, which services are hot (large nodes) and which are unhealthy (colored nodes) before drilling into a table.

  • Vertical / Horizontal — switch the layout orientation of the graph.

  • Options — configure what the map displays (for example, node sizing metric).

  • Legend — shows what node color and size represent.

  • The minimap in the bottom-right corner shows your current viewport within the full graph; use it to navigate a large topology.

  • Use the + / - controls, or scroll, to zoom; drag to pan.

Use the facet panel on the left to narrow the map to a subset of services — see Filtering traces for the available facets. Select Show filters / Hide filters to expand or collapse the panel.

Click a node to open its Service detail page.

Errors

The Errors page groups every error seen across your instrumented services into distinct error groups — one row per unique error signature, rather than one row per occurrence — so a burst of the same failure shows up as a single row with a rising occurrence count instead of flooding the table.

Click APM in the top navigation, then Errors under Services. To see errors scoped to a single service, open that service’s Service detail page and click its Errors tab instead.

A chart at the top plots error occurrences over the selected time range. Below it, the Error Groups table lists:

Error

The error type and message (for example, an exception class and its message), plus the source file and line where it originated when available.

Language

The language of the service that raised the error.

Trend

A sparkline of occurrences over the time range.

Occurrences

Total number of times this error group was seen.

Last seen / First seen

Relative timestamps for the most recent and earliest occurrence in range.

Click an error group’s name to open the traces that produced it. Use the facet panel and time range picker the same way you would on the Service List to narrow the table.

Service identity

Kloudfuse has a configurable Service Identity tool to provide logical separation of services based on multiple configurable labels. For example, the platform distinguishes "Service A" that runs in the production environment from "Service A" that runs in the staging environment by including the environment label in the Service Identity Labels configuration. This is why the Service List and Service Map can show multiple rows or nodes with the same service name — each one is a distinct combination of identity labels.

The default configuration identifies services through multiple labels: availability_zone, cloud_account_id, kube_cluster_name, kube_namespace, project, region, kf_platform, and service_name.

Plan the service identity configuration carefully to correctly define the granularity for tracking service-level metrics in the Kloudfuse system.

For how Kloudfuse turns span data into the metrics that power these pages, see Metrics for APM and Traces.