Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions grafana/postgres/v12/0-health-check.json
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,7 @@
"orderByTime": "ASC",
"policy": "default",
"rawQuery": true,
"rawSql": "select (data->>'server_version_num')::int8 as value \nfrom settings \nwhere dbname = '$dbname' and $__timeFilter(time) \norder by time \ndesc limit 1;",
"rawSql": "SELECT (data->>'value')::float8 AS value\nFROM settings_num\nWHERE dbname = '$dbname'\n AND tag_data->>'name' = 'server_version_num'\n AND $__timeFilter(time)\nORDER BY time DESC LIMIT 1",
"refId": "A",
"resultFormat": "time_series",
"select": [
Expand Down Expand Up @@ -1281,7 +1281,7 @@
"orderByTime": "ASC",
"policy": "default",
"rawQuery": true,
"rawSql": "WITH s(max_connections) AS (\n SELECT (data->>'max_connections')::int\n FROM settings\n WHERE $__timeFilter(time) AND dbname = '$dbname'\n ORDER BY time DESC\n LIMIT 1\n)\n\nSELECT round(((b.data->>'numbackends')::float / s.max_connections) * 100)\nFROM db_stats b, s\nWHERE $__timeFilter(b.time) AND b.dbname = '$dbname'\nORDER BY b.time DESC\nLIMIT 1",
"rawSql": "WITH s(max_connections) AS (\n SELECT (data->>'value')::int\n FROM settings_num\n WHERE $__timeFilter(time) AND dbname = '$dbname'\n AND tag_data->>'name' = 'max_connections'\n ORDER BY time DESC\n LIMIT 1\n)\nSELECT round(((b.data->>'numbackends')::float / s.max_connections) * 100)\nFROM db_stats b, s\nWHERE $__timeFilter(b.time) AND b.dbname = '$dbname'\nORDER BY b.time DESC\nLIMIT 1",
"refId": "A",
"resultFormat": "time_series",
"select": [
Expand Down Expand Up @@ -3425,7 +3425,7 @@
"orderByTime": "ASC",
"policy": "default",
"rawQuery": true,
"rawSql": "SELECT\n 0 as time,\n sum(count)\nFROM (\n\nSELECT * FROM (\n\nSELECT\n case when data->>'autovacuum' = 'off' then 1 else 0 end as count\nFROM\n settings\nWHERE\n dbname = '$dbname'\n AND time > now() - '1d'::interval\nORDER BY time DESC LIMIT 1\n\n) a\n\nUNION ALL\n\nSELECT * FROM (\n\nSELECT\n count(*)\nFROM\n table_stats\nWHERE\n dbname = '$dbname'\n AND time = (select max(time) from table_stats where dbname = '$dbname')\n AND (data->>'no_autovacuum')::int = 1\n\n) b\n\n) x;",
"rawSql": "SELECT\n 0 as time,\n sum(count)\nFROM (\n SELECT\n CASE WHEN (data->>'value')::float8 = 0 THEN 1 ELSE 0 END AS count\n FROM settings_num\n WHERE dbname = '$dbname'\n AND tag_data->>'name' = 'autovacuum'\n AND time > now() - '1d'::interval\n ORDER BY time DESC LIMIT 1\n UNION ALL\n SELECT count(*)\n FROM table_stats\n WHERE dbname = '$dbname'\n AND time = (SELECT max(time) FROM table_stats WHERE dbname = '$dbname')\n AND (data->>'no_autovacuum')::int = 1\n) x",
"refId": "A",
"resultFormat": "time_series",
"select": [
Expand Down Expand Up @@ -5193,7 +5193,7 @@
"showLineNumbers": false,
"showMiniMap": false
},
"content": "### Brought to you by\n\n[![Cybertec The PostgreSQL Database Company](https://cdn.jsdelivr.net/gh/cybertec-postgresql/pgwatch@master/docs/gallery/cybertec-logo-white-blue.svg)](https://www.cybertec-postgresql.com/en/)\n",
"content": "### Brought to you by\n\n[![Cybertec \u2013 The PostgreSQL Database Company](https://cdn.jsdelivr.net/gh/cybertec-postgresql/pgwatch@master/docs/gallery/cybertec-logo-white-blue.svg)](https://www.cybertec-postgresql.com/en/)\n",
"mode": "markdown"
},
"pluginVersion": "12.3.1",
Expand Down
2 changes: 1 addition & 1 deletion grafana/postgres/v12/change-events.json
Original file line number Diff line number Diff line change
Expand Up @@ -1190,7 +1190,7 @@
"group": [],
"metricColumn": "none",
"rawQuery": true,
"rawSql": "select\n (select time from settings where $__timeFilter(time) order by time desc limit 1) as \"Time\",\n key,\n value::text as value\nfrom (\n select * from jsonb_each((select data from settings where $__timeFilter(time) order by time desc limit 1))\n) x;",
"rawSql": "SELECT\n (SELECT max(time) FROM settings_num\n WHERE dbname = '$dbname' AND $__timeFilter(time)) AS \"Time\",\n tag_data->>'name' AS name,\n (data->>'value')::float8 AS value\nFROM settings_num\nWHERE dbname = '$dbname'\n AND time = (SELECT max(time) FROM settings_num\n WHERE dbname = '$dbname' AND $__timeFilter(time))\nORDER BY name",
"refId": "A",
"select": [
[
Expand Down
12 changes: 6 additions & 6 deletions grafana/postgres/v12/postgres-version-overview.json
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@
"policy": "default",
"query": "SELECT top(\"spread\", \"function_full_name\", \"oid\", $top) FROM (SELECT spread(\"total_time\") FROM \"sproc_stats\" WHERE $timeFilter AND \"dbname\" = '$dbname' GROUP BY time(3650d), \"function_full_name\", \"oid\" fill(none) ) WHERE spread > 0",
"rawQuery": true,
"rawSql": "SELECT\n split_part(data->>'server_version'::text, ' ', 1) as server_version,\n (data->>'server_version_num')::int8 as server_version_num,\n string_agg(DISTINCT dbname, ', ') as dbname \nFROM\n settings\nWHERE\n $__timeFilter(time)\n AND dbname IN ($dbname)\n AND (data->>'server_version_num')::int8 <= $lower_than_server_version_num\nGROUP BY 1, 2\nORDER BY 1",
"rawSql": "SELECT\n (data->>'value')::int8 AS server_version_num,\n string_agg(DISTINCT sn.dbname, ', ') AS dbname\nFROM settings_num sn\nWHERE $__timeFilter(sn.time)\n AND sn.dbname IN ($dbname)\n AND sn.tag_data->>'name' = 'server_version_num'\n AND (sn.data->>'value')::int8 <= $lower_than_server_version_num\nGROUP BY 1\nORDER BY 1",
"refId": "A",
"resultFormat": "table",
"select": [
Expand Down Expand Up @@ -202,7 +202,7 @@
"showLineNumbers": false,
"showMiniMap": false
},
"content": "### Brought to you by\n\n[![Cybertec The PostgreSQL Database Company](https://cdn.jsdelivr.net/gh/cybertec-postgresql/pgwatch@master/docs/gallery/cybertec-logo-white-blue.svg)](https://www.cybertec-postgresql.com/en/)\n",
"content": "### Brought to you by\n\n[![Cybertec \u2013 The PostgreSQL Database Company](https://cdn.jsdelivr.net/gh/cybertec-postgresql/pgwatch@master/docs/gallery/cybertec-logo-white-blue.svg)](https://www.cybertec-postgresql.com/en/)\n",
"mode": "markdown"
},
"pluginVersion": "12.0.0",
Expand Down Expand Up @@ -230,12 +230,12 @@
"type": "grafana-postgresql-datasource",
"uid": "pgwatch-metrics"
},
"definition": "SELECT DISTINCT dbname FROM admin.all_distinct_dbname_metrics WHERE metric = 'settings' ORDER BY 1;",
"definition": "SELECT DISTINCT dbname FROM admin.all_distinct_dbname_metrics WHERE metric = 'settings_num' ORDER BY 1;",
"includeAll": true,
"multi": true,
"name": "dbname",
"options": [],
"query": "SELECT DISTINCT dbname FROM admin.all_distinct_dbname_metrics WHERE metric = 'settings' ORDER BY 1;",
"query": "SELECT DISTINCT dbname FROM admin.all_distinct_dbname_metrics WHERE metric = 'settings_num' ORDER BY 1;",
"refresh": 1,
"regex": "",
"type": "query"
Expand All @@ -245,11 +245,11 @@
"type": "grafana-postgresql-datasource",
"uid": "pgwatch-metrics"
},
"definition": "SELECT DISTINCT (data->>'server_version_num')::int FROM settings WHERE time > now() - '24h'::interval ORDER BY 1 DESC",
"definition": "SELECT DISTINCT (data->>'value')::int\nFROM settings_num\nWHERE tag_data->>'name' = 'server_version_num'\n AND time > now() - '24h'::interval\nORDER BY 1 DESC",
"includeAll": false,
"name": "lower_than_server_version_num",
"options": [],
"query": "SELECT DISTINCT (data->>'server_version_num')::int FROM settings WHERE time > now() - '24h'::interval ORDER BY 1 DESC",
"query": "SELECT DISTINCT (data->>'value')::int\nFROM settings_num\nWHERE tag_data->>'name' = 'server_version_num'\n AND time > now() - '24h'::interval\nORDER BY 1 DESC",
"refresh": 1,
"regex": "",
"type": "query"
Expand Down
6 changes: 3 additions & 3 deletions grafana/postgres/v12/recommendations.json
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,7 @@
"group": [],
"metricColumn": "none",
"rawQuery": true,
"rawSql": "SELECT\n dbname AS \"Source\",\n (select data->>'server_version' from settings s where s.dbname = x.dbname order by time desc limit 1) AS \"PostgreSQL Version\",\n 'AUTOVACUUM Workers' AS \"Category\",\n 'If most / all autovacuum worker slots are busy or AV runs for hours then this could hint at incorrect AV params or too much workload' AS \"Recommendation\",\n 'Max. active autovacuum workers: ' || max_av_workers || ' (of total ' || (select (data->>'autovacuum_max_workers')::int from settings s where s.dbname = x.dbname order by time desc limit 1) || '); Max. AV duration (seconds): ' || longest_autovacuum_seconds AS \"Additional Info\"\nFROM (\nSELECT\n dbname,\n max((data->>'av_workers')::int) as max_av_workers,\n coalesce(max((data->>'longest_autovacuum_seconds')::int), 0) as longest_autovacuum_seconds\nFROM\n backends\nWHERE\n $__timeFilter(time)\n AND dbname IN ($dbname)\nGROUP BY\n dbname\n) x\nWHERE\n (max_av_workers > 1 AND max_av_workers::numeric / (select (data->>'autovacuum_max_workers')::int from settings s where s.dbname = x.dbname order by time desc limit 1) >= 0.6)\n OR\n (longest_autovacuum_seconds > 1800)",
"rawSql": "SELECT\n dbname AS \"Source\",\n (SELECT (data->>'value')::int8::text FROM settings_num s WHERE s.dbname = x.dbname AND s.tag_data->>'name' = 'server_version_num' ORDER BY time DESC LIMIT 1) AS \"PostgreSQL Version\",\n 'AUTOVACUUM Workers' AS \"Category\",\n 'If most / all autovacuum worker slots are busy or AV runs for hours then this could hint at incorrect AV params or too much workload' AS \"Recommendation\",\n 'Max. active autovacuum workers: ' || max_av_workers || ' (of total ' || (SELECT (data->>'value')::int FROM settings_num s WHERE s.dbname = x.dbname AND s.tag_data->>'name' = 'autovacuum_max_workers' ORDER BY s.time DESC LIMIT 1) || '); Max. AV duration (seconds): ' || longest_autovacuum_seconds AS \"Additional Info\"\nFROM (\nSELECT\n dbname,\n max((data->>'av_workers')::int) as max_av_workers,\n coalesce(max((data->>'longest_autovacuum_seconds')::int), 0) as longest_autovacuum_seconds\nFROM\n backends\nWHERE\n $__timeFilter(time)\n AND dbname IN ($dbname)\nGROUP BY\n dbname\n) x\nWHERE\n (max_av_workers > 1 AND max_av_workers::numeric / (SELECT (data->>'value')::int FROM settings_num s WHERE s.dbname = x.dbname AND s.tag_data->>'name' = 'autovacuum_max_workers' ORDER BY s.time DESC LIMIT 1) >= 0.6)\n OR\n (longest_autovacuum_seconds > 1800)",
"refId": "A",
"select": [
[
Expand Down Expand Up @@ -587,7 +587,7 @@
"group": [],
"metricColumn": "none",
"rawQuery": true,
"rawSql": "SELECT\n dbname AS \"Source\",\n (select data->>'server_version' from settings s where s.dbname = y.dbname order by s.time desc limit 1) AS \"PostgreSQL Version\",\n 'Global Server Settings' AS \"Category\",\n 'Increase checkpoint_timeout or max_wal_size for more infrequent checkpoints, thereby reducing total IO' AS \"Recommendation\",\n 'Avg. seconds between checkpoint requests: ' || avg_seconds_between_checkpoints_reqs::int8 AS \"Additional Info\"\nFROM (\nSELECT\n dbname,\n round((extract(epoch from max_time - min_time) / (max_req - min_req))::numeric, 1) as avg_seconds_between_checkpoints_reqs\nFROM (\n SELECT\n dbname,\n min(time) as min_time,\n max(time) as max_time,\n min((data->>'checkpoints_req')::int8) as min_req,\n max((data->>'checkpoints_req')::int8) as max_req\n FROM\n bgwriter\n WHERE\n $__timeFilter(time)\n AND dbname IN ($dbname)\nGROUP BY\n dbname\nHAVING\n max((data->>'checkpoints_req')::int8) > min((data->>'checkpoints_req')::int8)\n) x\n) y\nWHERE\n avg_seconds_between_checkpoints_reqs < (select extract(epoch from (data->>'checkpoint_timeout')::interval) / 2.0 from settings s where s.dbname = y.dbname order by s.time desc limit 1)\nORDER BY\n avg_seconds_between_checkpoints_reqs\nLIMIT\n 25",
"rawSql": "SELECT\n dbname AS \"Source\",\n (SELECT (data->>'value')::int8::text FROM settings_num s WHERE s.dbname = y.dbname AND s.tag_data->>'name' = 'server_version_num' ORDER BY s.time DESC LIMIT 1) AS \"PostgreSQL Version\",\n 'Global Server Settings' AS \"Category\",\n 'Increase checkpoint_timeout or max_wal_size for more infrequent checkpoints, thereby reducing total IO' AS \"Recommendation\",\n 'Avg. seconds between checkpoint requests: ' || avg_seconds_between_checkpoints_reqs::int8 AS \"Additional Info\"\nFROM (\nSELECT\n dbname,\n round((extract(epoch from max_time - min_time) / (max_req - min_req))::numeric, 1) as avg_seconds_between_checkpoints_reqs\nFROM (\n SELECT\n dbname,\n min(time) as min_time,\n max(time) as max_time,\n min((data->>'checkpoints_req')::int8) as min_req,\n max((data->>'checkpoints_req')::int8) as max_req\n FROM\n bgwriter\n WHERE\n $__timeFilter(time)\n AND dbname IN ($dbname)\nGROUP BY\n dbname\nHAVING\n max((data->>'checkpoints_req')::int8) > min((data->>'checkpoints_req')::int8)\n) x\n) y\nWHERE\n avg_seconds_between_checkpoints_reqs < (SELECT (data->>'value')::float8 / 2.0 FROM settings_num s WHERE s.dbname = y.dbname AND s.tag_data->>'name' = 'checkpoint_timeout' ORDER BY s.time DESC LIMIT 1)\nORDER BY\n avg_seconds_between_checkpoints_reqs\nLIMIT\n 25",
"refId": "A",
"select": [
[
Expand Down Expand Up @@ -656,7 +656,7 @@
"showLineNumbers": false,
"showMiniMap": false
},
"content": "### Brought to you by\n\n[![Cybertec The PostgreSQL Database Company](https://cdn.jsdelivr.net/gh/cybertec-postgresql/pgwatch@master/docs/gallery/cybertec-logo-white-blue.svg)](https://www.cybertec-postgresql.com/en/)\n",
"content": "### Brought to you by\n\n[![Cybertec \u2013 The PostgreSQL Database Company](https://cdn.jsdelivr.net/gh/cybertec-postgresql/pgwatch@master/docs/gallery/cybertec-logo-white-blue.svg)](https://www.cybertec-postgresql.com/en/)\n",
"mode": "markdown"
},
"pluginVersion": "12.1.0",
Expand Down
Loading
Loading