First of all, the research results of individual people, I am also stepping on the shoulders of giants to move on.
With the iterative update of the pinpoint version, some of the conclusions on this figure are out of date, such as pinpoint:
1. Protocol, the latest 2.1.0 version also uses gRPC by default;
2. TraceId query, the latest 2.1.0 version is also supported ;
3. Release the package, the latest 2.1.0 version is also deployed with jar package;
Therefore, nothing is constant, the only constant should be our enthusiasm and determination to learn.
Then talk about the specific content we want to compare today:
1. UI comparison
For a person like me who is a bit color-controlled, pinpoint's UI looks more beautiful, friendly and convenient. Pinpoint is indeed better than skywalking by a few points. Here are two pictures for you to compare.
There seems to be a problem with the dashboard of skywalking. How can I check the performance during a certain period of time in the past? Can I only look at the current time period?
2. Tracking granularity
After reading the appearance, let's compare their internal strengths. After all, these tools are for work. They are useless as vases. They have to be used in critical situations.
Similarly, let's take two pictures first to see how the tracking granularity of pinpoint and skywalking is.
It can be seen that pinpoint can monitor the time-consuming situation of each link process, including SQL execution time, third-party service response time, etc., and even SQL variable parameters are tracked.
However, skywalking only monitors the interface time consumption, and does not monitor more link time consumption information. A group of friends told that skywalking can monitor the method level, but it needs to invade the code. Add comments on each method to be tracked. So I gave up directly because the price was too high. And even if you monitor the method level, you can only know which method is slow. There may be database calls, third-party method calls, etc. below the method, but it is still impossible to locate the real problem. Therefore, skywalking, an APM monitoring tool, personally understands that it is more used to monitor the time-consuming interface response and raise alarms. As for specific performance problems, it can only be further located by other means.
Therefore, in terms of monitoring granularity, the pinpoint difference of skywalking is not a little bit, which is several orders of magnitude worse.
3. JVM monitoring
Next, let's compare another very useful function of this type of APM tool, monitoring JVM.
Here is a brief list of JVM indicators they can monitor:
Monitoring content | pinpoint | skywalking |
---|---|---|
Heap Usage | stand by | stand by |
Non Heap Usage | stand by | stand by |
JVM/System CPU Usage | stand by | Support (JVM CPU) |
Transactions Per Second | stand by | stand by |
Active Request | stand by | Support (calls per minutes) |
Total Thread | stand by | |
Response Time | stand by | stand by |
Open File Descriptor | stand by | |
Direct Buffer Count | stand by | |
Direct Buffer Memory | stand by | |
Mapped Buffer Count | stand by | |
Mapped Buffer Memory | stand by | |
Loaded Class Count | stand by | |
Unloaded Class Count | stand by | |
Data Source | stand by | |
GC count | stand by | |
GC time | stand by |
From the above comparison results, pinpoint is much more powerful in JVM monitoring, such as support for Thread, Open File Descriptor, Data Source, especially Data Source, which is really convenient, and the usage of database connection pool is clear at a glance.
The only point of skywaling is to support the viewing of GC indicators.
4. Performance loss
Since pinpoint tracking granularity is several orders of magnitude more detailed than skywalking, correspondingly, is its performance loss much larger? Looking at the test results of some netizens (such as the reference link below), the performance loss of pinpoint can reach about 50%, which is too scary, but according to the official publicity, its performance loss is within 3%, so who is it? Is it reliable?
I am mainly engaged in performance stress testing. I usually drive the APM to do stress testing. I don’t feel that there will be a lot of performance loss. The overall loss should be within 8%, and the performance test results are quite OK. Yes, so, regarding the performance loss, I am quite confident in pinpoint. Post an official performance loss description
5. Summary
Today, I mainly compared pinpoint and skywalking in terms of personal experience from the three aspects of UI, tracking granularity, and JVM monitoring. From the comparison results, pinpoint is still superior in terms of ease of operation or performance problem positioning. For skywalking. After all, as an APM tool, the ability to find performance problems better, faster and more comprehensively, is their greatest value.
It may also be that my understanding of skywalking is too superficial and I haven't discovered the real power and beauty of skywalking. If you have different views and opinions, please leave a message to discuss.
Reference link: https://www.jianshu.com/p/626cae6c0522