Pinpoint(APM)进阶--Pinot指标采集(System Metric/Inspector)

news2024/12/26 11:36:22

接上文
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 use

wget 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: none
  profiles:
    active: local
  shell:
    history:
      enabled: false
  pinot-datasource:
    pinot:
      jdbc-url: jdbc:pinot://localhost:9000

pinpoint:
  modules:
    collector:
      exceptiontrace:
        enabled: true
      inspector:
        enabled: true
        hbase:
          enabled: true
      type: ALL
    realtime:
      enabled: false
  metric:
    kafka:
      bootstrap:
        servers: localhost:19092
  zookeeper:
    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: true
  jackson:
    mapper:
      default-view-inclusion: true
  profiles:
    active: release, metric
  pinot-datasource:
    pinot:
      jdbc-url: jdbc:pinot://localhost:9000

server:
  port: 8080
  error:
    path: /api/error
    include-exception: true
    include-message: always
    include-binding-errors: always
    include-stacktrace: always
    whitelabel:
      enabled: true

pinpoint:
  modules:
    web:
      exceptiontrace:
        enabled: true
      inspector:
        enabled: true
    realtime:
      enabled: false
  zookeeper:
    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采集

在这里插入图片描述

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

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

相关文章

ReactPress:重塑内容管理的未来

ReactPress Github项目地址:https://github.com/fecommunity/reactpress 欢迎提出宝贵的建议,欢迎一起共建,感谢Star。 ReactPress:重塑内容管理的未来 在当今信息爆炸的时代,一个高效、易用的内容管理系统&#xff0…

uniapp路由与页面跳转详解:API调用与Navigator组件实战

UniApp路由与页面跳转详解:API调用与Navigator组件实战 路由 uniapp页面路由为框架统一管理,开发者需要在page.json里面配置每个路由页面的路径及页面样式。 路由跳转 uniapp有两种页面路由跳转方式,调用API跳转和navigator组件跳转。 调…

35.Redis 7.0简介

2022 年 2 月初,Redis 7.0 迎来了首个候选发布(RC)版本。这款内存键值数据库迎来了“重大的性能优化”和其它功能改进,性能优化包括降低写入时复制内存的开销、提升内存效率,改进 fsync 来避免大量的磁盘写入和优化延迟…

MySQL技巧之跨服务器数据查询:基础篇-如何获取查询语句中的参数

MySQL技巧之跨服务器数据查询:基础篇-如何获取查询语句中的参数 上一篇已经描述:借用微软的SQL Server ODBC 即可实现MySQL跨服务器间的数据查询。 而且还介绍了如何获得一个在MS SQL Server 可以连接指定实例的MySQL数据库的连接名: MY_ODBC_MYSQL 以…

连续15年霸榜“双11”行业第一,九牧做对了什么?

文 | 螳螂观察(TanglangFin) 作者 | 余一 随着“双十一”的落幕,各类销售榜单再次成为热门话题。 天猫“双11”全周期589个品牌成交额破亿,其中苹果、海尔、美的、小米、九牧等45个品牌成交额突破10亿。 值得注意的是在绝大多…

【网页设计】HTML5 和 CSS3 提高

目标 能够说出 3~5 个 HTML5 新增布局和表单标签能够说出 CSS3 的新增特性有哪些 1. HTML5 的新特性 注:该部分所有内容可参考菜鸟教程菜鸟教程 - 学的不仅是技术,更是梦想! (runoob.com) HTML5 的新增特性主要是针对于以前的不足&#xf…

Linux手动安装nginx

本次以安装nginx-1.12.2为例 1、首先说明一下,安装nginx之前需要安装如下素材: 2、开始安装 第一步,安装依赖yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel第二步,下载并安装nginx安装包(nginx官网:http://nginx.org/)# 下载 wget http://nginx…

基于springboot+vue实现的大型超市数据处理系统 (源码+L文+ppt)4-015

第4章 系统设计 本章主要讲述的是大型超市数据处理系统的设计开发结构,简单介绍了开发流程与数据库设计的原则以及数据表的关系结构图,并且详细的展示了数据表的内部结构信息与属性。 图4-2 大型超市数据处理系统总体结构图 4.4 数据表信息&#xff…

游戏引擎学习第七天

视频参考:https://www.bilibili.com/video/BV1QFmhYcE69 ERROR_DEVICE_NOT_CONNECTED 是一个错误代码,通常在调用 XInputGetState 或 XInputSetState 函数时返回,表示指定的设备未连接。通常会出现以下几种情况: 未连接控制器:如…

IEC60870-5-104 协议源码架构详细分析

IEC60870-5-104 协议源码架构 前言一、资源三、目录层级一二、目录层级二config/lib60870_config.hdependencies/READMEexamplesCMakeLists.txtcs101_master_balancedcs104_client_asyncmulti_client_servertls_clienttls_server说明 make这些文件的作用是否需要导入这些文件&a…

全面介绍软件安全测试分类,安全测试方法、安全防护技术、安全测试流程

一、软件系统设计开发运行安全 1、注重OpenSource组件安全检查和版本更新(black duck) 现在很多云、云服务器都是由开源的组件去搭成的,对于OpenSource组件应该去做一些安全检查和版本更新,尤其是版本管理,定期对在运…

Cent OS-7的Apache服务配置

WWW是什么? WWW(World Wide Web,万维网)是一个全球性的信息空间,其中的文档和其他资源通过URL标识,并通过HTTP或其他协议访问。万维网是互联网的一个重要组成部分,但它并不是互联网的全部。互联…

遗传算法与深度学习实战(23)——利用遗传算法优化深度学习模型

遗传算法与深度学习实战(23)——利用遗传算法优化深度学习模型 0. 前言1. 神经进化2. 使用遗传算法作为深度学习优化器小结系列链接 0. 前言 神经进化涵盖了所有用于改进深度学习的进化算法。更具体地说,神经进化用来定义应用于深度学习的特…

Kubernetes 核心组件调度器(Scheduler)

文章目录 一,调度约束1.Kubernetes的基本构建块和最小可调度单元pod创建过程(工作机制,重点)1.1list-watch 组件List-Watch 的优点List-Watch 的应用场景List-Watch 的挑战与优化 2.调度过程(重点)2.1调度过程:2.2Kube…

STM32WB55RG开发(3)----生成 BLE 程序连接手机APP

STM32WB55RG开发----3.生成 BLE 程序连接手机APP 概述硬件准备视频教学样品申请源码下载参考程序选择芯片型号配置时钟源配置时钟树RTC时钟配置RF wakeup时钟配置查看开启STM32_WPAN条件配置HSEM配置IPCC配置RTC启动RF开启蓝牙设置工程信息工程文件设置结果演示 概述 本项目旨…

[C++]内联函数和nullptr

> 🍃 本系列为初阶C的内容,如果感兴趣,欢迎订阅🚩 > 🎊个人主页:[小编的个人主页])小编的个人主页 > 🎀 🎉欢迎大家点赞👍收藏⭐文章 > ✌️ 🤞 &#x1…

微软OmniParser:一切皆文档,OCR驱动智能操作

前沿科技速递🚀 微软推出的OmniParser是一种创新的框架,旨在将手机和电脑屏幕视为文档,通过OCR技术与多模态大模型实现对用户界面的深度理解和操作。OmniParser能够高效识别和提取界面中的文本信息、位置和语义,助力自动化操作。 …

使用 Web Search 插件扩展 GitHub Copilot 问答

GitHub Copilot 是一个由 GitHub 和 OpenAI 合作开发的人工智能代码提示工具。它可以根据上下文提示代码,还可以回答各种技术相关的问题。但是 Copilot 本身不能回答非技术类型的问题。为了扩展 Copilot 的功能,微软发布了一个名为 Web Search 的插件&am…

Rust语言在系统编程中的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 Rust语言在系统编程中的应用 Rust语言在系统编程中的应用 Rust语言在系统编程中的应用 引言 Rust 概述 定义与原理 发展历程 Ru…

vue+vite前端项目ci过程中遇到的问题

将项目进行ci流水线构建时,遇到了npm run build 构建完成后命令行不会终止的问题,导致了无法进行下一个步骤。如下图: 排查了好久找到事vite.config.js的配置出了问题,如图所示,将build下的watch改为false即可解决问…