---
title: "APM"
description: "Explore Middleware APM overview to monitor, trace, and analyze your application performance efficiently with end-to-end insights."
section: "APM"
breadcrumb: "APM"
canonical: "https://docs.middleware.io/get-started/apm"
---
# APM

APM traces a request across every service it touches, then keeps the profile, the logs and the host metrics attached to that same trace. You instrument once per service — with an agent for most languages, or manually where no agent exists — and the correlation comes from request context, not from you tagging things by hand.

**New to APM here? Start with these three.** About 25 minutes end to end.

1. [**Instrument your first service**](/get-started/apm/java) — Pick your language, attach the agent, see one trace
2. [**Read a trace in the Service Map**](/features/apm/services) — What a span, a parent and a resource attribute mean here
3. [**Set sampling before you scale up**](/features/apm/traces#trace-statistics-&-adaptive-sampling) — How sampling shapes trace statistics, and when to turn adaptive sampling off

## Overview

The Application Performance Monitor (APM) section provides essential information for seamless installation and configuration of our APM, setting the stage for enhanced application monitoring and performance optimization.

Our APMs provide a wide range of monitoring solutions tailored to many environments and technologies, all designed to empower users with real-time insights into their applications' performance and help rectify issues swiftly.

## Instrument a language

Check the [APM Support Matrix](/apm/support-metrics) for supported languages, runtime versions, frameworks and instrumentation methods.

Our APMs provide a wide range of monitoring solutions tailored to many environments and technologies, all designed to empower users with real-time insights into their applications' performance and help rectify issues swiftly.

- [Java](/get-started/apm/java) (agent)
- [Node.js](/get-started/apm/nodejs) (agent)
- [Python](/get-started/apm/python) (agent)
- [Go](/get-started/apm/go) (manual)
- [.NET](/get-started/apm/dotnet) (agent)
- [PHP](/get-started/apm/php) (agent)
- [Ruby](/get-started/apm/ruby) (agent)
- [Next.js](/get-started/apm/nextjs) (agent)
- [Vercel](/integrations/vercel-integration) (agent)
- [Deno](/get-started/apm/deno) (manual)
- [Scala](/get-started/apm/scala) (agent)
- [Cloudflare](/get-started/apm/cloudflare) (manual)

## Work with traces

- [Trace Explorer](/features/apm/traces) — Search traces and inspect every span in a request
- [Service Map](/features/apm/services) — The dependency graph, built from real service paths
- [Continuous Profiling](/features/apm/profiling) — CPU and allocation profiles, attached to the trace
- [Endpoints Observability](/features/apm/endpoint-monitoring) — Per-route latency, error rate and throughput

<!--

## Related modules

- [Logs Management](/features/logs) — Search, filter and alert on logs from every service
- [Infrastructure](/features/infrastructure) — Hosts, containers and Kubernetes metrics in one place
- [Dashboards](/features/dashboards) — Build shared views from your traces and metrics
- [Alerts](/features/alerts/manage-alerts) — Get notified when latency or error rates move
