Pinpoint APM
Application performance management for large-scale systems
Pinpoint is an open-source application performance management tool for large-scale distributed systems written in Java, PHP, and Python. It traces transactions across components to diagnose performance issues.
Key features
- Distributed transaction tracing
- Application topology maps
- Real-time monitoring
- Agent-based instrumentation
Pros & cons
Strengths
- Detailed call-stack tracing
- Good for large JVM systems
Trade-offs
- Heavy infrastructure needs
- Complex setup
Pinpoint APM replaces
Last reviewed Aug 26, 2026 · 912 words
Pinpoint is the APM you choose when you run a fleet of Java services, you want a New Relic-grade call tree for every slow request, and you have someone willing to operate HBase. That last clause is the decision. Pinpoint's storage is Apache HBase, which brings ZooKeeper and Hadoop-family operational habits with it, and the catalogue's 2 GB minimum is the smallest stack that boots, not the one you would run. For a single application or a small team the lighter tools below give you 80% of the picture at a tenth of the weight.
What a trace shows that metrics and logs do not
A metric tells you the checkout endpoint's p99 went from 200 ms to 3 seconds at 14:07. A log tells you something threw. A distributed trace shows you that the 3 seconds were 40 sequential calls to Redis from inside a loop that should have been one pipelined call, and it shows you that on a screen where you clicked the slow dot. Pinpoint's two headline views are the server map, an auto-discovered topology of which service calls which, with error rates on the arrows, and the scatter chart, where every request is a dot by time and duration and dragging a box over the slow ones opens their call trees. Naver built it in 2015 to run their own portal, and that heritage shows: it is designed for hundreds of instances and it holds up there. The 13,800 GitHub stars are mostly from JVM shops.
Agents are Pinpoint's own, not OpenTelemetry
Instrumentation is a Java agent: add -javaagent:/opt/pinpoint/pinpoint-bootstrap.jar -Dpinpoint.agentId=order-1 -Dpinpoint.applicationName=order-service to the JVM's flags and restart. The agent rewrites bytecode at load time to trace the frameworks it knows, which covers the mainstream Java ecosystem well, and the project's own figure for overhead is low single-digit percent. PHP and Python agents exist, as the catalogue notes, and are less complete than the Java one. The important architectural fact is that these agents speak Pinpoint's protocol to Pinpoint's collector. It is not an OpenTelemetry backend; if your services already export OTLP, Pinpoint is the wrong shape and SigNoz or Jaeger accept that data directly. Go with Pinpoint when you have JVMs you cannot or will not re-instrument and want depth from the agent alone.
The HBase tax, itemised
The moving parts are the agents, a Collector that receives spans and stats over gRPC on ports 9991 to 9993, the Web UI on 8080, HBase for storage, and ZooKeeper for HBase and for the collector to find agents. HBase is where the weight lives. It is a distributed database designed for a cluster of machines, it wants heap measured in GB, and its compaction and region-splitting behaviour is a specialist topic. In exchange it absorbs enormous write rates, which is precisely why Naver chose it. Retention is a TTL on the HBase tables, and the disk it consumes scales with request volume rather than service count, so a busy API generates a lot of it. If the phrase "region server" does not mean anything to you today, budget time to learn it or pick a tool that stores in ClickHouse or Elasticsearch instead.
Quickstart in Compose, then decide honestly
The pinpoint-docker repository ships a docker-compose.yml that starts ZooKeeper, HBase, the collector, the web UI and a sample application already instrumented. docker compose up and a coffee later the server map has a demo service on it, and that is the fastest way to find out whether the views are what you want. Treat it as a demo. The single-node HBase in that file is fine for evaluation and wrong for anything you rely on; a real deployment moves HBase onto its own machines with proper heap and storage, and that is the bare-metal path the catalogue lists. Expect the compose stack to want more than the 2 GB floor once real traffic arrives.
The lighter options, by what you keep
SigNoz gives traces, metrics and logs in one UI on ClickHouse, accepts OpenTelemetry from any language, and runs on one decent box. Jaeger is traces only, with pluggable storage, and is the minimal answer if metrics already live in Prometheus and Grafana. Apache SkyWalking is the closest sibling to Pinpoint: also agent-based, also strong on Java, also with a topology map, but with Elasticsearch or BanyanDB storage that most people find easier than HBase. Anyone leaving New Relic should trial SigNoz first and reach for Pinpoint only if the Java call trees are the feature they miss. The monitoring category has the full field.
What I'd do
For fewer than 20 services, SigNoz with the OpenTelemetry Java agent, and I would not think about Pinpoint again. For a real JVM fleet, dozens of services on hundreds of instances, with an existing Hadoop or HBase competence on the team, Pinpoint is a legitimately excellent tool and I would run the compose quickstart for a week to confirm the views, then build the HBase cluster properly rather than growing the demo. Either way, instrument one service first and look at a real slow trace before committing the infrastructure; the value of APM is obvious in the first 10 minutes or it is not there.
Compare Pinpoint APM
6 head-to-head comparisons.
Similar monitoring & status apps
Uptime Kuma
Monitoring & StatusEasy self-hosted uptime monitoring tool
Replaces Pingdom, UptimeRobot
Netdata
Monitoring & StatusReal-time per-second infrastructure monitoring
Replaces Datadog, New Relic
Grafana
Monitoring & StatusOpen observability dashboards and visualization
Replaces Datadog
Prometheus
Monitoring & StatusMetrics-based monitoring and alerting toolkit
Replaces Datadog
Glances
Monitoring & StatusCross-platform system monitoring at a glance
Replaces Datadog
InfluxDB
Monitoring & StatusPurpose-built time series database for metrics and events
Replaces Datadog, AWS Timestream