This article is more than one year old. Older articles may contain outdated content. Check that the information in the page has not become incorrect since its publication.
When using Dubbo for service-oriented or integrated applications, if a service’s backend logs show an exception, and this service is called by multiple applications, it is often difficult to determine which application made the call and what the cause of the issue is. Thus, we need a distributed tracing system to quickly locate the problem, and Pinpoint can help us achieve this (of course, there are other solutions as well).
Excerpt from Pinpoint Learning Notes
Pinpoint is an open-source APM (Application Performance Management) tool for large-scale distributed systems based on Java. Similar to Google Dapper, Pinpoint provides solutions by tracking calls between distributed applications to analyze the overall structure of the system and how its internal modules relate to each other.
Note: In the original English, the term used for communication between modules is “transaction”, but I believe if translated as “transaction” it may cause misunderstandings, so it is replaced by “interaction” or “call”.
It aims to be simple and efficient in use:
Understand the system topology by visualizing the modules of the distributed system and their interconnections. Clicking on a node shows the module’s details, such as its current status and request count.
Real-time monitoring of active threads within the application.
Long-term visualization of request counts and response patterns to locate potential issues. You can drag on the chart to select requests for more detailed information.
Generates code-level visuals for each call in a distributed environment, locating bottlenecks and failure points in a single view.
View additional details on the application, such as CPU usage, memory/garbage collection, TPS, and JVM parameters.
Refer to Pinpoint’s Quick start to set up the environment (no need to start TestApp)
pom.xml
Create API interface:
pom.xml
HelloService
interface:application.properties
:pom.xml
HelloService
via @Reference
Directly connecting to the provider requires filling in a specific IP address. You can also write localhost, but it will be additionally recognized by Pinpoint as an unknown service.
application.properties
:http://localhost:8080/sayHello?name=ABC
The user request here is double that of DubboProvider due to the recorded favicon.ico icon request.
The example simply simulates the provision and calling of Dubbo, without applications such as databases or other middleware. For detailed usage, please refer to the Pinpoint documentation.