pinpoint链路跟踪运用及日志logback配置

本文将讲述pinpoint的安装,使用及与java logback 日志的集成。

介绍

是什么

  • 是一款 APM监控工具(Application Performance Management/应用性能管理)
  • 基于java编写
  • 用于 大规模分布式系统 的监控,是 分析 大规模分布式系统 的平台
  • 基于google Dapper开发,目标就是为n(n>=1)层架构开发新的跟踪平台,为n层架构的系统 提供 处理大量跟踪数据 的 解决方案
  • 能够对 基于java的 大规模分布式系统和应用 做调用链的跟踪
  • 提供了一个web页面 展示 分布式系统的拓扑图 以及 系统这各个组件之间关系

特点

  • 分布式事务追踪,跟踪跨分布式应用的消息
  • 自动检测应用拓扑,帮助你搞清楚应用的架构
  • 水平扩展,以便支持大规模服务器集群
  • 提供代码级别的可见性,以便轻松定位失败点和瓶颈
  • 提供字节码增强技术,添加新功能无需修改代码
  • 安装探针不需要修改哪怕一行代码及trace server端部署简单,支持hdfs存储
  • 具有简单的阀值触发报警功能
  • 移植性比较强的,会比较讨人喜欢(相比cat)
  • 自定义插件功能(参考https://github.com/naver/pinpoint/wiki/Pinpoint-Plugin-Developer-Guide)

具体请参考:

Pinpoint–基础–01–介绍
网友专栏: https://blog.csdn.net/zhou920786312/category_12110038.html

环境搭建

这里推荐一篇网友的安装步骤,照着步骤基本没什么问题。
性能测试利器 — 全链路监控工具Pinpoint安装教程

其中这个hbase的初始化脚本特别说明下:
https://github.com/pinpoint-apm/pinpoint/tree/v2.3.3/hbase/scripts 在这个目录里面下载。

这里提供一个百度网盘的下载地址(包含了所有的安装包及文件):
链接:https://pan.baidu.com/s/19wdQ0rdlA4jcC1GujNKRMg?pwd=c4ko
提取码:c4ko

在这里插入图片描述

iccboy@DESKTOP-JAG3NND:~/pinpoint$ ll
total 331652
drwxr-xr-x 5 iccboy iccboy      4096 Nov 26 23:38 ./
drwxr-xr-x 6 iccboy iccboy      4096 Nov 27 22:58 ../
-rwxr--r-- 1 iccboy iccboy       170 Nov 26 23:32 collector.sh*
drwxr-xr-x 8 iccboy iccboy      4096 Nov 26 23:14 hbase-1.2.6/
-rwxr-xr-x 1 iccboy iccboy 104659474 Nov 26 22:59 hbase-1.2.6-bin.tar.gz*
-rw-r--r-- 1 iccboy iccboy     15763 Nov 26 23:28 hbase-create.hbase
drwxr-xr-x 2 iccboy iccboy      4096 Nov 27 00:01 logs/
drwxr-xr-x 9 iccboy iccboy      4096 Nov 27 22:37 pinpoint-agent-2.3.3/
-rwxr-xr-x 1 iccboy iccboy  28031866 Nov 26 23:00 pinpoint-agent-2.3.3.tar.gz*
-rw-r--r-- 1 iccboy iccboy  91303343 Nov 26 23:23 pinpoint-collector-boot-2.3.3.jar
-rw-r--r-- 1 iccboy iccboy 115567241 Nov 26 23:23 pinpoint-web-boot-2.3.3.jar
-rwxr--r-- 1 iccboy iccboy       158 Nov 26 23:35 pinpoint-web.sh*
iccboy@DESKTOP-JAG3NND:~/pinpoint$ jps
11585 HMaster
18053 Jps
13609 pinpoint-web-boot-2.3.3.jar
14093 pinpoint-collector-boot-2.3.3.jar
iccboy@DESKTOP-JAG3NND:~/pinpoint$ netstat -ntlp
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      27462/./wslconnect
tcp6       0      0 127.0.1.1:42881         :::*                    LISTEN      11585/java
tcp6       0      0 127.0.1.1:37571         :::*                    LISTEN      11585/java
tcp6       0      0 :::46533                :::*                    LISTEN      11585/java
tcp6       0      0 :::2181                 :::*                    LISTEN      11585/java
tcp6       0      0 :::9991                 :::*                    LISTEN      14093/java
tcp6       0      0 :::9992                 :::*                    LISTEN      14093/java
tcp6       0      0 :::9993                 :::*                    LISTEN      14093/java
tcp6       0      0 :::9994                 :::*                    LISTEN      14093/java
tcp6       0      0 :::16010                :::*                    LISTEN      11585/java
tcp6       0      0 127.0.1.1:9997          :::*                    LISTEN      13609/java
tcp6       0      0 :::8080                 :::*                    LISTEN      13609/java
tcp6       0      0 :::8081                 :::*                    LISTEN      14093/java

pinpoint与logback日志MDC集成

  1. 修改代理模块的 pinpoint-agent-2.3.3/profiles/release/pinpoint.conf 配置

将profiler.logback.logging.transactioninfo 改为true,大概在1002行

###########################################################
# logback (guide url : https://github.com/naver/pinpoint/blob/master/doc/per-request_feature_guide.md)
###########################################################
profiler.logback.logging.transactioninfo=`true`
  1. 在项目的logback.xml中增加 [%X{PtxId}] 变量,则是pinpoint的traceId。
    如:
<property name="PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{PtxId}] [%level] %logger{36}-%L %.-2048msg%n"/>
  1. 启动项目
    记得带上参数
-javaagent:D:\sdk\pinpoint\pinpoint-agent-2.3.3\pinpoint-bootstrap-2.3.3.jar -Dpinpoint.agentId=iccboy-member -Dpinpoint.applicationName=iccboy-member

日志打印如下:

2023-11-27 23:56:35.482 [DubboServerHandler-10.10.125.42:20880-thread-10] [iccboy-member^1701100523841^2] [INFO] c.h.h.f.c.e.a.ExceptionLogInterceptor-176 [econfig-0]方法【queryCustomerList(客户列表查询)】调用开始,参数为:{"req":{"data":{"cusCertNo":"C9F4FYW4P","cusType":2,"pageIndex":1,"pageSize":10},"invokeId":"HHYLE377493204464ED3808AAB1C2FF03C29"}}
2023-11-27 23:56:35.597 [DubboServerHandler-10.10.125.42:20880-thread-10] [iccboy-member^1701100523841^2] [INFO] c.h.h.f.c.e.a.ExceptionLogInterceptor-214 [econfig-0]方法【queryCustomerList(客户列表查询)】调用正常,耗时:117ms,返回值为:{"invokeId":"HHYLE377493204464ED3808AAB1C2FF03C29","resultCode":"0000","resultMessage":"成功","data":{"list":[{"cusId":10179140,"cusName":"ADDTEST","cusType":2,"cusCertType":"2","cusCertNo":"C9F4FYW4P","cusSource":"hhyl-permission","cusOpenTime":"2023-11-24 11:38:50"}],"pagination":{"pageIndex":1,"pageSize":10,"totalRecord":1,"totalPage":1},"success":false}}
2023-11-27 23:57:00.540 [DubboServerHandler-10.10.125.42:20880-thread-11] [iccboy-member^1701100523841^3] [INFO] c.h.h.f.c.e.a.ExceptionLogInterceptor-176 [econfig-0]方法【queryCustomersRelation()】调用开始,参数为:{"req":{"data":{"cusIdFrom":"10171684","relationType":"01"},"invokeId":"HHYL120134CBDF904974B0D01855A6DBDEA2"}}
2023-11-27 23:57:00.597 [DubboServerHandler-10.10.125.42:20880-thread-11] [iccboy-member^1701100523841^3] [INFO] c.h.h.f.c.e.a.ExceptionLogInterceptor-214 [econfig-0]方法【queryCustomersRelation()】调用正常,耗时:57ms,返回值为:{"invokeId":"HHYL120134CBDF904974B0D01855A6DBDEA2","resultCode":"0000","resultMessage":"成功","data":[{"id":56068,"cusIdFrom":"10171684","cusIdTo":"10171686","relationType":"01"}]}
2023-11-27 23:57:00.606 [DubboServerHandler-10.10.125.42:20880-thread-12] [iccboy-member^1701100523841^4] [INFO] c.h.h.f.c.e.a.ExceptionLogInterceptor-176 [econfig-0]方法【queryRelationV2(用户客户关系查询接口2.0)】调用开始,参数为:{"req":{"data":{"cusIdList":["10171686"],"relation":"3"},"invokeId":"HHYLB3B6EC3D566B4FE2A0A0AA98F88F27F8"}}
2023-11-27 23:57:00.612 [DubboServerHandler-10.10.125.42:20880-thread-12] [iccboy-member^1701100523841^4] [INFO] c.h.h.m.b.s.impl.UserBizServiceImpl-976 用户客户关系查询2.0入参:QueryRelationV2Req(userId=null, cusIdList=[10171686], relation=3, userIdList=null)
2023-11-27 23:57:00.656 [DubboServerHandler-10.10.125.42:20880-thread-12] [iccboy-member^1701100523841^4] [INFO] c.h.h.f.c.e.a.ExceptionLogInterceptor-214 [econfig-0]方法【queryRelationV2(用户客户关系查询接口2.0)】调用正常,耗时:49ms,返回值为:{"invokeId":"HHYLB3B6EC3D566B4FE2A0A0AA98F88F27F8","resultCode":"0000","resultMessage":"成功","data":[{"userId":"40008483","cusId":"10171686","relation":"3","position":""}]}

上面的iccboy-member^1701100523841^2 就是pinpoint的TransactionId(TxId)

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/194352.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

路径规划之A*算法

系列文章目录 路径规划之Dijkstra算法 路径规划之Best-First Search算法 路径规划之A*算法 路径规划之A*算法 系列文章目录前言一、前期准备1.1 算法对比1.2 数学式方法1.3 启发式方法 二、A*算法2.1 起源2.2 思想2.3 启发式函数2.4 过程2.5 案例查看 前言 之前提过Dijkstra算…

vue3中readonly和shallowReadonly

readonly: 深度只读数据 获取一个对象 (响应式或纯对象) 或 ref 并返回原始代理的只读代理。 只读代理是深层的&#xff1a;访问的任何嵌套 property 也是只读的。 shallowReadonly 浅只读数据 创建一个代理&#xff0c;使其自身的 property 为只读&#xff0c;但不执行…

文件权限中 chmod、u+x、u、r、w、x分别代表什么

Linux系统中的每个文件和目录都有访问许可权限&#xff0c;如下面所示&#xff1a; 要说清楚问题&#xff0c;我们截取一些内容&#xff1a; ypyubuntu:~$ ls -l drwxr-xr-- 2 ypy ypy 4096 Nov 30 18:33 Desktop/ drwxr-xr-- 2 ypy ypy 4096 Nov 30 18:33 Documen…

视频没有字幕怎么办,怎么给视频增加字幕

文章目录 视频没有字幕怎么办&#xff0c;怎么给视频增加字幕前言软件准备制作字幕1. 导入视频2. 将视频拖拽到轨道3. 生成字幕4. 导出字幕 字幕实时翻译1. 播放视频2. 显示字幕设置3. 双语字幕显示 总结 视频没有字幕怎么办&#xff0c;怎么给视频增加字幕 前言 有时候下载的…

第二节HarmonyOS DevEco Studio创建项目以及界面认识

一、创建项目 如果你是首次打开DevEco Studio&#xff0c;那么首先会进入欢迎页。 在欢迎页中单击Create Project&#xff0c;进入项目创建页面。 选择‘Application’&#xff0c;然后选择‘Empty Ability’&#xff0c;单击‘Next’进入工程配置页。 配置页中&#xff0c;详…

Mysql的分库分表

一、单Mysql节点 假如一主一从 为什么不能无限读&#xff1f; 瓶颈分析&#xff1a; 资源限制&#xff1a; 如CPU、内存、磁盘I/O、网络带宽等。随着读请求的增加&#xff0c;服务器的负载将会增加&#xff0c;甚至可能导致系统崩溃。 连接数限制&#xff1a; MySQL有最大连…

Docker:深入解析Nexus技术构建可靠的软件仓库管理系统

1、简述 在现代软件开发中&#xff0c;有效的软件仓库管理是确保项目成功的关键一环。Nexus Repository Manager作为一种流行的仓库管理系统&#xff0c;为开发人员提供了强大的工具&#xff0c;用于存储、检索和管理软件构建。本文将深入解析Nexus技术&#xff0c;探讨其关键…

GPIO的使用--操作PF09 PF10 PF08实现呼吸灯、跑马灯、警报闪烁灯

先来个呼吸灯演示 呼吸灯 目录 一、GPIO的介绍 1.含义 2.控制原理 3.控制流程 二、LED控制 1.呼吸灯 操作代码 烧录结果 2.蜂鸣器红绿灯交替 操作代码 3.红绿灯交替闪烁 操作代码 一、GPIO的介绍 1.含义 GPIO(general porpose intput output),通用输入输出端口。…

应用密码学期末复习(2)

目录 第二章 2.1数论与密码基础-数论基本概念 2.1.1几个基本概念 2.1.2辗转相除法 2.1.3解一次周余式 2.2密码基础-单表密码 2.2.1单表密码体制 2.2.2单表密码的统计分析 2.3密码基础-多表密码 2.4密码基础-置换密码 第二章 2.1数论与密码基础-数论基本概念 2.1.1几…

window关于下载anaconda 2023年以后的版本,jupyter notebook闪退,没有内核的问题

这种问题的解决办法&#xff1a; 下载anaconda较早版本&#xff0c;比如我下载的是&#xff1a;2022年5月的版本。 下载之后&#xff0c;打开jupyter好像也会没有内核和闪退。 下面解决步骤&#xff1a; 1.注意&#xff1a;打开anaconda powershell prompt 2.重点来了&#xf…

IDEA 2022.1 同一个 spring boot main类运行多个实例

普通的 Java 项目 运行多个实例是非常简单的&#xff0c;直接点击 run 多次即可&#xff0c;但在 spring boot 中默认情况下&#xff0c;是不允许把同一个 web 项目改完端口后多次运行的&#xff0c;如下会显示让你先停止当前实例后再启动&#xff1a; 开启运行多个实例的的方法…

Redis面试题:哨兵模式相关问题,以及脑裂问题

目录 面试官&#xff1a;怎么保证Redis的高并发高可用 面试官&#xff1a;你们使用redis是单点还是集群&#xff0c;哪种集群 面试官&#xff1a;redis集群脑裂&#xff0c;该怎么解决呢&#xff1f; 面试官&#xff1a;怎么保证Redis的高并发高可用 候选人&#xff1a;首先…

WordPress:构建强大的网站和博客的完美选择

WordPress&#xff1a;构建强大的网站和博客的完美选择 一、WordPress 简介1.1 WordPress 介绍1.2 WordPress 优势 二、部署LNMP环境2.1 前提条件2.2 关闭防火墙和SELinux2.3 安装Nginx2.4 安装MySQL2.5 安装PHP2.6 配置Nginx2.7 配置MySQL2.8 配置PHP2.9 测试访问LNMP平台 三、…

【九章斩题录】Leetcode:面试题 01.03. URL化(C/C++)

精品题解 &#x1f525; 《九章斩题录》 &#x1f448; 猛戳订阅 面试题 01.03. URL化 &#x1f4da; 题目&#xff1a;URL化。编写一种方法&#xff0c;将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符&#xff0c;并且知道字符串的“真实”长度。…

【每日一题】子数组的最小值之和

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;贡献法单调栈 写在最后 Tag 【贡献法】【单调栈】【数组】【2023-11-27】 题目来源 907. 子数组的最小值之和 题目解读 计算整数数组的连续子数组中最小值的和。 解题思路 本题朴素的解决思想是求出所有的连续子数组…

微软重磅更新:Bing Chat全线改名Copilot,用户可免费使用GPT4!(文末附Copilot使用教程)

原创 | 文 BFT机器人 微软在2023年的Ignite大会上宣布了许多新产品和功能。其中最引人注目的是Bing Chat更名为Copilot&#xff0c;Copilot基于最新的OpenAI模型&#xff0c;包括GPT-4和DALL・E 3&#xff0c;为用户提供文本和图像生成功能。也就是说&#xff0c;只要你拥有微…

TDA4开发环境Docker化

文章目录 背景1. TDA4X Linux SDK编译环境镜像构建1.1 安装SDK1.2 验证制卡1.2.1 出现的问题:1.3 验证编译1.3.1 出现的问题2. TDA4X Linux-RT SDK编译环境镜像构建2.1 安装SDK2.2 出现的问题参考背景 开始阅读本篇前,假设你已经对docker有了一定了解,且有过docker换件搭建…

在龙蜥 anolis os 23 上 源码安装 PostgreSQL 16.1

在龙蜥 OS 23上&#xff0c;本来想使用二进制安装&#xff0c;结果发现没有针对龙蜥的列表&#xff1a; 于是想到了源码安装&#xff0c;下面我们列出了PG源码安装的步骤&#xff1a; 1.安装准备 1.1.创建操作系统组及用户 groupadd postgres useradd -g postgres -m postgr…

Windows全系列 本地密码暴力破解

首先 咱们要准备两个工具&#xff1a; 第一个是 pwdump-master 第二个是 saminside_softradar-com.exe这两个工具 我会一并上传 需要的同学 可以自取本文章操作思路是&#xff1a; 第一步 首先把我刚刚提到的两个软件 以某种手段放置于机器中 如果是真实机 就用U盘 拷贝到真实机…

sCrypt 现已支持各类主流前端框架

sCrypt 现已支持各类主流前端框架&#xff0c;包括&#xff1a; ReactNext.jsAngularSvelteVue 3.x or 2.x bundled with Vite or Webpack 通过在这些支持的前端框架中集成sCrypt开发环境&#xff0c;你可以直接在前端项目里访问合约实例和调用合约&#xff0c;方便用户使用Se…