prometheus.exporter.mysql
prometheus.exporter.mysql
组件嵌入 mysqld_exporter 用于从 MySQL 服务器收集统计信息。
用法
prometheus.exporter.mysql "LABEL" {
data_source_name = DATA_SOURCE_NAME
}
参数
以下参数可用于配置导出器的行为。所有参数都是可选的。省略的字段将使用其默认值。
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
data_source_name | secret | 数据源名称 用于连接到 MySQL 服务器。 | 是 | |
enable_collectors | list(string) | 除了默认集之外要启用的 收集器 列表。 | 否 | |
disable_collectors | list(string) | 要从默认集中禁用的 收集器 列表。 | 否 | |
set_collectors | list(string) | 要运行的 收集器 列表。完全覆盖默认集。 | 否 | |
lock_wait_timeout | int | 获取元数据锁的超时时间(以秒为单位)。 | 2 | 否 |
log_slow_filter | bool | 用于避免将抓取查询记录到慢查询日志中。 | 否 | 否 |
在连接上设置 lock_wait_timeout
以避免元数据锁的潜在长时间等待时间。查看有关 lock_wait_timeout
的更详细文档 在 MySQL 文档中。
注意:
log_slow_filter
不受 Oracle MySQL 支持。
块
以下块在 prometheus.exporter.mysql
的定义中受支持,以配置特定于收集器的选项
层次结构 | 名称 | 描述 | 必需 |
---|---|---|---|
info_schema.processlist | info_schema.processlist | 配置 info_schema.processlist 收集器。 | 否 |
info_schema.tables | info_schema.tables | 配置 info_schema.tables 收集器。 | 否 |
perf_schema.eventsstatements | perf_schema.eventsstatements | 配置 perf_schema.eventsstatements 收集器。 | 否 |
perf_schema.file_instances | perf_schema.file_instances | 配置 perf_schema.file_instances 收集器。 | 否 |
perf_schema.memory_events | perf_schema.memory_events | 配置 perf_schema.memory_events 收集器。 | 否 |
heartbeat | heartbeat | 配置 heartbeat 收集器。 | 否 |
mysql.user | mysql.user | 配置 mysql.user 收集器。 | 否 |
info_schema.processlist 块
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
min_time | int | 线程必须处于每个状态的最小时间,才能被计算在内。 | 0 | 否 |
processes_by_user | bool | 启用按用户收集进程数。 | 是 | 否 |
processes_by_host | bool | 启用按主机收集进程数。 | 是 | 否 |
info_schema.tables 块
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
info_schema_tables_databases | string | 正则表达式,用于匹配要为其收集表统计信息的数据库。 | "*" | 否 |
perf_schema.eventsstatements 块
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
limit | int | 限制事件语句摘要的数量(按 last_seen 降序排序)。 | 250 | 否 |
time_limit | int | 限制 last_seen 事件语句可以有多旧(以秒为单位)。 | 86400 | 否 |
text_limit | int | 规范化语句文本的最大长度。 | 120 | 否 |
perf_schema.file_instances 块
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
filter | string | 正则表达式,用于选择 performance_schema.file_summary_by_instance 中的行。 | ".*" | 否 |
remove_prefix | string | 要从 file_name 中修剪掉的 前缀。 | "/var/lib/mysql" | 否 |
查看有关在 perf_schema_file_instances_filter
和 perf_schema_file_instances_remove_prefix
中使用的表的更详细文档 在 MySQL 文档中。
perf_schema.memory_events 块
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
remove_prefix | string | 要从 performance_schema.memory_summary_global_by_event_name 中修剪掉的 前缀。 | "memory/" | 否 |
heartbeat 块
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
database | string | 要从其收集心跳数据的数据库。 | "heartbeat" | 否 |
table | string | 要从其收集心跳数据的表。 | "heartbeat" | 否 |
utc | bool | 对当前服务器的时间戳使用 UTC(pt-heartbeat 以 --utc 方式调用)。 | 否 | 否 |
mysql.user 块
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
privileges | bool | 启用从 mysql.user 收集用户权限。 | 否 | 否 |
支持的收集器
支持的收集器完整列表是
名称 | 描述 | 默认启用 |
---|---|---|
auto_increment.columns | 从 information_schema 收集 auto_increment 列和最大值。 | 否 |
binlog_size | 收集所有已注册 binlog 文件的当前大小。 | 否 |
engine_innodb_status | 从 SHOW ENGINE INNODB STATUS 收集指标。 | 否 |
engine_tokudb_status | 从 SHOW ENGINE TOKUDB STATUS 收集指标。 | 否 |
global_status | 从 SHOW GLOBAL STATUS 收集指标。 | 是 |
global_variables | 从 SHOW GLOBAL VARIABLES 收集指标。 | 是 |
heartbeat | 从心跳数据库和表中收集指标。 | 否 |
info_schema.clientstats | 如果以 userstat=1 运行,则启用以收集客户端统计信息。 | 否 |
info_schema.innodb_cmpmem | 从 information_schema.innodb_cmpmem 收集指标。 | 是 |
info_schema.innodb_metrics | 从 information_schema.innodb_metrics 收集指标。 | 是 |
info_schema.innodb_tablespaces | 从 information_schema.innodb_sys_tablespaces 收集指标。 | 否 |
info_schema.processlist | 从 information_schema.processlist 收集当前线程状态计数。 | 否 |
info_schema.query_response_time | 如果 query_response_time_stats 为 ON,则收集查询响应时间分布。 | 是 |
info_schema.replica_host | 从 information_schema.replica_host_status 收集指标。 | 否 |
info_schema.schemastats | 如果以 userstat=1 运行,则启用以收集模式统计信息。 | 否 |
info_schema.tables | 从 information_schema.tables 收集指标。 | 否 |
info_schema.tablestats | 如果以 userstat=1 运行,则启用以收集表统计信息。 | 否 |
info_schema.userstats | 如果以 userstat=1 运行,则启用以收集用户统计信息。 | 否 |
mysql.user | 从 mysql.user 收集数据。 | 否 |
perf_schema.eventsstatements | 从 performance_schema.events_statements_summary_by_digest 收集指标。 | 否 |
perf_schema.eventsstatementssum | 从 performance_schema.events_statements_summary_by_digest 收集总体指标。 | 否 |
perf_schema.eventswaits | 从 performance_schema.events_waits_summary_global_by_event_name 收集指标。 | 否 |
perf_schema.file_events | 从 performance_schema.file_summary_by_event_name 收集指标。 | 否 |
perf_schema.file_instances | 从 performance_schema.file_summary_by_instance 收集指标。 | 否 |
perf_schema.indexiowaits | 从 performance_schema.table_io_waits_summary_by_index_usage 收集指标。 | 否 |
perf_schema.memory_events | 从 performance_schema.memory_summary_global_by_event_name 收集指标。 | 否 |
perf_schema.replication_applier_status_by_worker | 从 performance_schema.replication_applier_status_by_worker 收集指标。 | 否 |
perf_schema.replication_group_member_stats | 从 performance_schema.replication_group_member_stats 收集指标。 | 否 |
perf_schema.replication_group_members | 从 performance_schema.replication_group_members 收集指标。 | 否 |
perf_schema.tableiowaits | 从 performance_schema.table_io_waits_summary_by_table 收集指标。 | 否 |
perf_schema.tablelocks | 从 performance_schema.table_lock_waits_summary_by_table 收集指标。 | 否 |
slave_hosts | 从 SHOW SLAVE HOSTS 抓取信息。 | 否 |
slave_status | 从 SHOW SLAVE STATUS 抓取信息。 | 是 |
导出字段
以下字段将被导出,并且可以被其他组件引用。
名称 | 类型 | 描述 |
---|---|---|
targets | list(map(string)) | 可用于收集导出器指标的目标。 |
例如,targets
可以传递给 discovery.relabel
组件以重写目标的标签集,也可以传递给收集公开指标的 prometheus.scrape
组件。
导出的目标使用 run
命令指定的配置的 内存中流量 地址。
组件健康状况
只有在给出无效配置时,prometheus.exporter.mysql
才会报告为不健康。在这种情况下,导出字段会保留其最后一次健康的值。
调试信息
prometheus.exporter.mysql
不公开任何特定于组件的调试信息。
调试指标
prometheus.exporter.mysql
不公开任何特定于组件的调试指标。
示例
此示例使用 prometheus.scrape
组件 从 prometheus.exporter.mysql
收集指标
prometheus.exporter.mysql "example" {
data_source_name = "root@(server-a:3306)/"
enable_collectors = ["heartbeat", "mysql.user"]
}
// Configure a prometheus.scrape component to collect mysql metrics.
prometheus.scrape "demo" {
targets = prometheus.exporter.mysql.example.targets
forward_to = [prometheus.remote_write.demo.receiver]
}
prometheus.remote_write "demo" {
endpoint {
url = PROMETHEUS_REMOTE_WRITE_URL
basic_auth {
username = USERNAME
password = PASSWORD
}
}
}
替换以下内容
PROMETHEUS_REMOTE_WRITE_URL
: 要将指标发送到的 Prometheus remote_write 兼容服务器的 URL。USERNAME
: 用于对 remote_write API 进行身份验证的用户名。PASSWORD
: 用于对 remote_write API 进行身份验证的密码。
兼容组件
prometheus.exporter.mysql
有可以被以下组件使用的导出内容
- 使用 Targets 的组件
注意
连接某些组件可能不合理,或者组件可能需要进一步配置才能使连接正常工作。有关更多详细信息,请参考链接文档。