You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by me...@apache.org on 2020/08/16 02:00:03 UTC
[apisix] branch master updated: feat(prometheus): add prometheus
metrics `node_info`(hostname) (#2063)
This is an automated email from the ASF dual-hosted git repository.
membphis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git
The following commit(s) were added to refs/heads/master by this push:
new 7525f1f feat(prometheus): add prometheus metrics `node_info`(hostname) (#2063)
7525f1f is described below
commit 7525f1fcc93de1d9dd4767124359198eb053177a
Author: nic-chen <33...@users.noreply.github.com>
AuthorDate: Sun Aug 16 09:59:55 2020 +0800
feat(prometheus): add prometheus metrics `node_info`(hostname) (#2063)
* using a new metric `node_info` to store the hostname
---
apisix/plugins/prometheus/exporter.lua | 10 ++++++++++
t/plugin/prometheus.t | 10 ++++++++++
2 files changed, 20 insertions(+)
diff --git a/apisix/plugins/prometheus/exporter.lua b/apisix/plugins/prometheus/exporter.lua
index 8e6d74d..82ccf45 100644
--- a/apisix/plugins/prometheus/exporter.lua
+++ b/apisix/plugins/prometheus/exporter.lua
@@ -78,6 +78,11 @@ function _M.init()
metrics.etcd_reachable = prometheus:gauge("etcd_reachable",
"Config server etcd reachable from APISIX, 0 is unreachable")
+
+ metrics.node_info = prometheus:gauge("node_info",
+ "Info of APISIX node",
+ {"hostname"})
+
metrics.etcd_modify_indexes = prometheus:gauge("etcd_modify_indexes",
"Etcd modify index for APISIX keys",
{"key"})
@@ -98,6 +103,7 @@ function _M.init()
metrics.bandwidth = prometheus:counter("bandwidth",
"Total bandwidth in bytes consumed per service in APISIX",
{"type", "route", "service", "node"})
+
end
@@ -265,6 +271,8 @@ function _M.collect()
etcd_modify_index()
-- config server status
+ local vars = ngx.var or {}
+ local hostname = vars.hostname or ""
local config = core.config.new()
local version, err = config:server_version()
if version then
@@ -276,6 +284,8 @@ function _M.collect()
"processing metrics endpoint: ", err)
end
+ metrics.node_info:set(1, gen_arr(hostname))
+
local res, _ = config:getkey("/routes")
if res and res.headers then
clear_tab(key_values)
diff --git a/t/plugin/prometheus.t b/t/plugin/prometheus.t
index 3a7d5c7..9a43def 100644
--- a/t/plugin/prometheus.t
+++ b/t/plugin/prometheus.t
@@ -773,3 +773,13 @@ GET /apisix/prometheus/metrics
qr/apisix_etcd_modify_indexes\{key="x_etcd_index"\} \d+/
--- no_error_log
[error]
+
+
+
+=== TEST 43: fetch the prometheus metric data -- hostname
+--- request
+GET /apisix/prometheus/metrics
+--- response_body eval
+qr/apisix_node_info\{hostname=".*"\} 1/
+--- no_error_log
+[error]