gitmyhub

pinpoint

Java ★ 14k updated 1d ago

APM, (Application Performance Management) tool for large-scale distributed systems.

Pinpoint is a self-hosted monitoring tool for large Java systems split across many services, it traces each user transaction through all the components to show where slowdowns and failures happen.

JavaPHPPythonsetup: hardcomplexity 4/5

Pinpoint is a monitoring tool for large software systems, the kind that are split across many separate services running on different machines. This category of tool is called APM, which stands for Application Performance Management. When a single user action quietly passes through a dozen internal services and an external API or two, it can be hard to tell where things slowed down or broke. Pinpoint follows each transaction across all those pieces and shows the path it took.

The README says it was inspired by a Google research project called Dapper, and it is written mainly in Java, with separate agents available for applications written in PHP and Python. One selling point it stresses is that you can install its monitoring agents without changing a single line of your application's code, and that the agents add only a small overhead, around a 3 percent increase in resource usage.

The tool offers several views. A ServerMap draws a picture of how all the components connect, and clicking a node shows its status and how many transactions are flowing through it. A real-time chart shows active threads inside an application as it runs. A scatter chart plots request counts and response times so unusual patterns stand out, and you can drag across it to inspect specific transactions. A CallStack view drills down to code-level detail for a single transaction to find the exact bottleneck, and an Inspector view reports things like CPU usage, memory, and other runtime statistics.

The README lists a long set of supported technologies. Pinpoint can attach to many Java web servers and frameworks such as Tomcat, Jetty, and Spring Boot, to various HTTP clients, to messaging systems like Kafka and RabbitMQ, and to many databases including MySQL, Oracle, and PostgreSQL. This breadth means it can plug into a wide variety of real-world stacks.

For getting started, the README points to a quick-start guide, a full installation guide, a live demo, and instructions for running Pinpoint on Kubernetes, a common system for running containerized applications. In plain terms, this repository is a self-hosted system that gives engineers a clear, visual picture of how their distributed application behaves so they can find and fix performance problems.

Where it fits