Prometheus实战篇::什么是Exporter

欢迎各位关注下我的微信公众号:全干程序员demo
回复 “java面试” 获取[java精品面试题]
回复 “idea” 获取[idea2023最新版破解至2099年]
回复"自媒体" 获取个人自媒体笔记:玩转字节跳动平台(可以联系我催更,有时可能因为工作或者发布文章没空更新,因为笔记都是我自己做的)

概述

所有可以向Prometheus提供监控样本数据的程序都可以被称为一个Exporter.而Exporter的一个实例称为target,如图下所示,

Prometheus通过轮询的方式定期从这些target中获取样本数据:
image-20231219162200282.png

这里Prometheus是通过pull(拉取的方式)从Target中获取样本数据

安装好Exporter后会暴露一个/metrics的HTTP服务,通过Prometheus添加配置Prometheus就可以采集到这个/metrics里面的所有监控样本数据

 - targets: ['node_exporter:9100'] 会自动带上/metrics

Exporter的来源

从exporter的来源上来讲,一共分俩类:

社区提供的

社区提供 (https://prometheus.io/docs/instrumenting/exporters/)

3)image-20231219163211900.png

Prometheus社区提供了丰富的Exporter实现,涵盖了从基础设施,中间件一级网络等各个方面的监控功能.这些Exporter可以实现大部分通用的监控需求.下表列举一些社区中常用的Exporter:

使用范围常用的Exporter
数据库MySQL Exporter,RedisExporter,MongDB Exporter,MSSQL Exporter等
硬件Apcupsd Exporter,IoT Edison Exporter,IPMI Exporter等
消息队列Kafka Exporter,RabbitMQ Exporter,NSQ Exporter等
存储Ceph Exporter,Gluster Exporter,HDFS Exporter,等
HTTP服务Apache Exporter,HAProxy Exporter,Nginx Exporter等
API服务AWS Exporter,Docker Cloud Exporter,Docker Hub Exporter,GitHub Exporter等
日志Flue Exporter,Grok Exporter等
监控系统Collectd Exporter,Graphite Exporter,InfluxDB Exporter,Nagios Exporter等
其他Blockbox Exporter,JIRA Exporter,Jenkins Exporter,Confluence Exporter等

用户自定义

除了直接使用社区提供的Exporter程序意外,用户还可以基于Prometheus提供的Client Library创建自己的Exporter程序,目前Prometheus社区官方提供了对以下编程语言的支持:Go,java,Python,Ruby.同事还有第三方实现的如:Bash,C++,Common Lisp,Erlang,Haskeel,Lua,Node.js,PHP,Rust等.

Exporter类型

通常来说可以将Exporter分为俩类

  • 直接采集型
    这类Exporter直接内置了相应的应用程序,用于向Prometheus直接提供Target数据支持.这样设计的好处是,可以更好的监控各自系统的内部运行状态,同时也适合更多自定义监控指标的项目实施.例如k8s 等.他们均内置了用于Prometheus提供监控数据的端点.
  • 间接采集型
    原始监控目标并不直接支持Prometheus,需要我们使用Prometheus提供的Client Library编写该监控目标的监控采集程序,用户可以将该程序独立运行,去获取指定的各类监控数据值.例如,由于Linux操作系统自身并不能直接支持Prometheus.用户无法从操作系统层面上直接提供对Prometheus的支持,因此单独安装Node Exporter,还有数据库或网站HTTP应用类等Exporter.

Exporter规范

所有的Exporter程序都需要按照Prometheus的规范,返回监控的样本数据.以Node Exporter为例,当访问/metrics结尾地址时会返回一下内容:

# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 4.029e-05
go_gc_duration_seconds{quantile="0.25"} 5.2092e-05
go_gc_duration_seconds{quantile="0.5"} 6.3091e-05
go_gc_duration_seconds{quantile="0.75"} 8.9905e-05
go_gc_duration_seconds{quantile="1"} 0.000300032
go_gc_duration_seconds_sum 2.6172319120000003
go_gc_duration_seconds_count 36170
# HELP go_goroutines Number of goroutines that currently exist.
# TYPE go_goroutines gauge
go_goroutines 9
# HELP go_info Information about the Go environment.
# TYPE go_info gauge
go_info{version="go1.19.3"} 1
# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use.
# TYPE go_memstats_alloc_bytes gauge
go_memstats_alloc_bytes 2.19788e+06

以#开头的行通常都是注释内容,这些样本数据集合说明如下:

  • 以#HELP开始的行,表示metric的帮助与说明注释,可以包含当前监控指标名称和对应的说明信息.
  • 以#TYPE开始的行,表示定义metric类型,可以包含当前监控指标名称和类型,类型有Counter,Gauge…
  • 非#开头的行,就是监控样本数据

样本数据如何存储Prometheus的库中

//这种方式进行展示
go_memstats_alloc_bytes 2.19788e+06
//这种方式进行存储
go_memstats_alloc_bytes{instance="localhost:9090", job="prometheus"} timestamp(时间戳) value(样本值)

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

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

相关文章

Centos安装Docker及使用

文章目录 配置要求Centos安装Docker卸载docker(可选)安装docker首先需要大家虚拟机联网,安装yum工具然后更新本地镜像源:然后输入安装docker命令:查看docker的版本 启动docker关闭防火墙接着通过命令启动docker 配置镜…

NPM介绍与使用

什么是NPM? NPM(Node Package Manager)是一个强大的包管理工具,专门用于Node.js应用程序的依赖管理。它允许开发者轻松地分享、安装、更新和管理项目中使用的库、工具和框架。 NPM的安装 在使用NPM之前,请确保你的机…

数学建模学习笔记-皮尔逊相关系数

内容:皮尔逊相关系数 一.概念:是一个和线性线关的相关性系数 1.协方差概念: 协方差受到量纲的影响因此需要剔除 2.相关性的误区 根据这个结论,我们在计算该系数之前需要确定是否为线性函数 二.相关性的计算 1.Matlab&#xff…

Sulfo-CY5 COOH使用方法及标记注意事项

Sulfo-CY5 COOH是一种水溶性荧光染料,通常用于生物标记和成像。以下是一般的Sulfo-CY5 COOH使用方法和标记注意事项: 使用方法: 1. 染料溶解:Sulfo-CY5 COOH通常以粉末或冻干形式供应。在使用前,您需要将其溶解在适当…

Linux学习(4)——vi/vim编译器基础操作

目录 一、vi编辑器 1、基本格式 2、常用选项 二、三种常见模式 2.1 命令模式 2.1.1 退出VIM 2.1.2 光标跳转 2.1.3 复制命令 2.1.4 删除命令 2.1.5 字符大小写 2.1.6 交换字符位置 2.1.7 粘贴命令 2.2 输入模式 2.2.1 切入输入模式 2.3 末行模式 2.3.1 …

Enge问题解决教程

目录 解决问题的一般步骤: 针对"Enge问题"的具体建议: 以下是一些普遍适用的解决问题的方法: 以下是一些更深入的Enge浏览器问题和解决办法: 浏览器性能问题: 浏览器插件与网站冲突: 浏览…

MsSQL中的索引到底长啥样,查找过程怎么进行

参考文章一 参考文章二 建表 mysql> create table user(-> id int(10) auto_increment,-> name varchar(30),-> age tinyint(4),-> primary key (id),-> index idx_age (age)-> )engineinnodb charsetutf8mb4;insert into user(name,age) values(张三,…

键盘失灵?别慌!三招帮你调出电脑软键盘

在电脑使用中,我们有时候需要输入文字,但可能会遇到键盘突然失灵的情况。这时,我们可以使用电脑自带的软键盘来解决问题。本文将介绍如何调出电脑软键盘,以便在需要时进行文字输入。 下面以Windows10系统电脑调出软键盘为例进行演…

JSON Web Token JWT几种简单的绕过方法

JWT结构 JSON Web Token(JWT)是一个非常轻巧的规范。 这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。 JWT常被用于前后端分离,可以和Restful API配合使用,常用于构建身份认证机制 如图为JWT加密后的示例&…

PAT 乙级1026 程序运行时间

要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。这个时间单位是 clock tick,即“时钟打点”。同时还有一个常数 CLK_TCK&…

[数据结构进阶 C++] 二叉搜索树(BinarySearchTree)的模拟实现

文章目录 1、二叉搜索树1.1 二叉搜索数的概念1.2 二叉搜索树的操作1.2.1 二叉搜索树的查找1.2.2 二叉搜索树的插入1.2.3 二叉搜索树的删除 2、二叉搜索树的应用2.1 K模型2.2 KV模型 3、二叉搜索树的性能分析4、K模型与KV模型完整代码4.1 二叉搜索树的模拟实现(K模型…

SuperMap Hi-Fi 3D SDK for Unity矢量面贴地贴模型

作者:kele 一、背景 SuperMap Hi-Fi 3D SDK(2023 11i) for Unity推出新功能:支持矢量面同时贴地形图层和模型图层,并且能实现数据点击查询属性、更改初始填充颜色、初始边框线颜色、选中填充颜色、选中边框线颜色、控…

Redis-学习笔记

Remote Dictionary Server(Redis) 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API,是跨平台的非关系型数据库。 Redis 通常被称为数据结构服务器&…

Oracle基本的SQL语句

1.最基本的增删改查 1.1.新增 insert 1.1.1.单表新增 INSERT INTO table_count_output (data_date,table_name,table_count ) VALUES (2023-03-15,FMCUSLVL,351 );COMMIT; 1.1.2.关联新增 INSERT INTO table_count_output (data_date,table_name,table_count )SELECTdata_…

jar 包依赖相关

maven 仓库地址&#xff1a; https://repo.maven.apache.org/maven2/org.apache.commons.httpclient <dependency><groupId>commons-httpclient</groupId><artifactId>commons-httpclient</artifactId><version>3.1</version></…

CSRF检测工具(XSRF检测工具)使用说明

目录 检查类型 测试单个端点 抓取网站 添加Cookie 自定义用户代理

系列十二(面试)、Java中的GC回收类型有哪些?

一、Java中的GC回收类型 1.1、概述 Java中的GC回收类型主要包含以下几种&#xff0c;即&#xff1a;UseSerialGC、UseParallelGC、UseConcMarkSweepGC、UseParNewGC、UseParallelOldGC、UseG1GC。 1.2、源码

定长子串中元音的最大数目(字符串定长滑动窗口)

1、题目 给你字符串 s 和整数 k 。 请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。 英文中的 元音字母 为&#xff08;a, e, i, o, u&#xff09;。 示例 1&#xff1a; 输入&#xff1a;s "abciiidef", k 3 输出&#xff1a;3 解释&…

【Linux笔记】文件查看和编辑

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Linux学习 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 命令 cat (Concatenate and Display): more 和 less: nano 和 vim (文本编辑器): 结语 我的其他博客 前言 学习Linux命令行和文件…

Redis监控与故障排查:工具与技巧

大家好&#xff0c;我是升仔 引言 Redis作为一个广泛使用的内存数据库&#xff0c;在众多系统中都扮演着关键角色。有效的监控和故障排查对于保持Redis的高性能和稳定性至关重要。 1、常见故障场景及处理 内存耗尽 当Redis耗尽可用内存时&#xff0c;会拒绝写操作或根据配置…