PHP/Python 应用需改用独立的 pinpoint-c-agent 探针仓库;部署到 Kubernetes 需使用单独的 pinpoint-kubernetes 项目;各框架插件支持的版本范围需查阅 Agent Plugins 目录确认

pinpoint
pinpoint-apmApache-2.0活跃维护面向大规模分布式系统的应用性能管理工具,通过分布式追踪和监控,帮你定位跨服务调用中的性能瓶颈。
APM, (Application Performance Management) tool for large-scale distributed systems.
README 未给出具体安装命令,仅指向 Quick-start guide 与 Installation guide 文档README 未说明
面向大规模分布式系统的 APM 工具,通过无侵入探针追踪跨应用事务,帮你看清调用拓扑和瓶颈
面向大规模分布式系统的应用性能管理工具,通过分布式追踪和监控,帮你定位跨服务调用中的性能瓶颈。
核心能力
- 用 ServerMap 可视化组件互联拓扑与节点状态
- 实时监控应用内活跃线程数
- 用散点图展示请求量与响应模式,可拖拽查看明细
- 提供代码级调用栈,定位瓶颈与失败点
- 探针无需改代码,资源开销约增加 3%
容易踩的坑
- v4.0.1最新正式版2026-11-09 · 2026-11-09 06:39 UTC
Improvements
[Agent] Enhanced Reactor tracing — propagate unsampled traces across publishOn, subscribeOn, delay, and interval (#14604) [Agent] Propagate unsampled traces across Reactor subscribe and retry (#14594) [Agent] Propagate unsampled traces across coroutine dispatch (#14592) [Agent] Added user-supplied URI template support for URI stat in the Jetty plugins (#14546) [Agent] Added serviceName to the span event ContextData [Collector] Apply the durability setting to SpanChunk (#14544) [Web] Added a search box to the sidebar service selector [Web] Added a search box to the server map service selector [Web] Switched the alarm modules from thymeleaf to thymeleaf-spring6 (#14534)
Bug Fixes
[Agent] Fixed a class retransform issue by keeping the original constant pool indices when rewriting a class from its class file (#9246) [Agent] Fixed a Base64 decoding compatibility issue by downgrading commons-codec to 1.22.1 (#14605) [Agent] Fixed an unnecessary retransform by skipping Spring beans that declare no method to intercept [Agent] Fixed the trace block depth in DisableTrace and DisableChildTrace traceBlockEnd() [Web] Fixed the DEFAULT servicemap not applying the search option (#14600) [Web] Fixed the server map right-click handlers to read the latest disableMenu state [Web] Fixed the Apdex hover popup to attach to the side of the node that has room [Web] Fixed the Apdex and service group popups disappearing when the server map menu is disabled [Web] Fixed an extra drawer scroll when viewing servers [Web] Fixed the group-by remove button showing when the error table cannot remove a group [Web] Fixed focus to return to the service search box with ArrowUp from the first result
Security
[Agent] Bumped fastjson from 1.2.83 to 1.2.84 to fix CVE-2026-16723 (RCE under the default configuration) (#14584) [Web] Bumped handlebars, storybook, and shell-quote to fix critical vulnerabilities [Web] Bumped vite, zod, and transitive dependencies to fix high vulnerabilities [Web] Bumped postcss-selector-parser to 7.1.7 to fix a moderate vulnerability [Web] Reported by @Hamaecco: Reject admin API calls when admin.password is not set (#14533)
Dependency Updates
[Build]
- Spring Boot 3.5.14 → 3.5.16
- Spring Framework 6.2.18 → 6.2.19
- Spring Security 6.5.10 → 6.5.11
- Spring Batch 5.2.5 → 5.2.6
- Spring Data 3.5.11 → 3.5.13
- Spring Cloud 4.3.0 → 4.3.3
- Spring Kafka 3.3.15 → 3.3.16
- Spring Retry 2.0.12 → 2.0.13
- Spring Shell 3.4.2 → 3.4.3 [Build]
- log4j2 2.25.4 → 2.25.5
- jackson 2.21.4 → 2.21.8
- snakeyaml 2.4 → 2.7
- bouncycastle 1.81 → 1.86
- httpclient5 5.4.4 → 5.6.5
- tomcat-embed 10.1.55 → 10.1.61
- snappy-java 1.1.10.4 → 1.1.10.12 [Build]
- oshi-core 6.9.1 → 7.7.3
- jna 5.18.1 → 5.19.1
- zstd-jni 1.5.7-16 → 1.5.7-25
- HikariCP 7.0.1 → 7.1.0
- commons-lang3 3.18.0 → 3.21.0
- commons-io 2.20.0 → 2.22.0
- commons-codec 1.17.1 → 1.23.0
- commons-pool2 2.12.0 → 2.13.1
- commons-collections4 4.4 → 4.6.0
- hamcrest 2.2 → 3.0
Downloads
Binaries are attached to this release:
- pinpoint-agent-4.0.1.tar.gz
- pinpoint-batch-4.0.1-exec.jar
- pinpoint-alarm-batch-starter-4.0.1-exec.jar
- pinpoint-collector-4.0.1-exec.jar
- pinpoint-collector-starter-4.0.1-exec.jar
- pinpoint-web-4.0.1-exec.jar
- pinpoint-web-starter-4.0.1-exec.jar
What's Changed
- [#14502] Prepare 4.0.1-SNAPSHOT by @intr3p1d in https://github.com/pinpoint-apm/pinpoint/pull/14505
- [#noissue] Update the live demo address by @jaehong-kim in https://github.com/pinpoint-apm/pinpoint/pull/14509
- [#14521] Dispatch only the release id to pinpoint-apm.github.io by @feelform in https://github.com/pinpoint-apm/pinpoint/pull/14522
- [#noissue] Document the authorization scope of basic login by @ga-ram in https://github.com/pinpoint-apm/pinpoint/pull/14506
- [#14510] Bump spri
- v4.0.04.0.0 release2026-10-28 · 2026-10-28 10:51 UTC
查看更新说明
Pinpoint 4.0.0 is a major release that opens the 4.x line. It has three highlights:
- Service, now on by default, groups applications so that each team can focus on its own service.
- OpenTelemetry Trace Support brings applications instrumented with OpenTelemetry into Pinpoint without the Pinpoint agent.
- Service Alarm is a renewed alarm system built around services. New Alarm Templates make it easy to set up the same alarms for many applications.
It also adds Spring Boot 4.1 / Spring Framework 7.0 support and includes the agent-stability work that shipped in 3.1.1.
This release changes defaults and removes several legacy code paths, so please read the Upgrade guide before upgrading in place from 3.1.x.
Highlights
Service (enabled by default)

Pinpoint 4.0.0 introduces the Service feature. You can group several applications into one service and see how services call each other on the Service Map. Screens that support the service feature show only the data of the applications in the selected service.
- Monitoring: Focus on the data of the service you own and find the cause of a problem faster.
- Operations: As applications grow, group them by service to keep the monitoring targets clear.
Monitoring targets form a
Service → Application → Agenthierarchy. Thedemo-shop-commerceservice of the demo shopping mall looks like this:Service: demo-shop-commerce products and orders ├─ Application: Shopping-Order order processing │ ├─ Agent: shop-order-01 │ └─ Agent: shop-order-02 └─ Application: Shopping-Product product lookup └─ Agent: shop-product-01Data that is not assigned to a service, such as data collected before the upgrade or sent by agents older than 4.0.0, stays in the
DEFAULTservice. Creating a new service does not move existing data into it. To use the service feature, create the service in the Web first, then setpinpoint.serviceNameon the agents (see Agent). See the Service guide for details.OpenTelemetry Trace Support
Pinpoint 4.0.0 receives OpenTelemetry traces directly. Applications instrumented with the OpenTelemetry Java agent, any OTel SDK, or the OpenTelemetry Collector appear in the same server map, transaction list and call tree as agent-collected data, without the Pinpoint agent.
-
OTLP over gRPC and HTTP Traces are accepted over gRPC and over HTTP in both protobuf and JSON, with gzip and standard OTLP responses. Span time keeps nanosecond precision (#13923).
-
URL Statistic and Error Analysis URL Statistic is built from OTel server spans using the route template (#14229). Exceptions recorded on OTel spans flow into Error Analysis with multi-language stacktrace parsing (JVM, Go, Node.js, Python) and grouping by route (#14233). SQL text is shown in the call tree.
-
Server map and service map links Caller → callee edges between OTel-instrumented applications are drawn from a
ppentry in the W3Ctracestateheader, written by the sender via pinpoint-otel-extension (OpenTelemetry Java agent extension, plus guides for Java SDK, Python, Go and Node.js). When the caller cannot propagate it, the collector and a batch job join the two sides and fill in the edge (#14453). OTel span links open the linked transaction (
- v3.1.13.1.1 release2026-10-02 · 2026-10-02 06:04 UTC
查看更新说明
Pinpoint 3.1.1 is a maintenance release of the 3.1.x line. It focuses on agent stability and overhead on reactive and coroutine workloads (Reactor / WebFlux / reactor-netty / Kotlin coroutines), Spring Framework 7 compatibility, and security hardening of the Web and Batch modules. There are no schema changes; collector and web can be upgraded in place from 3.1.0.
Highlights
Agent — Reactor megamorphic-dispatch remediation (JDK 21/25)
Backport of the master track that remediates the JIT megamorphic
invokeinterfacedispatch observed on reactive applications running on recent JDKs (C2 profile pollution across the generic reactorCoreSubscriberinstrumentation).- The reactor
AsyncContextcarrier is unified into a single injected field, so the hot interceptors no longer go through polymorphic accessor lookups. - Each interceptor class now gets a generated monomorphic exception-guard wrapper instead of sharing one reflective guard. The code generation is enabled by default:
# pinpoint.config (local / release profiles) profiler.interceptor.exception.guard.codegen=true # set false to fall back to the 3.1.0 guard - The generic reactor
CoreSubscriberinstrumentation can be switched off for a lightweight mode (profiler.reactor.subscriber.instrument=false, defaulttrue). Publisher-seam wrapping and scheduler-task tracing stay behind config gates that are off by default (profiler.reactor.trace.scheduler.task,profiler.reactor.trace.scheduler.task.periodic). DefaultAsyncTraceContext/DefaultRecorderFactoryno longer call the GuiceProvider.get()chain on every trace request; the singleton factories are injected or memoized (#14210).
Agent — "Corrupted call stack" storms fixed and throttled
Three layers address the
Corrupted call stack found ... call stack is emptylog floods (and the CPU spikes that came with them) reported on reactor-netty / WebFlux services:DefaultCallStack.peek()returns the disabled instance while overflowed frames are outstanding, instead ofnull, so a transaction that exceedsprofiler.callstack.max.sequenceno longer logs a stack dump per span event (#14310).OnErrorSubscriberInterceptor(onErrorResume/onErrorReturn/onErrorMap/onErrorComplete) carries itsTraceBlockfrombefore()toafter()instead of looking theAsyncContextup twice, which closed a frame nobody opened on every failingWebClientresponse (#14319).- The corrupted-call-stack WARN and stack dump are throttled to one per 3 s per trace type; suppressed dumps are counted and reported on the next emitted one, and skip the exception construction entirely.
Agent — Kotlin coroutines
ResumeWithInterceptorkeeps the span event opened inbefore()and closes exactly that one inafter(), so a nested Reactor callback swapping the current trace duringBaseContinuationImpl.resumeWith(...)no longer leaves unbalanced blocks (previously surfacing as corrupted call stacks on the parentChildTrace).Agent — Spring Framework 7 compatibility
- WebFlux and RestTemplate header adaptors no longer throw
NoSuchMethodErroron Spring Framework 7, whereHttpHeadersstopped implementingMultiValueMap(#14278). - The RestTemplate plugin matches the new
RestTemplate(Iterable<HttpMessageConverter<?>>)constructor, so RestTemplates built by Spring Boot 4 / Framework 7 are traced again.
Agent — Plugin fixes
- Redisson: reactive command tracing works on Redisson 3.17+ and 3.19+ (
ReactiveProxyBuildercallback signature changes); it had been silently inactive on modern versions. - reactor-netty / netty HTTP client:
HttpClientRequestWrapper.toRemoteHost()andHttpClientHandlerRequestWithBodyInterceptorno longer cast a non-inet remote address (e.g. Unix domain sockets) toInetSocketAddress, which threwClassCastExceptioninside the interceptor. - Duplicate accessor member injection is skipped in `ASMC
- The reactor
- v3.1.03.1.0 release2026-05-20 · 2026-05-20 23:14 UTC
查看更新说明
Highlights
ApplicationName: 254-Character Support
-Dpinpoint.modules.uid.version=v3 # This property must be added when starting the agent. # It is compatible with collector versions 3.1.0 and higher.The maximum length of
applicationNamehas been expanded from 24 to 254 characters, aligning it withSERVICE_NAME_MAX_LEN.Impact: Users with long, structured application identifiers (e.g.,
team.service.environment.region) can now register them as-is, removing the prior naming constraint that forced abbreviations.ServerMap V3 — Performance Improvements
ServerMap has been rebuilt as ServerMap V3 with a redesigned storage layout and query path.
- New Map Tables:
MapAppSelf,MapAgentSelf,MapAppOut,MapAppIn,MapAppHost - Schema:
hbase-create-snappy.hbase
Impact: Faster initial render and time-range navigation on large topologies, lower HBase read amplification, and improved support for 254-character ApplicationName values.
GrpcBatchDataSender — Unary Span Transport
A new span transport,
SpanBatchGrpcDataSender, replaces the long-lived gRPC bidirectional stream (SpanGrpcDataSender) with a unarySendSpanListRPC that ships spans in independent batches.Starting from 3.1.0,
BATCHis the default in both local and release profiles:# pinpoint-root.config profiler.transport.grpc.span.sender.type=BATCH # BATCH | STREAMCollector-side support: the receiver-side
SpanServiceexposes the newSendSpanListRPC and returns batch-level results. Requires a 3.1.0+ collector. Older collectors should keepsender.type=STREAM.Impact: simpler operational model (no stream restarts on partial failures), better resilience behind L7 proxies and rolling collector deploys, and tunable batching that lets operators trade latency versus RPC overhead per workload.
OpenTelemetry Metric Collection
Pinpoint Collector now supports receiving metrics via the OTLP protocol. Applications can send metrics using the OpenTelemetry SDK or OpenTelemetry Collector without requiring the Pinpoint Agent.
📖 Manual
Heatmap View
A new Heatmap view is now available alongside Scatter Chart. While Scatter Chart plots individual transactions, Heatmap provides a statistics-based visualization for faster data overview.
📖 Manual
Error Reason Categorization
Errors are now categorized (e.g.
exception,http-status,sql) and the category is shown on the call stack in the web UI, so you can tell at a glance why a span was marked as an error.Opt-in via agent configuration:
profiler.error.enable=trueChoose which categories should mark a span as an error (default: all enabled):
# Allow-list profiler.error.mark=http-status,sql # Or deny-list profiler.error.mark.exclude=exceptionJDBC SQL Cache Expiration
The SQL cache now expires entries after a configurable time, causing the agent to re-send the metadata periodically.
# Default: 168 hours (7 days). Set 0 or negative to disable. profiler.jdbc.sqlcacheexpirehours=168TraceIndex — Scatter Chart and Transaction List Performance Improvements
Scatter Chart and Transaction List now use the new
TraceIndextable for transacti - New Map Tables:
- v3.0.53.0.5 release2026-04-01 · 2026-04-01 23:30 UTC
查看更新说明
What's Changed
- [#13054] Migrate to Central Portal Publisher by @intr3p1d in https://github.com/pinpoint-apm/pinpoint/pull/13111
- [#13054] Prepare 3.0.5-SNAPSHOT by @intr3p1d in https://github.com/pinpoint-apm/pinpoint/pull/13113
- [#13275] Backport: Update agent interceptable target by @jaehong-kim in https://github.com/pinpoint-apm/pinpoint/pull/13276
- [#13355] Backport: Update s3 http auth header by @jaehong-kim in https://github.com/pinpoint-apm/pinpoint/pull/13356
- [#13483] Backport: Fix grpc-plugin ServerStreamGetter by @jaehong-kim in https://github.com/pinpoint-apm/pinpoint/pull/13484
- [#13496] Backport: Update agent grpcSpanSender state init by @jaehong-kim in https://github.com/pinpoint-apm/pinpoint/pull/13498
- [#13511] Backport: Update to reduce the occurrence of span events rel… by @jaehong-kim in https://github.com/pinpoint-apm/pinpoint/pull/13513
- [#13546] 3.0.5 release by @intr3p1d in https://github.com/pinpoint-apm/pinpoint/pull/13548
Full Changelog: https://github.com/pinpoint-apm/pinpoint/compare/v3.0.4...v3.0.5
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。

Latest Release (2026/10/28)
We're happy to announce the release of Pinpoint v4.0.0. Please check the release note at (https://github.com/pinpoint-apm/pinpoint/releases/tag/v4.0.0).
The current stable version is v4.0.0.
Live Demo
Take a quick look at Pinpoint with our demo!
PHP, PYTHON
Pinpoint also supports application written in PHP, Python. Check-out our agent repository.
About Pinpoint
Pinpoint is an APM (Application Performance Management) tool for large-scale distributed systems written in Java / PHP/PYTHON. Inspired by Dapper, Pinpoint provides a solution to help analyze the overall structure of the system and how components within them are interconnected by tracing transactions across distributed applications.
You should definitely check Pinpoint out If you want to
- understand your application topology at a glance
- monitor your application in Real-Time
- gain code-level visibility to every transaction
- install APM Agents without changing a single line of code
- have minimal impact on the performance (approximately 3% increase in resource usage)
Getting Started
- Quick-start guide for simple test run of Pinpoint
- Installation guide for further instructions.
Deploying Pinpoint to Kubernetes
Overview
Services nowadays often consist of many different components, communicating amongst themselves as well as making API calls to external services. How each and every transaction gets executed is often left as a blackbox. Pinpoint traces transaction flows between these components and provides a clear view to identify problem areas and potential bottlenecks. For a more intimate guide, please check out our Introduction to Pinpoint video clip.
-
ServerMap - Understand the topology of any distributed systems by visualizing how their components are interconnected. Clicking on a node reveals details about the component, such as its current status, and transaction count.
-
Realtime Active Thread Chart - Monitor active threads inside applications in real-time.
-
Request/Response Scatter Chart - Visualize request count and response patterns over time to identify potential problems. Transactions can be selected for additional detail by dragging over the chart.

-
CallStack - Gain code-level visibility to every transaction in a distributed environment, identifying bottlenecks and points of failure in a single view.

-
Inspector - View additional details on the application such as CPU usage, Memory/Garbage Collection, TPS, and JVM arguments.

-
URI-metric

-
Infrastructure

-
Error-Analysis

Supported Modules
The supported version range of each module is listed in Agent Plugins.
- JDK 8+
- Tomcat, Jetty, JBoss EAP, Websphere, Vertx, Weblogic, Undertow, Akka HTTP, Pekko HTTP
- Spring, Spring Boot (Embedded Tomcat, Jetty, Undertow, Reactor Netty), Spring WebFlux, Spring TX, Spring Cloud Sleuth, RestTemplate, Ktor
- Apache HttpClient 3 / 4 / 5, JDK HttpConnector, JDK HttpClient, GoogleHttpClient, OkHttpClient, NingAsyncHttpClient, Netty
- Thrift, DUBBO, GRPC, Apache CXF
- ActiveMQ, RabbitMQ, Kafka, RocketMQ, Pulsar, Paho MQTT
- MySQL, Oracle, MSSQL, JTDS, CUBRID, POSTGRESQL, MariaDB, Informix, DB2, ClickHouse, Dameng, Spring Data R2DBC
- Arcus, Memcached, Redis(Jedis, Lettuce, Redisson), CASSANDRA, MongoDB, Hbase, Elasticsearch
- iBATIS, MyBatis
- DBCP, DBCP2, HIKARICP, DRUID
- Gson, Jackson, Json Lib, Fastjson
- log4j, Logback, log4j2
- Hystrix, Resilience4j, RxJava, Reactor
- AWS SDK S3, OpenWhisk, Kotlin Coroutines
Compatibility
Java version required to run Pinpoint:
| Pinpoint Version | Agent | Collector | Web | Batch |
|---|---|---|---|---|
| 2.0.x | 6-13 | 8 | 8 | 8 |
| 2.1.x | 6-14 | 8 | 8 | 8 |
| 2.2.x | 7-14 | 8 | 8 | 8 |
| 2.3.x | 7-17 | 8 | 8 | 8 |
| 2.4.x | 7-18 | 11 | 11 | 11 |
| 2.5.x | 8-19 | 11 | 11 | 11 |
| 3.0.x | 8-21 | 17 | 17 | 17 |
| 3.1.x | 8-25 | 17 | 17 | 17 |
| 4.0.x | 8-25 | 17 | 17 | 17 |
HBase compatibility table:
| Pinpoint Version | HBase 1.x | HBase 2.x |
|---|---|---|
| 2.0.x - 2.2.x | yes | optional |
| 2.3.x - 2.5.x | yes | hbase2-module |
| 3.0.x | no | yes |
| 3.1.x | no | yes |
| 4.0.x | no | yes |
Agent - Collector compatibility table:
| Agent Version | Collector 2.x.x | Collector 3.0.x | Collector 3.1.x | Collector 4.0.x |
|---|---|---|---|---|
| 2.x.x | yes | yes | yes | yes |
| 3.0.x | no | yes | yes | yes |
| 3.1.x | no | no | yes | yes |
| 4.0.x | no | no | no | yes |
Pinot compatibility table:
| Pinpoint Version | Pinot 0.11.0 | Pinot 0.12.0 | Pinot 1.0.0 | Pinot 1.2.0 | Pinot 1.3.0 | Pinot 1.5.0 |
|---|---|---|---|---|---|---|
| 2.5.x | yes | yes | yes | yes | yes | - |
| 3.0.x | no | no | yes | yes | yes | - |
| 3.1.x | no | no | no | no | yes | - |
| 4.0.x | no | no | no | no | no | yes |
Community
We have Chinese community now, welcome to join!
| QQ Group1: 897594820 | QQ Group2: 812507584 | QQ Group3: 882020485 | DING Group : 21981598 |
|---|---|---|---|
![]() | ![]() | ![]() | ![]() |
License
Pinpoint is licensed under the Apache License, Version 2.0. See LICENSE for full license text.
Copyright 2018 NAVER Corp.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.



