496 lines
13 KiB
JSON
496 lines
13 KiB
JSON
|
{
|
||
|
"__inputs": [
|
||
|
{
|
||
|
"name": "DS_OPM",
|
||
|
"label": "opm",
|
||
|
"description": "",
|
||
|
"type": "datasource",
|
||
|
"pluginId": "postgres",
|
||
|
"pluginName": "PostgreSQL"
|
||
|
},
|
||
|
{
|
||
|
"name": "VAR_NODE_NAME",
|
||
|
"type": "constant",
|
||
|
"label": "node_name",
|
||
|
"value": "p1",
|
||
|
"description": ""
|
||
|
}
|
||
|
],
|
||
|
"__elements": [],
|
||
|
"__requires": [
|
||
|
{
|
||
|
"type": "grafana",
|
||
|
"id": "grafana",
|
||
|
"name": "Grafana",
|
||
|
"version": "8.3.3"
|
||
|
},
|
||
|
{
|
||
|
"type": "datasource",
|
||
|
"id": "postgres",
|
||
|
"name": "PostgreSQL",
|
||
|
"version": "1.0.0"
|
||
|
},
|
||
|
{
|
||
|
"type": "panel",
|
||
|
"id": "stat",
|
||
|
"name": "Stat",
|
||
|
"version": ""
|
||
|
}
|
||
|
],
|
||
|
"annotations": {
|
||
|
"list": [
|
||
|
{
|
||
|
"builtIn": 1,
|
||
|
"datasource": "-- Grafana --",
|
||
|
"enable": true,
|
||
|
"hide": true,
|
||
|
"iconColor": "rgba(0, 211, 255, 1)",
|
||
|
"name": "Annotations & Alerts",
|
||
|
"target": {
|
||
|
"limit": 100,
|
||
|
"matchAny": false,
|
||
|
"tags": [],
|
||
|
"type": "dashboard"
|
||
|
},
|
||
|
"type": "dashboard"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"editable": true,
|
||
|
"fiscalYearStartMonth": 0,
|
||
|
"graphTooltip": 0,
|
||
|
"id": null,
|
||
|
"iteration": 1640961009033,
|
||
|
"links": [],
|
||
|
"liveNow": false,
|
||
|
"panels": [
|
||
|
{
|
||
|
"datasource": {
|
||
|
"type": "postgres",
|
||
|
"uid": "${DS_OPM}"
|
||
|
},
|
||
|
"fieldConfig": {
|
||
|
"defaults": {
|
||
|
"color": {
|
||
|
"mode": "thresholds"
|
||
|
},
|
||
|
"mappings": [],
|
||
|
"thresholds": {
|
||
|
"mode": "absolute",
|
||
|
"steps": [
|
||
|
{
|
||
|
"color": "green",
|
||
|
"value": null
|
||
|
},
|
||
|
{
|
||
|
"color": "red",
|
||
|
"value": 80
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"overrides": [
|
||
|
{
|
||
|
"matcher": {
|
||
|
"id": "byName",
|
||
|
"options": "is_primary"
|
||
|
},
|
||
|
"properties": [
|
||
|
{
|
||
|
"id": "displayName",
|
||
|
"value": "Primaire"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"matcher": {
|
||
|
"id": "byName",
|
||
|
"options": "is_replica"
|
||
|
},
|
||
|
"properties": [
|
||
|
{
|
||
|
"id": "displayName",
|
||
|
"value": "Secondaire"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"gridPos": {
|
||
|
"h": 9,
|
||
|
"w": 12,
|
||
|
"x": 0,
|
||
|
"y": 0
|
||
|
},
|
||
|
"id": 2,
|
||
|
"options": {
|
||
|
"colorMode": "value",
|
||
|
"graphMode": "area",
|
||
|
"justifyMode": "auto",
|
||
|
"orientation": "auto",
|
||
|
"reduceOptions": {
|
||
|
"calcs": [
|
||
|
"lastNotNull"
|
||
|
],
|
||
|
"fields": "",
|
||
|
"values": false
|
||
|
},
|
||
|
"textMode": "auto"
|
||
|
},
|
||
|
"pluginVersion": "8.3.3",
|
||
|
"targets": [
|
||
|
{
|
||
|
"datasource": {
|
||
|
"type": "postgres",
|
||
|
"uid": "${DS_OPM}"
|
||
|
},
|
||
|
"format": "time_series",
|
||
|
"group": [],
|
||
|
"metricColumn": "none",
|
||
|
"rawQuery": true,
|
||
|
"rawSql": " SELECT $__timeGroup(timet, $interval) AS time, MAX(d.value), m.label AS metric\n FROM wh_nagios.metrics m,\nLATERAL wh_nagios.get_metric_data(m.id, $__timeFrom(), $__timeTo()) d\n WHERE m.id_service = (\n SELECT s.id FROM wh_nagios.services s \n JOIN public.servers h ON h.id=s.id_server\n WHERE h.hostname = '$node_name' AND s.service = 'check_patroni_node_is_primary'\n ) GROUP BY time, m.label ORDER BY time",
|
||
|
"refId": "A",
|
||
|
"select": [
|
||
|
[
|
||
|
{
|
||
|
"params": [
|
||
|
"value"
|
||
|
],
|
||
|
"type": "column"
|
||
|
}
|
||
|
]
|
||
|
],
|
||
|
"timeColumn": "time",
|
||
|
"where": [
|
||
|
{
|
||
|
"name": "$__timeFilter",
|
||
|
"params": [],
|
||
|
"type": "macro"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"datasource": {
|
||
|
"type": "postgres",
|
||
|
"uid": "${DS_OPM}"
|
||
|
},
|
||
|
"format": "time_series",
|
||
|
"group": [],
|
||
|
"hide": false,
|
||
|
"metricColumn": "none",
|
||
|
"rawQuery": true,
|
||
|
"rawSql": " SELECT $__timeGroup(timet, $interval) AS time, MAX(d.value), m.label AS metric\n FROM wh_nagios.metrics m,\nLATERAL wh_nagios.get_metric_data(m.id, $__timeFrom(), $__timeTo()) d\n WHERE m.id_service = (\n SELECT s.id FROM wh_nagios.services s \n JOIN public.servers h ON h.id=s.id_server\n WHERE h.hostname = '$node_name' AND s.service = 'check_patroni_node_is_replica'\n ) GROUP BY time, m.label ORDER BY time",
|
||
|
"refId": "B",
|
||
|
"select": [
|
||
|
[
|
||
|
{
|
||
|
"params": [
|
||
|
"value"
|
||
|
],
|
||
|
"type": "column"
|
||
|
}
|
||
|
]
|
||
|
],
|
||
|
"timeColumn": "time",
|
||
|
"where": [
|
||
|
{
|
||
|
"name": "$__timeFilter",
|
||
|
"params": [],
|
||
|
"type": "macro"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"title": "Node type",
|
||
|
"type": "stat"
|
||
|
},
|
||
|
{
|
||
|
"datasource": {
|
||
|
"type": "postgres",
|
||
|
"uid": "${DS_OPM}"
|
||
|
},
|
||
|
"fieldConfig": {
|
||
|
"defaults": {
|
||
|
"color": {
|
||
|
"mode": "thresholds"
|
||
|
},
|
||
|
"mappings": [],
|
||
|
"thresholds": {
|
||
|
"mode": "absolute",
|
||
|
"steps": [
|
||
|
{
|
||
|
"color": "green",
|
||
|
"value": null
|
||
|
},
|
||
|
{
|
||
|
"color": "red",
|
||
|
"value": 80
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"overrides": [
|
||
|
{
|
||
|
"matcher": {
|
||
|
"id": "byName",
|
||
|
"options": "is_alive"
|
||
|
},
|
||
|
"properties": [
|
||
|
{
|
||
|
"id": "displayName",
|
||
|
"value": "Node is alive"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"matcher": {
|
||
|
"id": "byName",
|
||
|
"options": "is_pending_restart"
|
||
|
},
|
||
|
"properties": [
|
||
|
{
|
||
|
"id": "displayName",
|
||
|
"value": "Node is pending restart"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"matcher": {
|
||
|
"id": "byName",
|
||
|
"options": "timeline"
|
||
|
},
|
||
|
"properties": [
|
||
|
{
|
||
|
"id": "displayName",
|
||
|
"value": "Current timeline"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"gridPos": {
|
||
|
"h": 9,
|
||
|
"w": 12,
|
||
|
"x": 12,
|
||
|
"y": 0
|
||
|
},
|
||
|
"id": 4,
|
||
|
"options": {
|
||
|
"colorMode": "value",
|
||
|
"graphMode": "area",
|
||
|
"justifyMode": "auto",
|
||
|
"orientation": "horizontal",
|
||
|
"reduceOptions": {
|
||
|
"calcs": [
|
||
|
"lastNotNull"
|
||
|
],
|
||
|
"fields": "",
|
||
|
"values": false
|
||
|
},
|
||
|
"textMode": "auto"
|
||
|
},
|
||
|
"pluginVersion": "8.3.3",
|
||
|
"targets": [
|
||
|
{
|
||
|
"datasource": {
|
||
|
"type": "postgres",
|
||
|
"uid": "${DS_OPM}"
|
||
|
},
|
||
|
"format": "time_series",
|
||
|
"group": [],
|
||
|
"metricColumn": "none",
|
||
|
"rawQuery": true,
|
||
|
"rawSql": " SELECT $__timeGroup(timet, $interval) AS time, MAX(d.value), m.label AS metric\n FROM wh_nagios.metrics m,\nLATERAL wh_nagios.get_metric_data(m.id, $__timeFrom(), $__timeTo()) d\n WHERE m.id_service = (\n SELECT s.id FROM wh_nagios.services s \n JOIN public.servers h ON h.id=s.id_server\n WHERE h.hostname = '$node_name' AND s.service = 'check_patroni_node_is_alive'\n ) GROUP BY time, m.label ORDER BY time",
|
||
|
"refId": "A",
|
||
|
"select": [
|
||
|
[
|
||
|
{
|
||
|
"params": [
|
||
|
"value"
|
||
|
],
|
||
|
"type": "column"
|
||
|
}
|
||
|
]
|
||
|
],
|
||
|
"timeColumn": "time",
|
||
|
"where": [
|
||
|
{
|
||
|
"name": "$__timeFilter",
|
||
|
"params": [],
|
||
|
"type": "macro"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"datasource": {
|
||
|
"type": "postgres",
|
||
|
"uid": "${DS_OPM}"
|
||
|
},
|
||
|
"format": "time_series",
|
||
|
"group": [],
|
||
|
"hide": false,
|
||
|
"metricColumn": "none",
|
||
|
"rawQuery": true,
|
||
|
"rawSql": " SELECT $__timeGroup(timet, $interval) AS time, MAX(d.value), m.label AS metric\n FROM wh_nagios.metrics m,\nLATERAL wh_nagios.get_metric_data(m.id, $__timeFrom(), $__timeTo()) d\n WHERE m.id_service = (\n SELECT s.id FROM wh_nagios.services s \n JOIN public.servers h ON h.id=s.id_server\n WHERE h.hostname = '$node_name' AND s.service = 'check_patroni_node_tl_has_changed'\n )\nAND m.label = 'timeline'\nGROUP BY time, m.label ORDER BY time",
|
||
|
"refId": "B",
|
||
|
"select": [
|
||
|
[
|
||
|
{
|
||
|
"params": [
|
||
|
"value"
|
||
|
],
|
||
|
"type": "column"
|
||
|
}
|
||
|
]
|
||
|
],
|
||
|
"timeColumn": "time",
|
||
|
"where": [
|
||
|
{
|
||
|
"name": "$__timeFilter",
|
||
|
"params": [],
|
||
|
"type": "macro"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"datasource": {
|
||
|
"type": "postgres",
|
||
|
"uid": "${DS_OPM}"
|
||
|
},
|
||
|
"format": "time_series",
|
||
|
"group": [],
|
||
|
"hide": false,
|
||
|
"metricColumn": "none",
|
||
|
"rawQuery": true,
|
||
|
"rawSql": " SELECT $__timeGroup(timet, $interval) AS time, MAX(d.value), m.label AS metric\n FROM wh_nagios.metrics m,\nLATERAL wh_nagios.get_metric_data(m.id, $__timeFrom(), $__timeTo()) d\n WHERE m.id_service = (\n SELECT s.id FROM wh_nagios.services s \n JOIN public.servers h ON h.id=s.id_server\n WHERE h.hostname = '$node_name' AND s.service = 'check_patroni_node_is_pending_restart'\n ) GROUP BY time, m.label ORDER BY time",
|
||
|
"refId": "D",
|
||
|
"select": [
|
||
|
[
|
||
|
{
|
||
|
"params": [
|
||
|
"value"
|
||
|
],
|
||
|
"type": "column"
|
||
|
}
|
||
|
]
|
||
|
],
|
||
|
"timeColumn": "time",
|
||
|
"where": [
|
||
|
{
|
||
|
"name": "$__timeFilter",
|
||
|
"params": [],
|
||
|
"type": "macro"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"title": "Health stats",
|
||
|
"type": "stat"
|
||
|
}
|
||
|
],
|
||
|
"schemaVersion": 34,
|
||
|
"style": "dark",
|
||
|
"tags": [],
|
||
|
"templating": {
|
||
|
"list": [
|
||
|
{
|
||
|
"hide": 2,
|
||
|
"name": "node_name",
|
||
|
"query": "${VAR_NODE_NAME}",
|
||
|
"skipUrlSync": false,
|
||
|
"type": "constant",
|
||
|
"current": {
|
||
|
"value": "${VAR_NODE_NAME}",
|
||
|
"text": "${VAR_NODE_NAME}",
|
||
|
"selected": false
|
||
|
},
|
||
|
"options": [
|
||
|
{
|
||
|
"value": "${VAR_NODE_NAME}",
|
||
|
"text": "${VAR_NODE_NAME}",
|
||
|
"selected": false
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"auto": false,
|
||
|
"auto_count": 30,
|
||
|
"auto_min": "10s",
|
||
|
"current": {
|
||
|
"selected": false,
|
||
|
"text": "1m",
|
||
|
"value": "1m"
|
||
|
},
|
||
|
"hide": 0,
|
||
|
"name": "interval",
|
||
|
"options": [
|
||
|
{
|
||
|
"selected": true,
|
||
|
"text": "1m",
|
||
|
"value": "1m"
|
||
|
},
|
||
|
{
|
||
|
"selected": false,
|
||
|
"text": "10m",
|
||
|
"value": "10m"
|
||
|
},
|
||
|
{
|
||
|
"selected": false,
|
||
|
"text": "30m",
|
||
|
"value": "30m"
|
||
|
},
|
||
|
{
|
||
|
"selected": false,
|
||
|
"text": "1h",
|
||
|
"value": "1h"
|
||
|
},
|
||
|
{
|
||
|
"selected": false,
|
||
|
"text": "6h",
|
||
|
"value": "6h"
|
||
|
},
|
||
|
{
|
||
|
"selected": false,
|
||
|
"text": "12h",
|
||
|
"value": "12h"
|
||
|
},
|
||
|
{
|
||
|
"selected": false,
|
||
|
"text": "1d",
|
||
|
"value": "1d"
|
||
|
},
|
||
|
{
|
||
|
"selected": false,
|
||
|
"text": "7d",
|
||
|
"value": "7d"
|
||
|
},
|
||
|
{
|
||
|
"selected": false,
|
||
|
"text": "14d",
|
||
|
"value": "14d"
|
||
|
},
|
||
|
{
|
||
|
"selected": false,
|
||
|
"text": "30d",
|
||
|
"value": "30d"
|
||
|
}
|
||
|
],
|
||
|
"query": "1m,10m,30m,1h,6h,12h,1d,7d,14d,30d",
|
||
|
"queryValue": "",
|
||
|
"refresh": 2,
|
||
|
"skipUrlSync": false,
|
||
|
"type": "interval"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"time": {
|
||
|
"from": "now-6h",
|
||
|
"to": "now"
|
||
|
},
|
||
|
"timepicker": {},
|
||
|
"timezone": "",
|
||
|
"title": "Node status: p1",
|
||
|
"uid": "2LfUnFAnk",
|
||
|
"version": 1,
|
||
|
"weekStart": ""
|
||
|
}
|