首页 » 运维相关 » APM性能 » 开源APM工具PINPOINT 性能数据采集分析

开源APM工具PINPOINT 性能数据采集分析

 
文章目录

Pinpoint 是用 Java 编写的 APM(应用性能管理)开源工具,用于大规模分布式系统。Pinpoint 提供了一个解决方案,以帮助分析系统的总体结构以及分布式应用程序的组件之间是如何进行数据互联的。

能够非常方便的查询分布式系统之间的调用。比如常用的dubbo服务,grpc服务。支持大多数的java调用框架。

pinpoint 有以下几个特点:

  1. 分布式事务跟踪,跟踪跨分布式应用的消息
  2. 自动检测应用拓扑,帮助你搞清楚应用的架构
  3. 水平扩展以便支持大规模服务器集群
  4. 提供代码级别的可见性以便轻松定位失败点和瓶颈

以docker方式安装

安装docker docker-compose

yum update -y
yum install docker epel-release python-pip -y
pip install --upgrade pip
pip install docker-compose

修改daemon.json

#cat /etc/docker/daemon.json
{"registry-mirrors": ["http://579fe187.m.daocloud.io","https://pee6w651.mirror.aliyuncs.com"]}

启动docker

systemctl enable docker
systemctl start docker

下载pinpoint-docker,启动pinpoint服务

git clone https://github.com/naver/pinpoint-docker.git
cd Pinpoint-Docker
docker-compose pull && docker-compose up -d

如有问题,请修改相对路径为绝对路径

...
 volumes:
      - /home/pinpoint/hbase
      - /home/pinpoint/zookeeper
...

pull如下镜像

root@pinpoint-docker]# docker images
REPOSITORY                                     TAG                 IMAGE ID            CREATED             SIZE
docker.io/zookeeper                            3.4                 bf5cbc9d5cac        10 days ago         146 MB
docker.io/pinpointdocker/pinpoint-agent        1.7.3               d10e8ad4472e        11 days ago         18.5 MB
docker.io/pinpointdocker/pinpoint-hbase        1.7.3               24ec151afe93        11 days ago         993 MB
docker.io/pinpointdocker/pinpoint-web          1.7.3               cfffbb994f1b        11 days ago         659 MB
docker.io/pinpointdocker/pinpoint-collector    1.7.3               998b986648a8        11 days ago         604 MB
docker.io/pinpointdocker/pinpoint-quickstart   latest              125fa49a4a38        2 weeks ago         566 MB
docker.io/flink                                1.3.1               c08ccd5bb7a6        10 months ago       480 MB

启动完成后所起的容器

[root@ pinpoint-docker]# docker ps
CONTAINER ID        IMAGE                                     COMMAND                  CREATED             STATUS              PORTS                                                                                                                            NAMES
770e180203e9        pinpointdocker/pinpoint-quickstart        "catalina.sh run"        3 hours ago         Up 3 hours          0.0.0.0:8000->8080/tcp                                                                                                           pinpoint-quickstart
968c689aad3d        pinpointdocker/pinpoint-agent:1.7.3       "/usr/local/bin/co..."   3 hours ago         Up 3 hours                                                                                                                                           pinpoint-agent
19fac27003e3        pinpointdocker/pinpoint-web:1.7.3         "/usr/local/bin/st..."   3 hours ago         Up 3 hours          0.0.0.0:9997->9997/tcp, 0.0.0.0:8079->8080/tcp                                                                                   pinpoint-web
08f7242e3612        pinpointdocker/pinpoint-collector:1.7.3   "/usr/local/bin/st..."   3 hours ago         Up 3 hours          8080/tcp, 0.0.0.0:9994-9996->9994-9996/tcp, 0.0.0.0:9995-9996->9995-9996/udp                                                     pinpoint-collector
23262f75eec0        pinpointdocker/pinpoint-hbase:1.7.3       "/bin/sh -c '${BAS..."   3 hours ago         Up 3 hours          0.0.0.0:16010->16010/tcp, 0.0.0.0:16030->16030/tcp, 0.0.0.0:60000->60000/tcp, 0.0.0.0:60020->60020/tcp, 0.0.0.0:2180->2181/tcp   pinpoint-hbase
f0525f78484e        flink:1.3.1                               "/docker-entrypoin..."   4 hours ago         Up 4 hours          6123/tcp, 0.0.0.0:6121-6122->6121-6122/tcp, 0.0.0.0:19994->19994/tcp, 8081/tcp                                                   pinpoint-flink-taskmanager
ec7959d91bab        zookeeper:3.4                             "/docker-entrypoin..."   4 hours ago         Up 4 hours          2181/tcp, 2888/tcp, 3888/tcp                                                                                                     pinpoint-docker_zoo3_1
67fe5108a1f8        zookeeper:3.4                             "/docker-entrypoin..."   4 hours ago         Up 4 hours          2181/tcp, 2888/tcp, 3888/tcp                                                                                                     pinpoint-docker_zoo2_1
ff751bd4ce44        zookeeper:3.4                             "/docker-entrypoin..."   4 hours ago         Up 4 hours          2181/tcp, 2888/tcp, 3888/tcp                                                                                                     pinpoint-docker_zoo1_1
34ae285a9246        flink:1.3.1                               "/docker-entrypoin..."   4 hours ago         Up 4 hours          6123/tcp, 0.0.0.0:8081->8081/tcp                                                                                                 pinpoint-flink-jobmanager

访问nodeIP:8079 

构建agent

下载 pinpoint-agent zip。然后修改启动参数: 比如将pinpoint-agent 放到了 /opt/pinpoint 目录下了。

JAVA_OPTS=" -Duser.timezone="Asia/Shanghai" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true"

PINPOINT_OPTS=" -javaagent:/opt/pinpoint/pinpoint-bootstrap-*.jar -Dpinpoint.agentId=store-demo-agent01 
-Dpinpoint.applicationName=store-demo"

java -jar ${JAVA_OPTS} ${PINPOINT_OPTS} /opt/store-demo-*.jar

设置好pinpoint.agentId 和pinpoint.applicationName 两个参数。 再自动就可以了。

启动之前要替换pinpoint collector的ip: 

PINPOINT_COLLECTOR_IP 是collector的ip。要保证能访问 9994 的tcp,和 9995 9996 的udp端口。 否则只能注册而不能看到数据。udp端口是负责收集数据的。

到pinpoint web端查看采集数据 

pinpoint 采集

原文链接:开源APM工具PINPOINT 性能数据采集分析,转载请注明来源!

3