InnoDB Buffer Pool Size % of Total RAM - (Buffer Pool Size of Total RAM) 返回无数据

InnoDB Buffer Pool Size % of Total RAM - (Buffer Pool Size of Total RAM) returning No Data

我已经安装了 prometheus node_exporter running on port 9100 and mysqld_exporterrunning in port 9104 and configured grafana to use prometheus 作为默认源。

在 grafana 资源管理器中,我可以使用类似以下内容查询 node_memory_MemTotal_bytes

node_memory_MemTotal_bytes{instance="10.0.0.4:9100"}

notice port 9100 (node_exporter)

而且我还可以查询 innodb_buffer_pool_size 使用:

 mysql_global_variables_innodb_buffer_pool_size{instance="10.0.0.4:9104"}

notice port 9104 (mysqld_exporter)

我想计算 Buffer pool size of total RAM 使用:

(mysql_global_variables_innodb_buffer_pool_size{instance=~"$host"} * 100) / on (instance) node_memory_MemTotal_bytes{instance=~"$host"}

我遇到的问题是 $host 是 IP 和端口:10.0.0.4:9104 并且只能从 mysqld_exporter 获取 mysql_global_variables_innodb_buffer_pool_size 而不是 node_memory_MemTotal_bytes 因为在端口 9100 因为这个我得到 No Data

关于如何混合来自 node_exportermysqld_exporter 的指标的数据有什么想法吗?

这是普罗米修斯配置:

- job_name: test_mysql
  scheme: http
  static_configs:
  - targets:
    - 10.0.0.4:9104

- job_name: test_node
  scheme: http
  static_configs:
  - targets:
    - 10.0.0.4:9100

按照步骤更新缓冲池大小-

  1. 编辑 innodb_buffer_pool_size
  2. MySQL 概述/编辑面板,替换指标 (mysql_global_variables_innodb_buffer_pool_size{instance="$host"} * 100) / on (instance) node_memory_MemTotal_bytes{instance="$host"} 进入 avg by (node_name) ((mysql_global_variables_innodb_buffer_pool_size{service_name=~""} * 100)) /on (node_name) (avg by (node_name) (node_memory_MemTotal_bytes{node_name=~""}))

替换旧指标,如下所示-

  1. 保存设置

我花了一整个下午来找到它的修复程序,所以我想我会分享它,以防它能帮助到其他人。

我终于能够使用 label_replace 函数让它工作了。

我用以下查询替换了原始查询:

(label_replace(mysql_global_variables_innodb_buffer_pool_size{instance="$host"}, "nodename", "", "instance", "(.*):.*") * 100) / on(nodename) (label_replace(node_memory_MemTotal_bytes, "nodename", "", "instance", "(.*):.*"))

label_replace 允许(除其他事项外)添加新标签,该标签可以基于现有标签的值。在这种情况下,我们使用它来添加一个新的 nodename 标签,它获取我们从中删除 :port 部分的实例标签 (hostname:port) 的值.

因此,这允许来自不同导出器实例的指标共享具有相同值的标签,从而在需要时一起使用它们(在这里,我们想使用 mysqld_exporter 中的 mysql_global_variables_innodb_buffer_pool_size 指标对于给定的主机,同一查询中 node_exporter 中的 node_memory_MemTotal_bytes

HTH.

巴蒂斯特