Skip to content

Commit

Permalink
Add redis-version
Browse files Browse the repository at this point in the history
  • Loading branch information
markuslf committed Oct 13, 2023
1 parent 473d4d8 commit 22dc466
Show file tree
Hide file tree
Showing 8 changed files with 404 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ Monitoring Plugins:
* ntp-w32tm (fix [#629](https://github.com/Linuxfabrik/monitoring-plugins/issues/629))
* openstack-nova-list
* postgresql-version
* redis-version
* statuspal

Project:
Expand Down
43 changes: 43 additions & 0 deletions assets/icingaweb2-module-director/all-the-rest.json
Original file line number Diff line number Diff line change
Expand Up @@ -43817,6 +43817,49 @@
"volatile": null,
"zone": null
},
"Redis Version": {
"action_url": null,
"apply_for": null,
"assign_filter": null,
"check_command": null,
"check_interval": null,
"check_period": null,
"check_timeout": null,
"command_endpoint": null,
"disabled": false,
"display_name": null,
"enable_active_checks": null,
"enable_event_handler": null,
"enable_flapping": null,
"enable_notifications": null,
"enable_passive_checks": null,
"enable_perfdata": null,
"event_command": null,
"fields": [],
"flapping_threshold_high": null,
"flapping_threshold_low": null,
"groups": [],
"host": null,
"icon_image": null,
"icon_image_alt": null,
"imports": [
"tpl-service-redis-version"
],
"max_check_attempts": null,
"notes": null,
"notes_url": null,
"object_name": "Redis Version",
"object_type": "object",
"retry_interval": null,
"service_set": null,
"template_choice": null,
"use_agent": null,
"use_var_overrides": null,
"uuid": "f69577c9-df7c-4465-9cb4-3dff059545f1",
"vars": {},
"volatile": null,
"zone": null
},
"Systemd Unit - redis.service": {
"action_url": null,
"apply_for": null,
Expand Down
94 changes: 94 additions & 0 deletions check-plugins/redis-version/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
Check redis-version
===================

Overview
--------

This plugin lets you track if Redis is End-of-Life (EOL). To compare against the current/installed version of Redis, the check has to run on the Redis server itself.

This check plugin alerts n days before or after the EOL date is reached. Optionally, it can also alert on available major, minor or patch releases (each independently).


Fact Sheet
----------

.. csv-table::
:widths: 30, 70

"Check Plugin Download", "https://github.com/Linuxfabrik/monitoring-plugins/tree/main/check-plugins/redis-version"
"Check Interval Recommendation", "Once a day"
"Can be called without parameters", "Yes"
"Compiled for", "Linux"
"Uses SQLite DBs", "``$TEMP/linuxfabrik-lib-version.db``"


Help
----

.. code-block:: text
usage: redis-version [-h] [-V] [--always-ok] [--check-major] [--check-minor]
[--check-patch] [--offset-eol OFFSET_EOL]
Tracks if Redis is EOL.
options:
-h, --help show this help message and exit
-V, --version show program's version number and exit
--always-ok Always returns OK.
--check-major Alert me when there is a new major release available,
even if the current version of my product is not EOL.
Example: Notify when I run v26 (not yet EOL) and v27
is available. Default: False
--check-minor Alert me when there is a new major.minor release
available, even if the current version of my product
is not EOL. Example: Notify when I run v26.2 (not yet
EOL) and v26.3 is available. Default: False
--check-patch Alert me when there is a new major.minor.patch release
available, even if the current version of my product
is not EOL. Example: Notify when I run v26.2.7 (not
yet EOL) and v26.2.8 is available. Default: False
--offset-eol OFFSET_EOL
Alert me n days before ("-30") or after an EOL date
("30" or "+30"). Default: -30 days
Usage Examples
--------------

.. code-block:: bash
./redis-version --offset-eol=-30
Output:

.. code-block:: text
Redis v7.0.13 (EOL unknown, minor 7.2.1 available)
States
------

* WARN if software is EOL
* Optional: WARN when new major version is available
* Optional: WARN when new minor version is available
* Optional: WARN when new patch version is available


Perfdata / Metrics
------------------

.. csv-table::
:widths: 25, 15, 60
:header-rows: 1

Name, Type, Description
redis-version, Number, Installed Redis version as float. "3.3.22" becomes "3.322".


Credits, License
----------------

* Authors: `Linuxfabrik GmbH, Zurich <https://www.linuxfabrik.ch>`_
* License: The Unlicense, see `LICENSE file <https://unlicense.org/>`_.
97 changes: 97 additions & 0 deletions check-plugins/redis-version/grafana/redis-version.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
apiVersion: grizzly.grafana.com/v1alpha1
kind: Dashboard
metadata:
folder: linuxfabrik-monitoring-plugins
name: redis-version
spec:
schemaVersion: 2023041201
tags:
- Linuxfabrik
- Grizzly
- static
time:
from: now-90d
to: now
timepicker:
hidden: false
refresh_intervals:
- 1m
timezone: browser
title: Redis Version
uid: linuxfabrik-monitoring-plugins-redis-version
editable: true
liveNow: true
refresh: 1m
templating:
list:
- hide: 2
label: Command
name: command
query: cmd-check-redis-version
type: constant
- label: Hostname
name: hostname
query: SHOW TAG VALUES FROM "cmd-check-redis-version" WITH KEY = "hostname"
refresh: 2
sort: 1
type: query

panels:

- title: Redis Version
type: timeseries
gridPos:
h: 8
w: 12
x: 0
y: 0
fieldConfig:
defaults:
color:
mode: palette-classic
custom:
lineInterpolation: smooth
showPoints: always
spanNulls: true
decimals: 2
unit: none
options:
legend:
calcs:
- min
- max
displayMode: table
placement: bottom
showLegend: true
tooltip:
mode: multi
sort: none

targets:

- alias: redis-version
refId: redis-version
groupBy:
- params:
- $interval
type: time
measurement: /^$command$/
resultFormat: time_series
select:
- - params:
- value
type: field
- params: []
type: mean
tags:
- key: hostname
operator: '=~'
value: /^$hostname$/
- condition: AND
key: service
operator: '='
value: Redis Version
- condition: AND
key: metric
operator: '='
value: redis-version
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
overwrites:
'["ServiceTemplate"]["tpl-service-redis-version"]["check_interval"]': 86400
'["ServiceTemplate"]["tpl-service-redis-version"]["enable_perfdata"]': true
'["ServiceTemplate"]["tpl-service-redis-version"]["retry_interval"]': 300
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[cmd-check-redis-version]
dashboard = "Redis Version"
panelId = "1"
orgId = ""
repeatable = "no"
dashboarduid = "redis-version"
1 change: 1 addition & 0 deletions check-plugins/redis-version/lib
Loading

0 comments on commit 22dc466

Please sign in to comment.