{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": { "type": "grafana", "uid": "-- Grafana --" },
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 1,
"links": [],
"panels": [
{
"collapsed": false,
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 },
"id": 100,
"title": "Server Health",
"type": "row"
},
{
"datasource": { "type": "prometheus", "uid": "${datasource}" },
"fieldConfig": {
"defaults": {
"mappings": [
{ "options": { "0": { "color": "red", "text": "DOWN" }, "1": { "color": "green", "text": "UP" } }, "type": "value" }
],
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "red", "value": null },
{ "color": "green", "value": 1 }
]
}
},
"overrides": []
},
"gridPos": { "h": 5, "w": 4, "x": 0, "y": 1 },
"id": 1,
"options": {
"colorMode": "background",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false },
"textMode": "auto"
},
"title": "Server Status",
"type": "stat",
"targets": [
{
"expr": "p4_up{instance=~\"$instance\"}",
"legendFormat": "Instance {{instance}}",
"refId": "A"
}
]
},
{
"datasource": { "type": "prometheus", "uid": "${datasource}" },
"fieldConfig": {
"defaults": {
"unit": "ms",
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "green", "value": null },
{ "color": "yellow", "value": 100 },
{ "color": "red", "value": 500 }
]
}
},
"overrides": []
},
"gridPos": { "h": 5, "w": 4, "x": 4, "y": 1 },
"id": 2,
"options": {
"colorMode": "background",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false },
"textMode": "auto"
},
"title": "Health Check Response Time",
"type": "stat",
"targets": [
{
"expr": "p4_healthcheck_duration_ms{instance=~\"$instance\"}",
"legendFormat": "Instance {{instance}}",
"refId": "A"
}
]
},
{
"datasource": { "type": "prometheus", "uid": "${datasource}" },
"fieldConfig": {
"defaults": {
"unit": "short",
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "green", "value": null }
]
}
},
"overrides": []
},
"gridPos": { "h": 5, "w": 4, "x": 8, "y": 1 },
"id": 3,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false },
"textMode": "auto"
},
"title": "Commands Running",
"type": "stat",
"targets": [
{
"expr": "p4_cmd_running{job=~\"$job\"}",
"legendFormat": "{{job}}",
"refId": "A"
}
]
},
{
"datasource": { "type": "prometheus", "uid": "${datasource}" },
"fieldConfig": {
"defaults": {
"unit": "short",
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "green", "value": null },
{ "color": "yellow", "value": 5 },
{ "color": "red", "value": 20 }
]
}
},
"overrides": []
},
"gridPos": { "h": 5, "w": 4, "x": 12, "y": 1 },
"id": 4,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false },
"textMode": "auto"
},
"title": "Commands Pending",
"type": "stat",
"targets": [
{
"expr": "p4_prom_cmds_pending{job=~\"$job\"}",
"legendFormat": "{{job}}",
"refId": "A"
}
]
},
{
"datasource": { "type": "prometheus", "uid": "${datasource}" },
"fieldConfig": {
"defaults": {
"unit": "short",
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "green", "value": null },
{ "color": "red", "value": 1 }
]
}
},
"overrides": []
},
"gridPos": { "h": 5, "w": 4, "x": 16, "y": 1 },
"id": 5,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false },
"textMode": "auto"
},
"title": "Error Rate (5m)",
"type": "stat",
"targets": [
{
"expr": "rate(p4_cmd_error_counter{job=~\"$job\"}[5m])",
"legendFormat": "{{job}}",
"refId": "A"
}
]
},
{
"datasource": { "type": "prometheus", "uid": "${datasource}" },
"fieldConfig": {
"defaults": {
"unit": "short"
},
"overrides": []
},
"gridPos": { "h": 5, "w": 4, "x": 20, "y": 1 },
"id": 6,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false },
"textMode": "auto"
},
"title": "Replication Pull Queue",
"type": "stat",
"targets": [
{
"expr": "p4_replication_pull_queue{job=~\"$job\"}",
"legendFormat": "{{job}}",
"refId": "A"
}
]
},
{
"datasource": { "type": "prometheus", "uid": "${datasource}" },
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 10,
"gradientMode": "none",
"showPoints": "auto",
"pointSize": 5,
"stacking": { "mode": "none" },
"axisPlacement": "auto",
"spanNulls": false
},
"unit": "ms"
},
"overrides": []
},
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 6 },
"id": 7,
"options": {
"legend": { "calcs": ["mean", "max"], "displayMode": "table", "placement": "bottom" },
"tooltip": { "mode": "multi", "sort": "desc" }
},
"title": "Health Check Response Time",
"type": "timeseries",
"targets": [
{
"expr": "p4_healthcheck_duration_ms{instance=~\"$instance\"}",
"legendFormat": "Instance {{instance}}",
"refId": "A"
}
]
},
{
"datasource": { "type": "prometheus", "uid": "${datasource}" },
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 10,
"gradientMode": "none",
"showPoints": "auto",
"pointSize": 5,
"stacking": { "mode": "none" },
"axisPlacement": "auto",
"spanNulls": false
},
"unit": "ops"
},
"overrides": []
},
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 6 },
"id": 8,
"options": {
"legend": { "calcs": ["mean", "max"], "displayMode": "table", "placement": "bottom" },
"tooltip": { "mode": "multi", "sort": "desc" }
},
"title": "Command Rate (per second)",
"type": "timeseries",
"targets": [
{
"expr": "rate(p4_cmd_counter{job=~\"$job\"}[5m])",
"legendFormat": "{{cmd}}",
"refId": "A"
}
]
},
{
"collapsed": false,
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 14 },
"id": 101,
"title": "Command Performance",
"type": "row"
},
{
"datasource": { "type": "prometheus", "uid": "${datasource}" },
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 10,
"stacking": { "mode": "none" },
"axisPlacement": "auto",
"spanNulls": false
},
"unit": "s"
},
"overrides": []
},
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 15 },
"id": 9,
"options": {
"legend": { "calcs": ["mean", "max"], "displayMode": "table", "placement": "bottom" },
"tooltip": { "mode": "multi", "sort": "desc" }
},
"title": "Command Duration by Type (5m avg)",
"type": "timeseries",
"targets": [
{
"expr": "rate(p4_cmd_cumulative_seconds{job=~\"$job\"}[5m])",
"legendFormat": "{{cmd}}",
"refId": "A"
}
]
},
{
"datasource": { "type": "prometheus", "uid": "${datasource}" },
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 10,
"stacking": { "mode": "none" },
"axisPlacement": "auto",
"spanNulls": false
},
"unit": "ops"
},
"overrides": []
},
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 15 },
"id": 10,
"options": {
"legend": { "calcs": ["mean", "max"], "displayMode": "table", "placement": "bottom" },
"tooltip": { "mode": "multi", "sort": "desc" }
},
"title": "Commands by User (per second)",
"type": "timeseries",
"targets": [
{
"expr": "topk(10, rate(p4_cmd_user_counter{job=~\"$job\"}[5m]))",
"legendFormat": "{{user}}",
"refId": "A"
}
]
},
{
"datasource": { "type": "prometheus", "uid": "${datasource}" },
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 10,
"stacking": { "mode": "none" },
"axisPlacement": "auto",
"spanNulls": false
},
"unit": "s"
},
"overrides": []
},
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 23 },
"id": 11,
"options": {
"legend": { "calcs": ["mean", "max"], "displayMode": "table", "placement": "bottom" },
"tooltip": { "mode": "multi", "sort": "desc" }
},
"title": "CPU Time - User (5m rate)",
"type": "timeseries",
"targets": [
{
"expr": "rate(p4_cmd_cpu_user_cumulative_seconds{job=~\"$job\"}[5m])",
"legendFormat": "{{cmd}}",
"refId": "A"
}
]
},
{
"datasource": { "type": "prometheus", "uid": "${datasource}" },
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 10,
"stacking": { "mode": "none" },
"axisPlacement": "auto",
"spanNulls": false
},
"unit": "s"
},
"overrides": []
},
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 23 },
"id": 12,
"options": {
"legend": { "calcs": ["mean", "max"], "displayMode": "table", "placement": "bottom" },
"tooltip": { "mode": "multi", "sort": "desc" }
},
"title": "CPU Time - System (5m rate)",
"type": "timeseries",
"targets": [
{
"expr": "rate(p4_cmd_cpu_system_cumulative_seconds{job=~\"$job\"}[5m])",
"legendFormat": "{{cmd}}",
"refId": "A"
}
]
},
{
"collapsed": false,
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 31 },
"id": 102,
"title": "Locking",
"type": "row"
},
{
"datasource": { "type": "prometheus", "uid": "${datasource}" },
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 10,
"stacking": { "mode": "none" },
"axisPlacement": "auto",
"spanNulls": false
},
"unit": "s"
},
"overrides": []
},
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 32 },
"id": 13,
"options": {
"legend": { "calcs": ["mean", "max"], "displayMode": "table", "placement": "bottom" },
"tooltip": { "mode": "multi", "sort": "desc" }
},
"title": "Read Lock Wait vs Held (5m rate)",
"type": "timeseries",
"targets": [
{
"expr": "rate(p4_total_read_wait_seconds{job=~\"$job\"}[5m])",
"legendFormat": "read wait",
"refId": "A"
},
{
"expr": "rate(p4_total_read_held_seconds{job=~\"$job\"}[5m])",
"legendFormat": "read held",
"refId": "B"
}
]
},
{
"datasource": { "type": "prometheus", "uid": "${datasource}" },
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 10,
"stacking": { "mode": "none" },
"axisPlacement": "auto",
"spanNulls": false
},
"unit": "s"
},
"overrides": []
},
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 32 },
"id": 14,
"options": {
"legend": { "calcs": ["mean", "max"], "displayMode": "table", "placement": "bottom" },
"tooltip": { "mode": "multi", "sort": "desc" }
},
"title": "Write Lock Wait vs Held (5m rate)",
"type": "timeseries",
"targets": [
{
"expr": "rate(p4_total_write_wait_seconds{job=~\"$job\"}[5m])",
"legendFormat": "write wait",
"refId": "A"
},
{
"expr": "rate(p4_total_write_held_seconds{job=~\"$job\"}[5m])",
"legendFormat": "write held",
"refId": "B"
}
]
},
{
"collapsed": false,
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 40 },
"id": 103,
"title": "Error Tracking",
"type": "row"
},
{
"datasource": { "type": "prometheus", "uid": "${datasource}" },
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "bars",
"lineWidth": 1,
"fillOpacity": 50,
"stacking": { "mode": "normal" },
"axisPlacement": "auto",
"spanNulls": false
},
"unit": "short",
"color": { "mode": "palette-classic" }
},
"overrides": []
},
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 41 },
"id": 15,
"options": {
"legend": { "calcs": ["sum"], "displayMode": "table", "placement": "bottom" },
"tooltip": { "mode": "multi", "sort": "desc" }
},
"title": "Command Errors (5m rate)",
"type": "timeseries",
"targets": [
{
"expr": "rate(p4_cmd_error_counter{job=~\"$job\"}[5m])",
"legendFormat": "{{cmd}} errors",
"refId": "A"
}
]
},
{
"datasource": { "type": "prometheus", "uid": "${datasource}" },
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 10,
"stacking": { "mode": "none" },
"axisPlacement": "auto",
"spanNulls": false
},
"unit": "short"
},
"overrides": []
},
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 41 },
"id": 16,
"options": {
"legend": { "calcs": ["mean", "max"], "displayMode": "table", "placement": "bottom" },
"tooltip": { "mode": "multi", "sort": "desc" }
},
"title": "Log Lines Processed (5m rate)",
"type": "timeseries",
"targets": [
{
"expr": "rate(p4_prom_log_lines_read{job=~\"$job\"}[5m])",
"legendFormat": "lines read",
"refId": "A"
},
{
"expr": "rate(p4_prom_cmds_processed{job=~\"$job\"}[5m])",
"legendFormat": "cmds processed",
"refId": "B"
}
]
}
],
"refresh": "30s",
"schemaVersion": 39,
"tags": ["perforce", "sdp", "p4prometheus"],
"templating": {
"list": [
{
"current": {},
"hide": 0,
"includeAll": false,
"label": "Data Source",
"multi": false,
"name": "datasource",
"options": [],
"query": "prometheus",
"refresh": 1,
"type": "datasource"
},
{
"current": {},
"datasource": { "type": "prometheus", "uid": "${datasource}" },
"definition": "label_values(p4_up, instance)",
"hide": 0,
"includeAll": true,
"label": "Instance",
"multi": true,
"name": "instance",
"query": "label_values(p4_up, instance)",
"refresh": 2,
"sort": 1,
"type": "query"
},
{
"current": {},
"datasource": { "type": "prometheus", "uid": "${datasource}" },
"definition": "label_values(p4_cmd_counter, job)",
"hide": 0,
"includeAll": true,
"label": "Job",
"multi": true,
"name": "job",
"query": "label_values(p4_cmd_counter, job)",
"refresh": 2,
"sort": 1,
"type": "query"
}
]
},
"time": { "from": "now-6h", "to": "now" },
"timepicker": {},
"timezone": "",
"title": "Perforce SDP - Overview",
"uid": "perforce-sdp-overview",
"version": 1
}
| # | Change | User | Description | Committed | |
|---|---|---|---|---|---|
| #1 | 32511 | Russell C. Jackson (Rusty) |
Add Grafana dashboards for Perforce SDP monitoring Three dashboards covering p4prometheus, custom health/disk/network metrics, node_exporter system metrics, and server geolocation. |