自学内容网 自学内容网

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 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采集

在这里插入图片描述


原文地址:https://blog.csdn.net/leonhongliang806/article/details/143140829

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!