Add latest version metric
* Add a special handler for latest version info * Add initial latest version items/triggers to the Zabbix template
This commit is contained in:
parent
39a6a9d23e
commit
180fa31d14
12
src/pgmon.py
12
src/pgmon.py
@ -699,6 +699,18 @@ class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
|
||||
if metric_name == "agent_version":
|
||||
self._reply(200, VERSION)
|
||||
return
|
||||
elif metric_name == "latest_version_info":
|
||||
try:
|
||||
get_latest_version()
|
||||
self._reply(
|
||||
200,
|
||||
json.dumps(
|
||||
{"latest": latest_version, "supported": 1 if release_supported else 0}
|
||||
),
|
||||
)
|
||||
except LatestVersionCheckError as e:
|
||||
log.error("Failed to retrieve latest version information: {}".format(e))
|
||||
self._reply(503, "Failed to retrieve latest version info")
|
||||
|
||||
# Note: parse_qs returns the values as a list. Since we always expect
|
||||
# single values, just grab the first from each.
|
||||
|
||||
@ -11,6 +11,39 @@ zabbix_export:
|
||||
groups:
|
||||
- name: 'My Templates'
|
||||
items:
|
||||
- uuid: de1fa757395440118026f4c7a7c4ebbe
|
||||
name: 'PostgreSQL latest supported version'
|
||||
type: DEPENDENT
|
||||
key: pgmon.release.latest
|
||||
delay: '0'
|
||||
preprocessing:
|
||||
- type: JSONPATH
|
||||
parameters:
|
||||
- $.latest
|
||||
master_item:
|
||||
key: 'pgmon[latest_version_info]'
|
||||
tags:
|
||||
- tag: Application
|
||||
value: PostgreSQL
|
||||
- uuid: e1a003317bc043908ee0803704a6e1d0
|
||||
name: 'PostgreSQL release support status'
|
||||
type: DEPENDENT
|
||||
key: pgmon.release.supported
|
||||
delay: '0'
|
||||
preprocessing:
|
||||
- type: JSONPATH
|
||||
parameters:
|
||||
- $.supported
|
||||
master_item:
|
||||
key: 'pgmon[latest_version_info]'
|
||||
tags:
|
||||
- tag: Application
|
||||
value: PostgreSQL
|
||||
triggers:
|
||||
- uuid: 88eac74402d64e7cb853e8cb505b1939
|
||||
expression: 'last(/PostgreSQL by pgmon/pgmon.release.supported)<>1'
|
||||
name: 'PostgreSQL major release is lo longer supported'
|
||||
priority: INFO
|
||||
- uuid: 763920af8da84db8a9a2667d9653cb21
|
||||
name: 'PostgreSQL Agent Version'
|
||||
type: HTTP_AGENT
|
||||
@ -24,6 +57,19 @@ zabbix_export:
|
||||
tags:
|
||||
- tag: Application
|
||||
value: PostgreSQL
|
||||
- uuid: d890e395fbbc4f2bacbd50e7321fcb9f
|
||||
name: 'PostgreSQL latest version info'
|
||||
type: HTTP_AGENT
|
||||
key: 'pgmon[latest_version_info]'
|
||||
delay: 12h
|
||||
history: '0'
|
||||
value_type: TEXT
|
||||
trends: '0'
|
||||
description: 'Information about the latest PostgreSQL version in the current series'
|
||||
url: 'http://localhost:{$AGENT_PORT}/version'
|
||||
tags:
|
||||
- tag: Application
|
||||
value: PostgreSQL
|
||||
- uuid: 8706eccb7edc4fa394f552fc31f401a9
|
||||
name: 'Max Frozen XID Age'
|
||||
type: HTTP_AGENT
|
||||
@ -1017,3 +1063,22 @@ zabbix_export:
|
||||
- type: STRING
|
||||
name: reference
|
||||
value: XSCMZ
|
||||
triggers:
|
||||
- uuid: 94ce93c828aa46b4bd4f3732fc7090c6
|
||||
expression: 'last(/PostgreSQL by pgmon/pgmon.release.latest) - last(/PostgreSQL by pgmon/pgmon[version]) >= 1'
|
||||
name: 'PostgreSQL is at least 1 version behind'
|
||||
priority: INFO
|
||||
dependencies:
|
||||
- name: 'PostgreSQL is at least 2 version behind'
|
||||
expression: 'last(/PostgreSQL by pgmon/pgmon.release.latest) - last(/PostgreSQL by pgmon/pgmon[version]) >= 2'
|
||||
- uuid: 2701bcd1223c4ee787f3eca30288e6c6
|
||||
expression: 'last(/PostgreSQL by pgmon/pgmon.release.latest) - last(/PostgreSQL by pgmon/pgmon[version]) >= 2'
|
||||
name: 'PostgreSQL is at least 2 version behind'
|
||||
priority: INFO
|
||||
dependencies:
|
||||
- name: 'PostgreSQL is at least 3 version behind'
|
||||
expression: 'last(/PostgreSQL by pgmon/pgmon.release.latest) - last(/PostgreSQL by pgmon/pgmon[version]) >= 3'
|
||||
- uuid: 3c9adbe8b6f84b3788c6a3e513075df5
|
||||
expression: 'last(/PostgreSQL by pgmon/pgmon.release.latest) - last(/PostgreSQL by pgmon/pgmon[version]) >= 3'
|
||||
name: 'PostgreSQL is at least 3 version behind'
|
||||
priority: INFO
|
||||
|
||||
Loading…
Reference in New Issue
Block a user