当前位置: 首页 > news >正文

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。 托管代码中&#xff0…...

前端基础的讲解-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层):硬件层 → 抽象层 → 操作系统层 → 中间件层 →…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)&#xff0…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) ​遍历字符串​:通过外层循环逐一检查每个字符。​遇到 ? 时处理​: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: ​与…...

Selenium常用函数介绍

目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...

【Linux】Linux 系统默认的目录及作用说明

博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...

Python竞赛环境搭建全攻略

Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...

k8s从入门到放弃之HPA控制器

k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率(或其他自定义指标)来调整这些对象的规模,从而帮助应用程序在负…...