尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
sql_exporter核心概念完全指南:5分钟看懂Target、Job、Collector、Query与Metric
sql_exporter核心概念完全指南5分钟看懂Target、Job、Collector、Query与Metric【免费下载链接】sql_exporterDatabase agnostic SQL exporter for Prometheus项目地址: https://gitcode.com/gh_mirrors/sqle/sql_exportersql_exporter是一款面向 Prometheus 的数据库无关型 SQL 监控导出器database agnostic SQL exporter它不依赖特定数据库你只需通过配置文件编写 SQL 查询就能把 MySQL、PostgreSQL、SQL Server、ClickHouse 等任意数据库的数据变成 Prometheus 指标。对新手来说理解它的五大核心概念——Target、Job、Collector、Query、Metric是上手配置的第一步 一图理解sql_exporter 是如何工作的sql_exporter 部署在数据库服务器旁边Prometheus 定时抓取它的/metrics端点每次抓取会同步执行配置中定义的 SQL 查询。整个体系可以类比为一套监控流水线Job任务→ Target监控对象→ Collector采集器→ QuerySQL 查询→ Metric指标概念一句话解释对应源码Target一个被监控的数据库实例通过 DSN 连接target.goJob共享同一组采集器的一批 Targetjob.goCollector一组相关 SQL 查询与指标的集合collector.goQuery具体执行的 SQL 语句可被多个指标复用query.goMetric最终暴露在/metrics的 Prometheus 指标metric.go所有配置项的定义都集中在 config/config.go 中想深入细节可以直接查阅该文件。 核心概念 1Target监控目标Target 就是你要监控的那个数据库实例它由一个数据源名称DSN标识例如sqlserver://prom_user:prom_passworddbserver1:1433。sql_exporter 会利用 DSN 中://前的 schema 部分自动选择对应的 Go 驱动。Target 的每次采集流程见 target.go 中的Collect方法先对数据库执行 Ping判断目标是否可达若可达则并行运行它绑定的所有 Collector自动导出up1/0表示目标是否存活和scrape_duration_seconds本次抓取耗时两个内置指标。小提示当数据库不可达时/metrics会返回 HTTP 500Prometheus 便自动记录up0——这意味着你不需要写任何代码就能获得数据库宕机告警。 核心概念 2Job监控任务Job 是一组使用相同采集器的 Target 集合对应源码定义Job is a collection of targets with the same collectors appliedjob.go。配置中你二选一单 Target 模式直接写target段适合一台 sql_exporter 盯一个库的简单场景最常用多 Job 模式用jobs段定义多个任务每个任务下用static_configs列出若干 Target并为它们打上统一的job、instance标签及自定义标签。# 单 Target 模式见 examples/sql_exporter.yml target: data_source_name: sqlserver://prom_user:prom_passworddbserver1.example.com:1433 collectors: [mssql_standard]多 Job 模式让监控同类的 10 个 MySQL 实例变得非常简单只需在同一个 Job 里罗列它们即可标签完全一致便于在 Grafana 里做聚合对比。️ 核心概念 3Collector采集器Collector 是一组逻辑相关的 SQL 查询与指标的集合比如查询统计、I/O 统计、InnoDB 状态。它是 sql_exporter 最核心的抽象——采集什么内容完全由你在配置中定义。Collector 有两种定义方式见 config/config.go 的CollectorConfig内联定义直接写在sql_exporter.yml的collectors段下独立文件放在*.collector.yml文件中通过collector_files通配符加载便于跨环境共享和复用。项目自带一份开箱即用的 SQL Server 标准采集器包含死锁数、缓冲池命中率、I/O 等待等常用指标非常适合作为编写自定义采集器的模板examples/mssql_standard.collector.yml⚡性能技巧Collector 支持min_interval配置。设为 0默认时每次抓取都执行查询设为非零值后采集器会使用缓存collector.go 中的cachingCollector间隔内的重复抓取直接返回上次的结果——对昂贵查询特别友好。 核心概念 4QuerySQL 查询Query 就是真正执行的 SQL 语句。一个 Collector 可以包含多条 Query多条 Query 会并发执行见 query.go 的Collect方法。Query 有两种写法字面量查询直接内嵌在 Metric 下的query字段命名查询在 Collector 的queries段中定义多个 Metric 通过query_ref引用同一条查询——一次查询、多份指标避免重复扫描。完整示例见 documentation/sql_exporter.yml 中的io_stall查询。Query 返回的结果列分两类Key 列映射为指标的标签labelValue 列成为指标的数值一个 Value 列直接取值多个 Value 列时需用value_label指明标签名。 核心概念 5Metric指标Metric 是最终暴露在/metrics端点的 Prometheus 指标每个 Metric 必须声明四要素见 config/config.go 的MetricConfig及 metric.go 中的MetricFamily字段说明metric_name指标名如mssql_deadlockstype类型目前支持gauge与counterhelp人类可读的描述文本query/query_ref数据来源二者必填其一此外还可以附加key_labels来自查询结果的动态标签、static_labels固定键值对、value_label多值列的标签名。以 examples/mssql_standard.collector.yml 中的死锁指标为例key_labels把结果列db变成标签values指定cntr_value列为数值——一条查询即可生成mssql_log_growths{dbmydb} 5这样的指标。 五大概念如何协作用一次 Prometheus 抓取串起全部流程Prometheus 访问/metrics触发 sql_exporter 依次处理每个Job下的每个Target每个 Target Ping 数据库后并行运行其Collector列表每个 Collector 并发执行自己的Query查询结果按key_labels/values映射规则填充Metric统一附加job、instance等常量标签所有 Metric 汇入/metrics响应。 记住这条主线Job 管哪些库用同一套采集规则Target 管连哪个库Collector 管采集什么主题Query 管怎么查Metric 管怎么呈现。 上手建议与延伸阅读完整配置文件模板含所有字段注释documentation/sql_exporter.yml单 Target 模式示例examples/sql_exporter.yml配置解析与校验逻辑config/config.go快速启动克隆仓库后执行go build ./cmd/sql_exporter再运行./sql_exporter -help查看所有命令行参数默认监听:9399/metrics只需 5 分钟掌握这五个概念的分工你就能轻松读懂甚至从零编写 sql_exporter 配置把任意数据库变成 Prometheus 监控体系中的一员 【免费下载链接】sql_exporterDatabase agnostic SQL exporter for Prometheus项目地址: https://gitcode.com/gh_mirrors/sqle/sql_exporter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

让页面加载速度翻倍:http_study实战Cache-Control与条件请求两大核心武器

让页面加载速度翻倍:http_study实战Cache-Control与条件请求两大核心武器

让页面加载速度翻倍:http_study实战Cache-Control与条件请求两大核心武器 【免费下载链接】http_study follow me to study http 项目地址: https://gitcode.com/gh_mirrors/ht/http_study 🚀 想让网站秒开?http_study 是一个跟随《透…

📅 2026/9/22 11:04:40
Discovering Expert-Level Nash Equilibrium Algorithms with Large Language Models

Discovering Expert-Level Nash Equilibrium Algorithms with Large Language Models

论文《Discovering Expert-Level Nash Equilibrium Algorithms with Large Language Models》总结与翻译 一、文章主要内容总结 本文聚焦算法设计与分析领域的核心挑战——自动化发现具有可证明性能保证的通用算法,以计算近似纳什均衡(ϵ\epsilonϵ-approximate Nash Equil…

📅 2026/9/22 12:28:51
API接口安全防护全方案,彻底杜绝数据泄露与接口被刷

API接口安全防护全方案,彻底杜绝数据泄露与接口被刷

在数字化转型全面落地的当下,API接口作为业务系统、移动端、小程序、第三方平台之间数据交互的核心载体,支撑着企业绝大多数线上业务运转。但从全网安全漏洞监测数据来看,超70%的企业数据泄露、业务被刷、越权攻击事件,均源于API接…

📅 2026/10/10 2:35:18
MORE NEWS

更多资讯

📰

工业级C-MinusF教学编译器:LLVM IR生成与循环优化实战

简介:本资源是中国科学技术大学2020年秋季《编译原理》课程满分实践项目成果,面向高校计算机专业高年级学生、编译技术学习者及系统软件开发者,完整呈现一个支持C-MinusF语言的工业级教学编译器实现。项目覆盖词法分析、语法分析、LLVM IR生成…

📰

ThreadLocalRandom高并发随机数生成原理与实战优化

1. 为什么需要重新认识ThreadLocalRandom1.1 从一次压测事故说起前阵子帮一个朋友排查线上问题,场景很典型:一个订单号生成服务,QPS 一上来就出现大量线程阻塞,CPU 飙高但吞吐上不去。用工具抓了线程栈,发现一堆线程卡…

📰

CSS核心机制与实战技巧:从层叠、盒模型到Flex/Grid布局

1. 核心技巧背后的设计逻辑:先搞懂CSS到底在解决什么问题做前端这些年,我见过太多开发者把CSS当成“会了就行的样式语言”,上来就背属性、抄代码,结果一到真实项目就露怯:样式永远差几像素,页面一缩放就乱&…

📰

Python网络舆情分析系统实战:从数据采集到情感分析可视化

简介:这是一套面向高校学生的Python网络舆情分析系统完整项目,可作为Python毕业设计或课程设计使用,适合具备Python基础、需要完成综合实践项目的学习者。项目采用Python 3.7或3.8开发,配合PyCharm与Navicat,数据库为M…

📰

电机换向能量疏导:电气-机械-控制协同抑制反冲

1. 问题不是“反冲力太大”,而是能量无处可去“电机换向时反冲力太大”——这句话在电机调试现场几乎每天都会被不同岗位的人重复提起。但我要先说一个可能让很多人愣住的事实:电机本身并不会凭空产生“反冲力”。所谓“反冲”,其实是电能、磁…

📰

LoadRunner创建测试脚本实战:用TaoToken统一Key打通VuGen与Web Services协议调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬