membphis commented on a change in pull request #1888:
URL: https://github.com/apache/incubator-apisix/pull/1888#discussion_r460458881
##########
File path: apisix/plugins/prometheus/exporter.lua
##########
@@ -152,9 +165,70 @@ local function nginx_status()
label_values[1] = name
metrics.connections:set(val[0], label_values)
+
end
end
+local key_values = {}
+local function set_modify_index(key, items, items_ver, global_max_index)
+ local max_idx = 0
Review comment:
we'd better clear the `key_values`, it is safer.
##########
File path: apisix/plugins/prometheus/exporter.lua
##########
@@ -152,9 +165,70 @@ local function nginx_status()
label_values[1] = name
metrics.connections:set(val[0], label_values)
+
end
end
+local key_values = {}
+local function set_modify_index(key, items, items_ver, global_max_index)
+ local max_idx = 0
+
+ if items_ver and items then
+ for _, item in ipairs(items) do
+ if type(item) == "table" and item.modifiedIndex > max_idx then
+ max_idx = item.modifiedIndex
+ end
+ end
+ end
+
+ key_values[1] = key
+ metrics.etcd_modify_indexes:set(max_idx, key_values)
+
+
+ global_max_index = max_idx > global_max_index and max_idx or
global_max_index
+
+ return global_max_index
+end
+local function etcd_modify_index()
Review comment:
code style: two blank lines between different functions.
##########
File path: apisix/plugins/prometheus/exporter.lua
##########
@@ -152,9 +165,70 @@ local function nginx_status()
label_values[1] = name
metrics.connections:set(val[0], label_values)
+
end
end
+local key_values = {}
+local function set_modify_index(key, items, items_ver, global_max_index)
+ local max_idx = 0
+
+ if items_ver and items then
+ for _, item in ipairs(items) do
+ if type(item) == "table" and item.modifiedIndex > max_idx then
+ max_idx = item.modifiedIndex
+ end
+ end
+ end
+
+ key_values[1] = key
+ metrics.etcd_modify_indexes:set(max_idx, key_values)
+
+
+ global_max_index = max_idx > global_max_index and max_idx or
global_max_index
+
+ return global_max_index
+end
+local function etcd_modify_index()
+ local global_max_idx = 0
+
+ -- routes
+ local routes, routes_ver = get_routes()
+ global_max_idx = set_modify_index("routes", routes, routes_ver,
global_max_idx)
+
+ -- services
+ local services, services_ver = get_services()
+ global_max_idx = set_modify_index("services", services, services_ver,
global_max_idx)
+
+ -- ssls
+ local ssls, ssls_ver = get_ssls()
+ global_max_idx = set_modify_index("ssls", ssls, ssls_ver, global_max_idx)
+
+ -- consumers
+ local consumers, consumers_ver = get_consumers()
+ global_max_idx = set_modify_index("consumers", consumers, consumers_ver,
global_max_idx)
+
+ -- consumers
+ local consumers, consumers_ver = get_consumers()
+ global_max_idx = set_modify_index("consumers", consumers, consumers_ver,
global_max_idx)
+
+ -- global_rules
+ local global_rules = router.global_rules
+ if global_rules then
+ global_max_idx = set_modify_index("global_rules", global_rules.values,
+ global_rules.conf_version, global_max_idx)
+ end
+
+ -- upstreams
+ local upstreams, upstreams_ver = get_upstreams()
+ global_max_idx = set_modify_index("upstreams", upstreams, upstreams_ver,
global_max_idx)
+
+ -- global max
+ key_values[1] = "max_modify_index"
Review comment:
clear table `key_values` too
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]