观测云对接 Pinpoint 最佳实践

news2024/9/27 12:09:31

简介

Pinpoint 是一个开源的分布式应用性能监控工具,由韩国搜索引擎公司 Naver 开发。它主要用于跟踪和监控分布式应用程序和微服务架构中的性能问题。Pinpoint 的核心功能包括对分布式链路的追踪和监控,通过收集和分析数据来帮助开发者定位问题所在。Pinpoint 支持实时的链路追踪,可以追踪请求在不同服务之间的传播路径,帮助用户了解整个操作流程和性能瓶颈。

观测云支持各种 APM 工具,包括 Pinpoint,只需要安装 DataKit,开通 Pinpoint 采集器,即可接收来自 Pinpoint 上报的链路数据,然后再通过观测云强大的分析展示能力,在观测云上对应用的链路、应用的日志、应用运行的环境进行综合分析。

实验环境

  • 观测云 SaaS
  • Linux 主机(可以连接 https://openway.guance.com )
  • 安装 JDK1.8
  • 安装 DataKit
  • 下载 Java Demo
  • 下载 pinpoint-agent-2.5.1.tar.gz

集成方案

部署 DataKit

登录观测云控制台,点击「集成」 -「DataKit」 - 「Linux」,点击「复制」图标。

把复制的安装命令粘贴到 Linux 主机上执行,执行 datakit monitor 查看 DataKit 运行情况。

datakit monitor

开通采集器

DataKit 内置几十种采集器,开通采集器很方便,只需要复制官方提供的 sample 文件,改成 .conf 结尾,然后重启 DataKit。

Pinpoint 采集器
cd /usr/local/datakit/conf.d/pinpoint/
cp pinpoint.conf.sample pinpoint.conf
日志采集器
cd /usr/local/datakit/conf.d/log
cp logging.conf.sample pinpoint-log.conf

java-demo-pinpoint-1.0-SNAPSHOT.jar 会产生日志文件 /usr/local/df-demo/logs/log.log 这里要做链路和日志的联动分析,所以需要采集日志。编辑 pinpoint-log.conf ,logfiles 里面填写文件路径,source 表示数量来源,用于在观测云上区分日志。

重启 DataKit
datakit service -R

重启完成后再执行 datakit monitor ,Inputs 位置多了两个采集器 logging 和 pinpoint 。

应用接入 Pinpoint

解压 pinpoint-agent-2.5.1.tar.gz 到 /usr/local/df-demo 目录,java-demo-pinpoint-1.0-SNAPSHOT.jar 也放到该目录。

cd  /usr/local/df-demo
tar -zxvf pinpoint-agent-2.5.1.tar.gz
配置端口

DataKit 的 Pinpoint 采集器默认接收 Pinpoint 上报链路的端口是 9991,所以需要修改 pinpoint-root.config 配置文件,把上报端口改成 9991

cd  /usr/local/df-demo
vim  pinpoint-agent-2.5.1/pinpoint-root.config
profiler.transport.module = GRPC
profiler.transport.grpc.agent.collector.port = 9991 
profiler.transport.grpc.metadata.collector.port = 9991
profiler.transport.grpc.stat.collector.port = 9991 
profiler.transport.grpc.span.collector.port = 9991 
日志输出 TraceId

logback 日志中输出 trace_id,需要开启一个开关。编辑 pinpoint.config 文件,设置 profiler.logback.logging.transactioninfo 为 true 。

cd  /usr/local/df-demo
vim pinpoint-agent-2.5.1/profiles/release/pinpoint.config

Java Demo 中日志输出是 logback,只需要在日志输出的 layout 中添加 %X{PtxId} %X{PspanId} 即可输出链路调用中 Pinpoint 产生的 trace_id 和 span_id。

    <appender name = "Console" class= "ch.qos.logback.core.ConsoleAppender" >
        <layout class = "ch.qos.logback.classic.PatternLayout">
            <Pattern >%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - [%X{PtxId} %X{PspanId}] - %msg%n</Pattern >
        </layout >
    </appender>

启动 Java 应用。

cd  /usr/local/df-demo
java -javaagent:pinpoint-agent-2.5.1/pinpoint-bootstrap.jar -Dpinpoint.config=pinpoint-agent-2.5.1/pinpoint-root.config -Dpinpoint.agentId=java-pinpoint-demo -Dpinpoint.applicationName=java-pinpoint-demo  -jar java-demo-pinpoint-1.0-SNAPSHOT.jar
日志链路打通

登录观测云控制台,点击「日志」 -「Pipelines」 - 「新建Pipeline」,日志来源输入 pinpoint-log ,输入 Pipeline 名称,填写如下解析规则,最后保存。

grok(_, "%{TIMESTAMP_ISO8601:time}%{SPACE}%{NOTSPACE:thread_name}%{SPACE}%{LOGLEVEL:status}%{SPACE}%{NOTSPACE:class_name}%{SPACE}-%{SPACE}\\[%{NOTSPACE:method_name},%{NUMBER:line}\\]%{SPACE}-%{SPACE}\\[%{DATA:trace_id} %{DATA:span_id}\\]%{SPACE}-%{SPACE}%{GREEDYDATA:msg}") 
default_time(time,"Asia/Shanghai")

效果展示

触发请求

多次访问接口,产生链路和日志。

curl localhost:8090/user

观测云查看

登录观测云控制台,点击「应用性能监测」 -「链路」,这里列出的是请求触发的所有 span,每个 span 的持续时间。

点击一个 span 进入该 span 所在的链路,可以查看上下游的服务电影关系、瀑布图、火焰图。

由于前面打通了链路和日志,日志标签也可以查看当前链路中产生的所有日志信息。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

node版本管理工具Node Version Manager(nvm)的安装及使用

文章目录 一、nvm安装1.1,下载nvm安装包程序&#xff08;选最高版本安装即可&#xff0c;安装前先把本机电脑node卸载&#xff0c;不然管理不到&#xff09;双击安装包进行安装&#xff08;傻瓜式下一步即可&#xff09; 二、配置镜像2.1、使用管理员运行命令提示符2.2、检查nv…

健康减调攻略:1月轻松掉十斤

减调减调&#xff0c;有减才有调&#xff0c;饮食为调、运动重在减&#xff0c;他们是相互作用的&#xff0c;要瘦&#xff0c;只有饮食与运动结合才能事半功倍。 饮食调减&#xff1a; 不需要花多大钱&#xff0c;也不用费精力和时间自己做饭&#xff0c;或狂抠饮食量和食物…

6款ai伪原创软件app,自动生成文章效率更高

在当今信息爆炸的时代&#xff0c;内容创作的需求日益增长。无论是专业的写手、自媒体从业者&#xff0c;还是企业的营销人员&#xff0c;都在不断寻求提高创作效率的方法。而ai伪原创软件app的出现&#xff0c;为创作者们带来了新的解决方案。下面就为大家介绍6个强大的ai伪原…

6款大学生电脑里的必装软件,装进电脑慢慢用

分享6款大学生爱用的windows软件&#xff0c;个个功能强大&#xff0c;装进电脑能提升效率&#xff0c;让大学生活更轻松&#xff01; 1、Everything 大学四年怎么都得积攒下一堆PPT和文档&#xff0c;日子久了存放的乱七八糟&#xff0c;想找的时候一个头两个大。这时候Every…

中断和异常(X86架构)

中断和异常是强制性的执行流的转移&#xff0c;从当前正在执行的任务或程序转移到一个特殊的称作句柄的例程或任务。当硬件发出信号时&#xff0c;便产生中断&#xff0c;中断的产生是同现在正在执行的任务是异步的&#xff0c;即中断的产生是随机的。异常是处理器在执行指令的…

2024年金属非金属矿山(露天矿山)安全管理人员证考试题库及金属非金属矿山(露天矿山)安全管理人员试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年金属非金属矿山&#xff08;露天矿山&#xff09;安全管理人员证考试题库及金属非金属矿山&#xff08;露天矿山&#xff09;安全管理人员试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;…

后端给前端传递数据形式:广播 单播以及组播

目录 1.单播2.广播3.组播4.任播5.总结 网络数据在传输时需要使用特定的传输方式&#xff0c;其中最常见的包括单播、广播、组播和任播。本文将对这四种不同的网络传输方式进行详细介绍&#xff0c;并列举多个例子以说明不同场景下使用何种传输方式。 1.单播 单播是指一种向单个…

联想24春招算法方向部分试题解析

来自牛客题库&#xff0c;浅浅记录一下 CNN模型支持输入不定长序列&#xff1a;错。CNN模型通常用于处理具有固定尺寸输入的图像或类似结构的数据。虽然可以通过一些技术&#xff08;如滑动窗口或填充&#xff09;来处理不同尺寸的图像&#xff0c;但CNN本身并不直接支持输入…

解决arcmap发布影像切片,注册传输数据慢的问题

1、本地服务器进行切片步骤&#xff1a; 开发环境按照正常方案发布影像切片。 2、生产环境切片步骤 a、使用范文等同影像文件范围的矢量面数据&#xff0c;作为切片数据发布切片服务 重点&#xff1a;【服务名称必须一致】 b、获取开发环境切片的切片方案文件conf.xml 重点&am…

探索Python的配置管理大师:ConfigParser的奥秘

文章目录 探索Python的配置管理大师&#xff1a;ConfigParser的奥秘背景&#xff1a;为什么选择ConfigParser&#xff1f;库简介&#xff1a;ConfigParser是什么&#xff1f;安装指南&#xff1a;如何安装ConfigParser&#xff1f;基础用法&#xff1a;五个简单函数介绍1. 创建…

Milvus实践(5) ---- 从attu2.4x窥探Milvus数据结构变化及原理

目录 背景 启动 attu 首页 数据库 系统信息 剖析数据库存储 整体 集合描述 collection & shard segment & partition index 图解 设计动机 可视化对应部分 collection partition segment 查询数据段状态 持久数据段状态 query部分 向量搜索 scal…

PyCharm 运行项目时python 项目时报错:Please select a valid Python interpreter的处理办法

目录 问题现象 问题原因 问题解决办法 问题现象 问题如下图所示&#xff1a; 这种情况下&#xff0c;强行运行也依旧是会报错的。 问题原因 没有选择运行Python的程序。 问题解决办法 修改PyCharm设置&#xff1a; 文件---设置&#xff08;在热键不冲突的情况下&#…

一张期权要多少钱?期权杠杆能做到以小博大吗?

今天带你了解一张期权要多少钱&#xff1f;期权杠杆能做到以小博大吗&#xff1f;做期权交易需要的资金几百元几千元都可以的&#xff0c;除了开户验资的门槛比较高&#xff08;当然也可以选择三方平台开户&#xff09;&#xff0c;期权的权利金都是几元、几百元、几千元都有的…

电容器在高原使用时是否会降容

电容器在高原使用时可能会出现降容现象&#xff0c;主要是由于高原环境的特殊条件引起的。以下是影响电容器在高原地区性能的关键因素&#xff1a; 1、环境气压&#xff1a; 气压降低&#xff1a;在高海拔地区&#xff0c;气压较低&#xff0c;空气密度减少&#xff0c;这会影…

IPython的魔法命令 %timeit 来测试 代码执行时间

在科学计算和数据分析领域&#xff0c;NumPy库是Python中最受欢迎的工具之一。它提供了强大的数组处理能力&#xff0c;使得矩阵运算变得简单高效。本文将介绍如何在Python中使用NumPy进行矩阵乘法&#xff0c;并通过IPython的魔法命令%timeit来测试其执行时间。 # 运行结果&am…

怎么把JPG转成PDF?这3种转换方法一定不要错过

在平时的工作生活当中&#xff0c;把JPG图片转换成PDF文件是一种非常常见的工作需求&#xff0c;无论是为了保护图片文件还是为了方便打印传输&#xff0c;JPG转PDF都是一项非常实用的技术&#xff0c;但是经常有很多新入职场的小伙伴们不知道怎么把图片转成PDF&#xff0c;今天…

npm阿里云制品仓库

配置 配置仓库地址&#xff0c;可以再在仓库指南看到 npm config set registryxxxxx#登录&#xff0c;帐户密码可以在仓库指南看到 npm login注意&#xff1a;npm>9的版本npm login目前有问题 verbose web login not supported, trying couch&#xff0c;暂时没试验到解决…

AI绘制思维导图:使用SpringBoot和Vue实现智能可视化

目录 引言&#xff1a; 思维导图的重要性和应用场景&#xff1a; AI在思维导图绘制中的应用&#xff1a; 概述SpringBoot和Vue框架的特点&#xff1a; 第一部分&#xff1a;思维导图概述 思维导图的定义和历史 思维导图的结构和组成部分 思维导图在不同领域的应用案例 …

汽车功能安全--AutoSAR中的功能安全机制

目录 1. Memory Partitioning 2. Timing\Excute Monitor 3. E2E 4.小结 大家好&#xff0c;这里是高温下认真码字的肌肉&#xff1b;许久没有聊中间件的问题&#xff0c;正巧可能要启动SafetyPack的开发&#xff0c;因此今天回顾回顾在AUTOSAR文档中关于Safety的一些机制。…

线性代数 第一讲 行列式_行列式定义_性质_计算_题型总结

线性代数 第一讲 行列式 文章目录 线性代数 第一讲 行列式1. 行列式的定义1.1 本质定义(几何定义)1.2 行列式的逆序数表示法(第二种定义)1.3 行列式的展开定理(第三种定义&#xff09; 2.行列式的性质2.1 矩阵行列式的性质2.2 方阵行列式的性质 3.行列式的计算3.1 具体型行列式…