Pinpoint(APM)进阶--Pinot指标采集(System Metric/Inspector)
接上文
Pinpoint使用Pinot进行指标数据存储,Pinot流摄入需要Kafka
本文详解Kafka和Pinot的安装部署,以及Pinpoint的指标采集

Pinot
简介
Apache Pinot是一个实时分布式OLAP数据存储,专为低延迟、高吞吐量分析而构建,非常适合面向用户的分析工作负载。
Apache Pinot™是一个实时分布式在线分析处理(OLAP)数据存储。使用Pinot从流式或批处理数据源(包括Apache Kafka、Amazon Kinesis、Hadoop HDFS、Amazon S3、Azure ADLS和Google Cloud Storage)摄取并立即查询数据。
支持面向产品最终用户的分析工具,在面向用户的分析应用程序中,所有用户都会在他们的设备上收到个性化分析,导致每秒数十万次查询。应用程序触发的查询可能会与应用程序上的活跃用户数量成比例快速增长,每秒多达数百万个事件。Pinot中生成的数据可以在一秒钟内立即用于分析。
安装
下载
PINOT_VERSION=1.1.0 #set to the Pinot version you decide to usewget https://downloads.apache.org/pinot/apache-pinot-$PINOT_VERSION/apache-pinot-$PINOT_VERSION-bin.tar.gz
解压tar包
启动controller
nohup ./pinot-admin.sh StartController \-zkAddress localhost:2181 \-controllerPort 9000 &

启动broker
nohup ./pinot-admin.sh StartBroker \-zkAddress localhost:2181 &

启动server
nohup ./pinot-admin.sh StartServer \-zkAddress localhost:2181 &

启动kafka
nohup ./pinot-admin.sh StartKafka \-zkAddress=localhost:2181/kafka \-port 19092 &
创建topic
./kafka-topics.sh --create --topic inspector-stat-agent-00 --bootstrap-server localhost:9092
./kafka-topics.sh --create --topic inspector-stat-app --bootstrap-server localhost:9092
./kafka-topics.sh --create --topic system-metric-data-type --bootstrap-server localhost:9092
./kafka-topics.sh --create --topic system-metric-tag --bootstrap-server localhost:9092
./kafka-topics.sh --create --topic system-metric-double --bootstrap-server localhost:9092


下载脚本(采集数据的表)
https://github.com/pinpoint-apm/pinpoint/tree/master/inspector-module/inspector-collector/src/main/pinot
https://github.com/pinpoint-apm/pinpoint/tree/master/metric-module/metric/src/main/pinot
将table后缀的脚本里的replicasPerPartition和replication改为1(单点模式)




执行脚本
./multi-table.sh 0 0 http://localhost:9000
两个参数表示新增从inspectorStatAgentXX到inspectorStatAgentXX的表, 0 0 表示inspectorStatAgent00,0 2表示inspectorStatAgent00 - inspectorStatAgent02

./pinot-admin.sh AddTable \-schemaFile ../pinot-dataType-schema.json \-tableConfigFile ../pinot-dataType-realtime-table.json \-exec./pinot-admin.sh AddTable \-schemaFile ../pinot-tag-schema.json \-tableConfigFile ../pinot-tag-realtime-table.json \-exec./pinot-admin.sh AddTable \-schemaFile ../pinot-double-schema.json \-tableConfigFile ../pinot-double-realtime-table.json \-exec./pinot-admin.sh AddTable \-schemaFile ../pinot-inspector-stat-agent-schema.json \-tableConfigFile ../pinot-inspector-stat-agent-realtime-table.json \-exec./pinot-admin.sh AddTable \-schemaFile ../pinot-inspector-stat-application-schema.json \-tableConfigFile ../pinot-inspector-stat-application-realtime-table.json \-exec
成功启动后访问http://ip:9000

Telegraf
基于服务器的代理,从数据库、系统和物联网传感器收集和发送指标和事件。Telegraf是用Go编写的,可以编译成一个没有外部依赖的二进制文件,只需要很少的内存。
安装
官方网站下载包
https://docs.influxdata.com/telegraf

wget https://dl.influxdata.com/telegraf/releases/telegraf-1.32.2_linux_amd64.tar.gz
创建配置文件
./telegraf --sample-config > telegraf.conf
添加如下配置
[[outputs.http]]url = "http://127.0.0.1:15200/telegraf"data_format = "json"[outputs.http.headers]hostGroupName = "leon-test"Content-Type = "application/json"
inputs.system增加一个配置

移动配置文件
mv telegraf.conf /etc/telegraf/telegraf.conf
启动telegraf
nohup /root/telegraf-1.32.2/usr/bin/telegraf &
Collector
下载或编译collector-starter包
创建一个配置文件application.yml,配置pinot的数据源
spring:main:allow-bean-definition-overriding: false
# web-application-type: noneprofiles:active: localshell:history:enabled: falsepinot-datasource:pinot:jdbc-url: jdbc:pinot://localhost:9000pinpoint:modules:collector:exceptiontrace:enabled: trueinspector:enabled: truehbase:enabled: truetype: ALLrealtime:enabled: falsemetric:kafka:bootstrap:servers: localhost:19092zookeeper:address: 127.0.0.1
带上配置文件启动collector-starter
nohup java --add-opens java.base/java.nio=ALL-UNNAMED -jar -Dspring.config.additional-location=./application.yml pinpoint-collector-starter-3.0.0-exec.jar &
Web
下载或编译web-starter包
创建一个配置文件application.yml,配置pinot的数据源
spring:main:allow-bean-definition-overriding: truejackson:mapper:default-view-inclusion: trueprofiles:active: release, metricpinot-datasource:pinot:jdbc-url: jdbc:pinot://localhost:9000server:port: 8080error:path: /api/errorinclude-exception: trueinclude-message: alwaysinclude-binding-errors: alwaysinclude-stacktrace: alwayswhitelabel:enabled: truepinpoint:modules:web:exceptiontrace:enabled: trueinspector:enabled: truerealtime:enabled: falsezookeeper:address: 127.0.0.1
带上配置文件启动web-starter
nohup java --add-opens java.base/java.nio=ALL-UNNAMED -jar -Dspring.config.additional-location=./application.yml pinpoint-web-starter-3.0.0-exec.jar &
功能验证
Inspector采集

Metric采集

相关文章:
Pinpoint(APM)进阶--Pinot指标采集(System Metric/Inspector)
接上文 Pinpoint使用Pinot进行指标数据存储,Pinot流摄入需要Kafka 本文详解Kafka和Pinot的安装部署,以及Pinpoint的指标采集 Pinot 简介 Apache Pinot是一个实时分布式OLAP数据存储,专为低延迟、高吞吐量分析而构建,非常适合面…...
Mysql:使用binlog的一些常用技巧
1、如何查看binlog的存放路径 show variables like log% 执行结果: 2、如何清除binlog (1)按时间清除 purge binary logs before ‘2023-06-5 10:12:00’ (2)按文件文件名清除 purge binary logs to ‘mybinlog.0000…...
Electron 项目启动外部可执行文件的几种方式
Electron 项目启动外部可执行文件的几种方式 序言 在开发 Electron 应用程序时,有时需要启动外部的可执行文件(如 .exe 文件)。这可能是为了调用系统工具、运行第三方软件或者集成现有的应用程序。 Electron 提供了多种方式来启动外部可执行…...
前端开发中常用的包管理器(npm、yarn、pnpm、bower、parcel)
文章目录 1. npm (Node Package Manager)2. Yarn (Yarn Package Manager)3. pnpm4. Bower5. Parcel总结 前端开发中常用的包管理器主要有以下几个: 1. npm (Node Package Manager) 简介: npm 是 Node.js 的默认包管理器,也是最广泛使用的包…...
Linux入门:环境变量与进程地址空间
一. 环境变量 1. 概念 1️⃣基本概念: 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数 如:我们在编写C/C代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里&#x…...
【Jenkins实战】Windows安装服务启动失败
写此篇短文,望告诫后人。 如果你之前装过Jenkins,出于换域账号/本地帐号的原因想重新安装,你大概率会遇上一次Jenkins服务启动失败提示: Jenkins failed to start - Verify that you have sufficient privileges to start system…...
web实操5——http数据详解,request对象功能
http请求数据 现在我们浏览器f12的那些是浏览器给http格式数据整理之后便于我们阅读的。 原始的http格式信息: 就是按照一定格式和符号的字符串: 请求行:格式如下图 请求头:一个个key,value数据,用,分割…...
C# 如何动态加载程序集
程序集的加载,默认是从当前目录下查找,如果当前目录查找不到,然后再去系统目录中查找,依然查找不到就会从环境变量中查找,如果依然找不到,则会抛出一个异常 FileNotFoundException。 托管代码中࿰…...
前端基础的讲解-JS(10)
作用域链 通过上节作用域我们知道,当我们声明一个函数时,程序会生成一个独立的作用域,如果函数中还有函数,那么在这个作用域中就又可以诞生一个作用域;根据 内部函数可以访问外部函数变量 的这种机制,用链…...
JNI整理总结
JNI JNI基础 JNI基础 JNI,java native interface,即java本地接口,是java调用本地化方法的接口,是为java编写本地方法,为jvm嵌入本地应用程序的标准化接口。首要目标是在给定的平台上采用java通过JNI调用本地化方法&am…...
aws中AcmClient.describeCertificate返回值中没有ResourceRecord
我有一个需求,就是让用户自己把自己的域名绑定我们的提供的AWS服务器。 AWS需要验证证书 上一篇文章中我用php的AcmClient中的requestCertificate方法申请到了证书。 $acmClient new AcmClient([region > us-east-1,version > 2015-12-08,credentials>[/…...
Spring Task详细讲解
✨Spring Task简介 Spring Task 是 Spring 提供的轻量级定时任务工具,也就意味着不需要再添加第三方依赖了,相比其他第三方类库更加方便易用。可以按照约定的时间自动执行某个代码逻辑。 使用场景: 信用卡每月还款提醒银行贷款每月还款提醒…...
C++初阶 --- 类和对象(1)
类和对象(1) 一、类的相关内容1.访问限定符2.class关键字与struct关键字的区别3.类域 二、this指针三、成员函数存放在哪里?1. 函数的存放位置2. 练习题 一、类的相关内容 1.访问限定符 (1)C⼀种实现封装的⽅式&…...
《TCP/IP网络编程》学习笔记 | Chapter 7:优雅地断开套接字连接
《TCP/IP网络编程》学习笔记 | Chapter 7:优雅地断开套接字连接 《TCP/IP网络编程》学习笔记 | Chapter 7:优雅地断开套接字连接基于 TCP 的半关闭单方面断开连接带来的问题套接字和流针对优雅断开的 shutdown 函数为何需要半关闭?基于半关闭…...
Anaconda 和 conda 是什么关系?就像 pip 和 python 一样吗
Anaconda 和 conda是 Anaconda Distribution 还是 Miniconda Anaconda 和 conda Anaconda 和 conda 之间的关系有点类似于 pip 和 Python,但又有所不同。 Anaconda 是一个数据科学和机器学习的发行版,它包含了 Python、conda 以及许多预装的库和工具&am…...
「数据治理」核心专业术语解释!
数据治理就是指在一定的组织范围内,依托制度法规、标准规范、应用实践和支撑技术对数据进行全生命周期的数据确权、质量管理、安全控制、隐私保护、开放共享、交易流通和分析处理。数据治理的目标是为了提高数据的可用性、安全性、流通性,激活数据资源…...
Mac Nginx 前端打包部署
安装homebrew /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 安装Nginx brew install nginx nginx相关命令 nginx启动命令:nginx nginx -s reload #重新加载配置 nginx -s reopen #重启 nginx -s stop #…...
乳腺癌诊断分析——基于聚类分析实现
一、研究背景 乳腺癌属于恶性肿瘤,在早期发现后需要及早将病变组织切除,而且术后还要化疗和放射等辅助治疗,能够抑制癌细胞的扩散和增长。 二、研究目的 研究乳腺癌病人的患病特征通过聚类分析方法对特征进行分类通过上述聚类结果对乳腺诊…...
Ubuntu 22.04 安装配置opencv
OpenCV下载:https://opencv.org/releases/ 编译与安装 安装cmake OpenCV需要使用cmake进行编译 sudo apt-get install cmake安装依赖 sudo apt-get install build-essential pkg-config libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev lib…...
【软考】系统架构设计师-计算机系统基础(3):嵌入式系统
嵌入式系统:嵌入式处理器、相关支撑硬件、嵌入式OS、支撑软件以及应用软件 嵌入式系统特征:专用性强、技术融合、软硬一体软件为主、通用计算机资源少,... 分层(5层):硬件层 → 抽象层 → 操作系统层 → 中间件层 →…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist
现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...
Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...
图解JavaScript原型:原型链及其分析 | JavaScript图解
忽略该图的细节(如内存地址值没有用二进制) 以下是对该图进一步的理解和总结 1. JS 对象概念的辨析 对象是什么:保存在堆中一块区域,同时在栈中有一块区域保存其在堆中的地址(也就是我们通常说的该变量指向谁&…...
