MySQL 输入插件
此插件从 MySQL 服务器实例收集统计信息。
要从性能模式收集指标,必须首先在 MySQL 中启用它。有关详细信息,请参阅性能模式快速入门。
引入于: Telegraf v0.1.1 标签: datastore 操作系统支持: all
全局配置选项
插件支持其他全局和插件配置设置,用于修改指标、标签和字段,创建别名以及配置插件顺序等任务。更多详情请参阅 CONFIGURATION.md。
配置
# Read metrics from one or many mysql servers
[[inputs.mysql]]
## specify servers via a url matching:
## [username[:password]@][protocol[(address)]]/[?tls=[true|false|skip-verify|custom]]
## see https://github.com/go-sql-driver/mysql#dsn-data-source-name
## e.g.
## servers = ["user:passwd@tcp(127.0.0.1:3306)/?tls=false"]
## servers = ["user@tcp(127.0.0.1:3306)/?tls=false"]
#
## If no servers are specified, then localhost is used as the host.
servers = ["tcp(127.0.0.1:3306)/"]
## Selects the metric output format.
##
## This option exists to maintain backwards compatibility, if you have
## existing metrics do not set or change this value until you are ready to
## migrate to the new format.
##
## If you do not have existing metrics from this plugin set to the latest
## version.
##
## Telegraf >=1.6: metric_version = 2
## <1.6: metric_version = 1 (or unset)
metric_version = 2
## if the list is empty, then metrics are gathered from all database tables
# table_schema_databases = []
## gather metrics from INFORMATION_SCHEMA.TABLES for databases provided
## in the list above
# gather_table_schema = false
## gather thread state counts from INFORMATION_SCHEMA.PROCESSLIST
# gather_process_list = false
## gather user statistics from INFORMATION_SCHEMA.USER_STATISTICS
# gather_user_statistics = false
## gather auto_increment columns and max values from information schema
# gather_info_schema_auto_inc = false
## gather metrics from INFORMATION_SCHEMA.INNODB_METRICS
# gather_innodb_metrics = false
## gather metrics from all channels from SHOW SLAVE STATUS command output
# gather_all_slave_channels = false
## gather metrics from SHOW SLAVE STATUS command output
# gather_slave_status = false
## gather metrics from SHOW REPLICA STATUS command output
# gather_replica_status = false
## use SHOW ALL SLAVES STATUS command output for MariaDB
## use SHOW ALL REPLICAS STATUS command if enable gather replica status
# mariadb_dialect = false
## gather metrics from SHOW BINARY LOGS command output
# gather_binary_logs = false
## gather metrics from SHOW GLOBAL VARIABLES command output
# gather_global_variables = true
## gather metrics from PERFORMANCE_SCHEMA.TABLE_IO_WAITS_SUMMARY_BY_TABLE
# gather_table_io_waits = false
## gather metrics from PERFORMANCE_SCHEMA.TABLE_LOCK_WAITS
# gather_table_lock_waits = false
## gather metrics from PERFORMANCE_SCHEMA.TABLE_IO_WAITS_SUMMARY_BY_INDEX_USAGE
# gather_index_io_waits = false
## gather metrics from PERFORMANCE_SCHEMA.EVENT_WAITS
# gather_event_waits = false
## gather metrics from PERFORMANCE_SCHEMA.FILE_SUMMARY_BY_EVENT_NAME
# gather_file_events_stats = false
## gather metrics from PERFORMANCE_SCHEMA.EVENTS_STATEMENTS_SUMMARY_BY_DIGEST
# gather_perf_events_statements = false
#
## gather metrics from PERFORMANCE_SCHEMA.EVENTS_STATEMENTS_SUMMARY_BY_ACCOUNT_BY_EVENT_NAME
# gather_perf_sum_per_acc_per_event = false
#
## list of events to be gathered for gather_perf_sum_per_acc_per_event
## in case of empty list all events will be gathered
# perf_summary_events = []
## the limits for metrics form perf_events_statements
# perf_events_statements_digest_text_limit = 120
# perf_events_statements_limit = 250
# perf_events_statements_time_limit = 86400
## Some queries we may want to run less often (such as SHOW GLOBAL VARIABLES)
## example: interval_slow = "30m"
# interval_slow = ""
## Optional TLS Config (used if tls=custom parameter specified in server uri)
# tls_ca = "/etc/telegraf/ca.pem"
# tls_cert = "/etc/telegraf/cert.pem"
# tls_key = "/etc/telegraf/key.pem"
## Use TLS but skip chain & host verification
# insecure_skip_verify = false字符串数据
某些字段可能会返回字符串数据。这对于需要数字数据的某些输出(例如 Prometheus)来说是没有用的。在这些情况下,用户可以使用 enum 处理器将字符串值转换为数字值。下面是一个使用 slave_slave_io_running 字段的示例,该字段可以有多种字符串值。
[[processors.enum]]
namepass = "mysql"
[[processors.enum.mapping]]
field = "slave_slave_io_running"
dest = "slave_slave_io_running_int"
default = 4
[processors.enum.mapping.value_mappings]
Yes = 0
No = 1
Preparing = 2
Connecting = 3指标版本
当 metric_version = 2 时,各种字段类型问题以及命名不一致都会得到纠正。如果您在原始版本上有现有数据,启用此功能会在插入 InfluxDB 时由于类型更改而导致 字段类型错误。因此,您应该将 metric_version 保持未设置状态,直到您准备好迁移到新格式。
如果不需要保留旧数据,您可能希望删除冲突的测量值。
DROP SERIES from mysql
DROP SERIES from mysql_variables
DROP SERIES from mysql_innodb否则,可以使用以下步骤进行迁移:
复制您的
mysql插件配置,并添加name_suffix和metric_version = 2,这将导致同时使用旧样式和新样式进行收集。[[inputs.mysql]] servers = ["tcp(127.0.0.1:3306)/"] [[inputs.mysql]] name_suffix = "_v2" metric_version = 2 servers = ["tcp(127.0.0.1:3306)/"]将所有受影响的 Telegraf 客户端升级到版本 >=1.6。
将使用
name_suffix创建新的测量值,例如:mysql_v2mysql_variables_v2
将图表、警报和其他支持代码更新为新格式。
现在您可以删除旧的
mysql插件配置并删除旧的测量值。
如果您希望删除 name_suffix,可以使用 Kapacitor 将历史数据复制到默认名称。仅在停用旧的测量值名称后执行此操作。
使用上述技术写入多个位置。
[[inputs.mysql]] servers = ["tcp(127.0.0.1:3306)/"] metric_version = 2 [[inputs.mysql]] name_suffix = "_v2" metric_version = 2 servers = ["tcp(127.0.0.1:3306)/"]创建一个 TICKScript 来复制历史数据。
dbrp "telegraf"."autogen" batch |query(''' SELECT * FROM "telegraf"."autogen"."mysql_v2" ''') .period(5m) .every(5m) |influxDBOut() .database('telegraf') .retentionPolicy('autogen') .measurement('mysql')为您的脚本定义一个任务。
kapacitor define copy-measurement -tick copy-measurement.task运行任务处理您想要迁移的数据。
kapacitor replay-live batch -start 2018-03-30T20:00:00Z -stop 2018-04-01T12:00:00Z -rec-time -task copy-measurement验证复制的数据并对其他测量值重复此操作。
Metrics
- 全局状态 -
SHOW GLOBAL STATUSES的所有数值和布尔值。 - 全局变量 -
SHOW GLOBAL VARIABLES的所有数值和布尔值。 - 从属状态 -
SHOW SLAVE STATUS的指标,当单源复制开启时收集指标。如果设置了多源复制,则一切都会有所不同,此指标不适用于多源复制,除非您设置了gather_all_slave_channels = true。对于 MariaDB,应设置mariadb_dialect = true来处理字段名称和命令差异。如果启用了gather_replica_status,则从SHOW REPLICA STATUS命令收集指标,对于 MariaDB 将是SHOW ALL REPLICAS STATUS。- slave_[列名]
- 二进制日志 - 包括所有二进制文件的尺寸和数量的所有指标。需要在配置中启用。
- binary_size_bytes(int, number)
- binary_files_count(int, number)
- 进程列表 - 来自每个用户的 processlist 的连接指标。它具有以下标签:
- connections(int, number)
- 用户统计 - 来自每个用户的 user statistics 的连接指标。它具有以下字段:
- access_denied
- binlog_bytes_written
- busy_time
- bytes_received
- bytes_sent
- commit_transactions
- concurrent_connections
- connected_time
- cpu_time
- denied_connections
- empty_queries
- hostlost_connections
- other_commands
- rollback_transactions
- rows_fetched
- rows_updated
- select_commands
- 服务器
- table_rows_read
- total_connections
- total_ssl_connections
- update_commands
- user
- Perf Table IO waits - 每个表和进程的 I/O 等待事件的总数和时间。它具有以下字段:
- table_io_waits_total_fetch(float, number)
- table_io_waits_total_insert(float, number)
- table_io_waits_total_update(float, number)
- table_io_waits_total_delete(float, number)
- table_io_waits_seconds_total_fetch(float, milliseconds)
- table_io_waits_seconds_total_insert(float, milliseconds)
- table_io_waits_seconds_total_update(float, milliseconds)
- table_io_waits_seconds_total_delete(float, milliseconds)
- Perf index IO waits - 每个索引和进程的 I/O 等待事件的总数和时间。它具有以下字段:
- index_io_waits_total_fetch(float, number)
- index_io_waits_seconds_total_fetch(float, milliseconds)
- index_io_waits_total_insert(float, number)
- index_io_waits_total_update(float, number)
- index_io_waits_total_delete(float, number)
- index_io_waits_seconds_total_insert(float, milliseconds)
- index_io_waits_seconds_total_update(float, milliseconds)
- index_io_waits_seconds_total_delete(float, milliseconds)
- Info schema autoincrement statuses - autoincrement 字段及其最大值。它具有以下字段:
- auto_increment_column(int, number)
- auto_increment_column_max(int, number)
- InnoDB metrics - information_schema.INNODB_METRICS 中所有状态为“enabled”的指标。对于 MariaDB,请设置
mariadb_dialect = true来使用ENABLED=1。 - Perf table lock waits - 收集每个表和操作的 SQL 和外部锁等待事件的总数和时间。它具有以下字段。字段的单位因标签而异。
- read_normal(float, number/milliseconds)
- read_with_shared_locks(float, number/milliseconds)
- read_high_priority(float, number/milliseconds)
- read_no_insert(float, number/milliseconds)
- write_normal(float, number/milliseconds)
- write_allow_write(float, number/milliseconds)
- write_concurrent_insert(float, number/milliseconds)
- write_low_priority(float, number/milliseconds)
- read(float, number/milliseconds)
- write(float, number/milliseconds)
- Perf events waits - 收集事件等待的总时间和数量。
- events_waits_total(float, number)
- events_waits_seconds_total(float, milliseconds)
- Perf file events statuses - 收集文件事件状态。
- file_events_total(float,number)
- file_events_seconds_total(float, milliseconds)
- file_events_bytes_total(float, bytes)
- Perf events statements - 收集每个事件的属性。
- events_statements_total(float, number)
- events_statements_seconds_total(float, millieconds)
- events_statements_errors_total(float, number)
- events_statements_warnings_total(float, number)
- events_statements_rows_affected_total(float, number)
- events_statements_rows_sent_total(float, number)
- events_statements_rows_examined_total(float, number)
- events_statements_tmp_tables_total(float, number)
- events_statements_tmp_disk_tables_total(float, number)
- events_statements_sort_merge_passes_totals(float, number)
- events_statements_sort_rows_total(float, number)
- events_statements_no_index_used_total(float, number)
- Table schema - 收集每个 schema 的统计信息。它具有以下测量值:
- info_schema_table_rows(float, number)
- info_schema_table_size_data_length(float, number)
- info_schema_table_size_index_length(float, number)
- info_schema_table_size_data_free(float, number)
- info_schema_table_version(float, number)
标签
- 所有测量值都具有以下标签:
- server (收集指标的主机名)
- Process list 测量值具有以下标签:
- user (收集指标的用户名)
- User Statistics 测量值具有以下标签:
- user (收集指标的用户名)
- Perf table IO waits 测量值具有以下标签:
- schema
- name (事件或进程的对象名称)
- Perf index IO waits 具有以下标签:
- schema
- name
- index
- Info schema autoincrement statuses 具有以下标签:
- schema
- table
- column
- Perf table lock waits 具有以下标签:
- schema
- table
- sql_lock_waits_total (包含此标签的字段为数字单位)
- external_lock_waits_total (包含此标签的字段为数字单位)
- sql_lock_waits_seconds_total (包含此标签的字段为毫秒单位)
- external_lock_waits_seconds_total (包含此标签的字段为毫秒单位)
- Perf events statements 具有以下标签:
- event_name
- Perf file events statuses 具有以下标签:
- event_name
- mode
- Perf file events statements 具有以下标签:
- schema
- digest
- digest_text
- Table schema 具有以下标签:
- schema
- table
- component
- type
- engine
- row_format
- create_options
示例输出
此页面是否有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一员!我们欢迎并鼓励您对 Telegraf 和本文档提出反馈和 bug 报告。要获取支持,请使用以下资源
具有年度合同或支持合同的客户可以 联系 InfluxData 支持。