pinpoint接入方式
<p>pinpoint接入方式
docker方式
Dockerfile更改基础镜像为:</p>
<pre><code>hub.ecs.com:6999/jdk1.8-pp2agent:v1.0-112</code></pre>
<p>即将Dockerfile开头的</p>
<p>FROM hub.ecs.com:6999/jdk1.8:v1
改为
FROM hub.ecs.com:6999/hub.ecs.com:6999/jdk1.8-pp2agent:v1.0-112</p>
<p>java启动参数增加(即vos中应用的启动脚本增加参数)
-javaagent:/root/agent/pinpoint-bootstrap-2.0.3.jar
-Dpinpoint.applicationName=${应用名称}
e.g.</p>
<p>java -javaagent:/root/agent/pinpoint-bootstrap-2.0.3.jar -Dpinpoint.applicationName=dubbo-demo1 -Dfile.encoding=UTF-8 -server -jar /app/soft/pinpoint/dubbo-demo/dubbo-demo1-1.0.jar --server.port=18803 --log.path=/app/soft/pinpoint/dubbo-demo/logs
备注:</p>
<p>-javaagent 和 -Dpinpoint.applicationName 参数需要写在 -jar 前,否则不生效</p>
<p>目前使用 pinpoint 版本为 2.0.3</p>
<p>收集器目前在 132.46.120.112 上,所以正常收集数据需要应用主机能连上 132.46.120.112 ,信息使用额外的一个线程进行发送。是否能收集到数据不影响应用正常使用。</p>
<p>更改收集器主机可以在 dockerfile 中修改 /root/agent/pinpoint.config 文件的 profiler.collector.ip配置</p>
<p>应用名称-Dpinpoint.applicationName的值最长24个字节,且只能包含
[a-zA-Z0-9.-_]</p>
<p>非docker方式
应用主机上存在 pinpoint-agent 项目结构
更改 pinpoint.config 文件的 profiler.collector.ip配置
java启动参数增加
-javaagent:${pinpoint-agent路径}/pinpoint-bootstrap-2.0.3.jar
-Dpinpoint.applicationName=${应用名称}
-Dpinpoint.agentId=${jvmId}
备注:</p>
<p>pinpoint-agent 来源,下载相应版本的 pinpoint-agent-2.0.3.tar.gz ,解压后即可</p>
<p>docker方式中的 pinpoint-bootstrap-2.0.3.jar 为改造后的jar包,会自动生成 agentId ,原版的 agent 则需要手动指定 agentId。agentId为全局唯一Id,用于区分不同jvm</p>
<p>大致原理
agent用单独的线程将数据放到队列中发送给collector,如果请求速度过快,无法放入队列的数据将被丢弃
collector将数据处理后存入hbase
web从hbase将数据读取出来后解析展示
hbase中除了应用名称外,只保留3天数据</p>
<p>pinpoint-web
<a href="http://132.46.120.105:8080">http://132.46.120.105:8080</a></p>
<h5>简要描述</h5>
<ul>
<li>用户注册接口</li>
</ul>
<h5>请求URL</h5>
<ul>
<li><code>http://xx.com/api/user/register</code></li>
</ul>
<h5>请求方式</h5>
<ul>
<li>POST </li>
</ul>
<h5>参数</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">username</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>用户名</td>
</tr>
<tr>
<td style="text-align: left;">password</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>密码</td>
</tr>
<tr>
<td style="text-align: left;">name</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td>昵称</td>
</tr>
</tbody>
</table>
<h5>返回示例</h5>
<pre><code> {
"error_code": 0,
"data": {
"uid": "1",
"username": "12154545",
"name": "吴系挂",
"groupid": 2 ,
"reg_time": "1436864169",
"last_login_time": "0",
}
}</code></pre>
<h5>返回参数说明</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">groupid</td>
<td style="text-align: left;">int</td>
<td>用户组id,1:超级管理员;2:普通用户</td>
</tr>
</tbody>
</table>
<h5>备注</h5>
<ul>
<li>更多返回错误代码请看首页的错误代码描述</li>
</ul>