{ "dashboard": { "title": "PostgreSQL & HikariCP Monitoring", "tags": ["database", "postgres", "hikaricp"], "timezone": "browser", "panels": [ { "id": 1, "title": "Connection Pool Status", "type": "stat", "gridPos": {"x": 0, "y": 0, "w": 6, "h": 4}, "targets": [ { "expr": "hikaricp_connections_active{application=\"todo\"}", "legendFormat": "Active" } ], "options": { "colorMode": "value", "graphMode": "area" } }, { "id": 2, "title": "Idle Connections", "type": "stat", "gridPos": {"x": 6, "y": 0, "w": 6, "h": 4}, "targets": [ { "expr": "hikaricp_connections_idle{application=\"todo\"}", "legendFormat": "Idle" } ], "options": { "colorMode": "value", "graphMode": "area" } }, { "id": 3, "title": "Total Connections", "type": "stat", "gridPos": {"x": 12, "y": 0, "w": 6, "h": 4}, "targets": [ { "expr": "hikaricp_connections{application=\"todo\"}", "legendFormat": "Total" } ], "options": { "colorMode": "value", "graphMode": "area" } }, { "id": 4, "title": "Pending Threads", "type": "stat", "gridPos": {"x": 18, "y": 0, "w": 6, "h": 4}, "targets": [ { "expr": "hikaricp_connections_pending{application=\"todo\"}", "legendFormat": "Pending" } ], "options": { "colorMode": "value", "graphMode": "area" } }, { "id": 5, "title": "Connection Pool Utilization (%)", "type": "graph", "gridPos": {"x": 0, "y": 4, "w": 12, "h": 8}, "targets": [ { "expr": "(hikaricp_connections_active{application=\"todo\"} / hikaricp_connections_max{application=\"todo\"}) * 100", "legendFormat": "Active %" }, { "expr": "(hikaricp_connections{application=\"todo\"} / hikaricp_connections_max{application=\"todo\"}) * 100", "legendFormat": "Total %" } ], "yaxes": [ {"format": "percent", "label": "Utilization", "min": 0, "max": 100}, {"format": "short"} ] }, { "id": 6, "title": "Connection Acquire Time", "type": "graph", "gridPos": {"x": 12, "y": 4, "w": 12, "h": 8}, "targets": [ { "expr": "histogram_quantile(0.5, rate(hikaricp_connections_acquire_seconds_bucket{application=\"todo\"}[1m]))", "legendFormat": "p50" }, { "expr": "histogram_quantile(0.95, rate(hikaricp_connections_acquire_seconds_bucket{application=\"todo\"}[1m]))", "legendFormat": "p95" }, { "expr": "histogram_quantile(0.99, rate(hikaricp_connections_acquire_seconds_bucket{application=\"todo\"}[1m]))", "legendFormat": "p99" } ], "yaxes": [ {"format": "s", "label": "Time"}, {"format": "short"} ] }, { "id": 7, "title": "Connection Timeout Count", "type": "graph", "gridPos": {"x": 0, "y": 12, "w": 12, "h": 8}, "targets": [ { "expr": "rate(hikaricp_connections_timeout_total{application=\"todo\"}[1m])", "legendFormat": "Timeouts/sec" } ], "yaxes": [ {"format": "short"}, {"format": "short"} ] }, { "id": 8, "title": "Connection Creation Time", "type": "graph", "gridPos": {"x": 12, "y": 12, "w": 12, "h": 8}, "targets": [ { "expr": "rate(hikaricp_connections_creation_seconds_sum{application=\"todo\"}[1m]) / rate(hikaricp_connections_creation_seconds_count{application=\"todo\"}[1m])", "legendFormat": "Avg Creation Time" } ], "yaxes": [ {"format": "s"}, {"format": "short"} ] }, { "id": 9, "title": "Connection Usage Time", "type": "graph", "gridPos": {"x": 0, "y": 20, "w": 12, "h": 8}, "targets": [ { "expr": "rate(hikaricp_connections_usage_seconds_sum{application=\"todo\"}[1m]) / rate(hikaricp_connections_usage_seconds_count{application=\"todo\"}[1m])", "legendFormat": "Avg Usage Time" } ], "yaxes": [ {"format": "s"}, {"format": "short"} ] }, { "id": 10, "title": "JDBC Queries Rate", "type": "graph", "gridPos": {"x": 12, "y": 20, "w": 12, "h": 8}, "targets": [ { "expr": "rate(jdbc_connections_active{application=\"todo\"}[1m])", "legendFormat": "Active JDBC Connections" } ], "yaxes": [ {"format": "short"}, {"format": "short"} ] } ], "refresh": "5s", "time": { "from": "now-15m", "to": "now" } }, "overwrite": true }