JAVA无侵入链路追踪怎么实现

  介绍

本篇内容介绍了“JAVA无侵入链路追踪怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一。侵?链路追踪APM ?具

应?性能管理应用程序性能管理(APM)是指对企业的关键业务应?进?监测,优化,提?企业应?的可靠性和质量,保证吗?户得到良好的服务,降低,总运维成本,为企业带来更多的商业利益。

确定简介

确定是一个APM(应用程序性能管理)工具,适用于用Java/PHP编写的大型分布式系统。在使用上力图简单高效,通过在启动时安装剂,不需要修改哪怕一行代码,最小化性能损失(3%)。

<李>

优势:

1)分布式事务跟踪,跟踪跨分布式应用的消息;
2)自动检测应用拓扑,帮助你搞清楚应用的架构。
3)水平扩展以便支持大规模服务器集群;
4)提供代码级别的可见性以便轻松定位失败点和瓶颈;
5)使用字节码增强技术,添加新功能而无需修改代码。

<李>

主要组件

癑ava无侵入链路追踪怎么实现"

组件组件功能Pinpoint-Collector收集各种性能数据Pinpoint-Agent探针与应用服务器(例如tomcat)关联,部署到同一台服务器上降低存储收集到数据存到HBase中Pinpoint-Web将收集到的数据层现在网络展示

二。快速在Rainbond部署确定

基于Rainbond应用市场吗?键安装。

这种部署方式对于像查明这种多组件的复杂应用来说,最大程度的降低了部署难度与工作量

癑AVA无侵入链路追踪怎么实现"

<李>

通过pinpoint-web应用进入到精确的UI界面

癑AVA无侵入链路追踪怎么实现"

<李>

在默认设置中,确定应用已经监控了它自身的收集器,网络组件。在进入UI界面后,就可以发现二者已经存在于应用列表中了

癑AVA无侵入链路追踪怎么实现"

三。添加被监控的对象

<李>

在战争启动过程中插?代理

1)事先将pinpoint-agent资源打进镜像;
2)插入启动关键代码:

 # pinpoint-agent.sh
  #指定pinpoint-agent资源
  CATALINA_OPTS=癈ATALINA_OPTS 美元;- javaagent: $ PINPOINT_AGENT_PATH/pinpoint-bootstrap - $ {PINPOINT_AGETN_VERSION} -SNAPSHOT.jar",,
  #指定pinpoint-agent  ID
  CATALINA_OPTS=癈ATALINA_OPTS 美元;-Dpinpoint.agentId=$ {AGENT_ID}“,
  #指定应用名字
  CATALINA_OPTS=癈ATALINA_OPTS 美元;-Dpinpoint.applicationName=$ {APP_NAME}“
 # docker-entrypoint.sh ,
  #判断是否开启pinpoint-agent
  if  [,“ENABLE_APM"美元,==,“true",]; then ,
  #收集器地址
  ,COLLECTOR_TCP_HOST=$ {COLLECTOR_TCP_HOST: 127.0.0.1},
  # TCP端口,
  ,COLLECTOR_TCP_PORT=$ {COLLECTOR_TCP_PORT: -9994},,,,,,,
  ,COLLECTOR_UDP_SPAN_LISTEN_HOST=$ {COLLECTOR_UDP_SPAN_LISTEN_HOST: 127.0.0.1}
  COLLECTOR_UDP_SPAN_LISTEN_PORT=$
  # UDP端口
  {COLLECTOR_UDP_SPAN_LISTEN_PORT: -9996},,,,,,,,
  ,COLLECTOR_UDP_STAT_LISTEN_HOST=$ {COLLECTOR_UDP_STAT_LISTEN_HOST: 127.0.0.1}
  COLLECTOR_UDP_STAT_LISTEN_PORT=$
  # UDP端口
  ,{COLLECTOR_UDP_STAT_LISTEN_PORT: -9995}
  #启动时加载剂
  小姐,sed “; 2,一只/usr/地方/tomcat/bin/pinpoint-agent.sh",/usr/地方/tomcat/bin/catalina.sh ,
  #导入到pinpoint-agent配置文件
  sed 才能,小姐;-r  -e “s/(profiler.collector.ip)=?/\ 1=$ {COLLECTOR_TCP_HOST}/? \,,,,,
  ,-e “s/(profiler.collector.tcp.port)=?/\ 1=$ {COLLECTOR_TCP_PORT}/癨
  ,-e “s/(profiler.collector.span.port)=?/\ 1=$ {COLLECTOR_UDP_SPAN_LISTEN_PORT}/癨
  ,-e “s/(profiler.collector.stat.port)=?/\ 1=$ {COLLECTOR_UDP_STAT_LISTEN_PORT}/?/usr/地方/pinpoint-agent/pinpoint.config
  #默认值,在平台的每一个应用都会生成
  export  APP_NAME=$ {APP_NAME: - $ {SERVICE_NAME: - ${主机名}}}
  #通过APP_NAME, POD_IP区分一个服务下每一个实例的agent id
  export  AGENT_ID={APP_NAME} - {POD_IP}美元,
  fi 
<李>

在jar启动过程中插?代理

JAVA无侵入链路追踪怎么实现