docs: add Perses dashboard example and update config
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/claude-agent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -0,0 +1,450 @@
|
||||
{
|
||||
"kind": "Dashboard",
|
||||
"metadata": {
|
||||
"name": "proxy",
|
||||
"createdAt": "2026-04-14T19:47:48.013238204Z",
|
||||
"updatedAt": "2026-04-14T19:49:30.874125459Z",
|
||||
"version": 1,
|
||||
"project": "anthropic-proxy"
|
||||
},
|
||||
"spec": {
|
||||
"display": {
|
||||
"name": "Anthropic Proxy"
|
||||
},
|
||||
"datasources": {
|
||||
"vm": {
|
||||
"default": true,
|
||||
"plugin": {
|
||||
"kind": "PrometheusDatasource",
|
||||
"spec": {
|
||||
"directUrl": "http://localhost:9428"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"panels": {
|
||||
"latency": {
|
||||
"kind": "Panel",
|
||||
"spec": {
|
||||
"display": {
|
||||
"name": "Latency"
|
||||
},
|
||||
"plugin": {
|
||||
"kind": "TimeSeriesChart",
|
||||
"spec": {
|
||||
"legend": {
|
||||
"position": "bottom"
|
||||
},
|
||||
"yAxis": {
|
||||
"format": {
|
||||
"unit": "milliseconds"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"queries": [
|
||||
{
|
||||
"kind": "TimeSeriesQuery",
|
||||
"spec": {
|
||||
"plugin": {
|
||||
"kind": "PrometheusTimeSeriesQuery",
|
||||
"spec": {
|
||||
"datasource": {
|
||||
"kind": "PrometheusDatasource",
|
||||
"name": "vm"
|
||||
},
|
||||
"query": "histogram_quantile(0.50, rate(proxy_request_duration_ms_milliseconds_bucket[5m]))",
|
||||
"seriesNameFormat": "p50"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"kind": "TimeSeriesQuery",
|
||||
"spec": {
|
||||
"plugin": {
|
||||
"kind": "PrometheusTimeSeriesQuery",
|
||||
"spec": {
|
||||
"datasource": {
|
||||
"kind": "PrometheusDatasource",
|
||||
"name": "vm"
|
||||
},
|
||||
"query": "histogram_quantile(0.95, rate(proxy_request_duration_ms_milliseconds_bucket[5m]))",
|
||||
"seriesNameFormat": "p95"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"kind": "TimeSeriesQuery",
|
||||
"spec": {
|
||||
"plugin": {
|
||||
"kind": "PrometheusTimeSeriesQuery",
|
||||
"spec": {
|
||||
"datasource": {
|
||||
"kind": "PrometheusDatasource",
|
||||
"name": "vm"
|
||||
},
|
||||
"query": "histogram_quantile(0.99, rate(proxy_request_duration_ms_milliseconds_bucket[5m]))",
|
||||
"seriesNameFormat": "p99"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"request_rate": {
|
||||
"kind": "Panel",
|
||||
"spec": {
|
||||
"display": {
|
||||
"name": "Request Rate"
|
||||
},
|
||||
"plugin": {
|
||||
"kind": "TimeSeriesChart",
|
||||
"spec": {
|
||||
"legend": {
|
||||
"position": "bottom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queries": [
|
||||
{
|
||||
"kind": "TimeSeriesQuery",
|
||||
"spec": {
|
||||
"plugin": {
|
||||
"kind": "PrometheusTimeSeriesQuery",
|
||||
"spec": {
|
||||
"datasource": {
|
||||
"kind": "PrometheusDatasource",
|
||||
"name": "vm"
|
||||
},
|
||||
"query": "rate(proxy_request_count_total[5m])",
|
||||
"seriesNameFormat": "req/s"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"token_rate": {
|
||||
"kind": "Panel",
|
||||
"spec": {
|
||||
"display": {
|
||||
"name": "Token Rate"
|
||||
},
|
||||
"plugin": {
|
||||
"kind": "TimeSeriesChart",
|
||||
"spec": {
|
||||
"legend": {
|
||||
"position": "bottom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queries": [
|
||||
{
|
||||
"kind": "TimeSeriesQuery",
|
||||
"spec": {
|
||||
"plugin": {
|
||||
"kind": "PrometheusTimeSeriesQuery",
|
||||
"spec": {
|
||||
"datasource": {
|
||||
"kind": "PrometheusDatasource",
|
||||
"name": "vm"
|
||||
},
|
||||
"query": "rate(proxy_tokens_input_total[5m]) * 60",
|
||||
"seriesNameFormat": "input/min"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"kind": "TimeSeriesQuery",
|
||||
"spec": {
|
||||
"plugin": {
|
||||
"kind": "PrometheusTimeSeriesQuery",
|
||||
"spec": {
|
||||
"datasource": {
|
||||
"kind": "PrometheusDatasource",
|
||||
"name": "vm"
|
||||
},
|
||||
"query": "rate(proxy_tokens_output_total[5m]) * 60",
|
||||
"seriesNameFormat": "output/min"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"tokens_5h": {
|
||||
"kind": "Panel",
|
||||
"spec": {
|
||||
"display": {
|
||||
"name": "5h Tokens"
|
||||
},
|
||||
"plugin": {
|
||||
"kind": "StatChart",
|
||||
"spec": {
|
||||
"calculation": "last",
|
||||
"format": {
|
||||
"unit": "decimal"
|
||||
},
|
||||
"sparkline": {}
|
||||
}
|
||||
},
|
||||
"queries": [
|
||||
{
|
||||
"kind": "TimeSeriesQuery",
|
||||
"spec": {
|
||||
"plugin": {
|
||||
"kind": "PrometheusTimeSeriesQuery",
|
||||
"spec": {
|
||||
"datasource": {
|
||||
"kind": "PrometheusDatasource",
|
||||
"name": "vm"
|
||||
},
|
||||
"query": "increase(proxy_tokens_output_total[3h])"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"tokens_7d": {
|
||||
"kind": "Panel",
|
||||
"spec": {
|
||||
"display": {
|
||||
"name": "7d Tokens"
|
||||
},
|
||||
"plugin": {
|
||||
"kind": "StatChart",
|
||||
"spec": {
|
||||
"calculation": "last",
|
||||
"format": {
|
||||
"unit": "decimal"
|
||||
},
|
||||
"sparkline": {}
|
||||
}
|
||||
},
|
||||
"queries": [
|
||||
{
|
||||
"kind": "TimeSeriesQuery",
|
||||
"spec": {
|
||||
"plugin": {
|
||||
"kind": "PrometheusTimeSeriesQuery",
|
||||
"spec": {
|
||||
"datasource": {
|
||||
"kind": "PrometheusDatasource",
|
||||
"name": "vm"
|
||||
},
|
||||
"query": "increase(proxy_tokens_output_total[9h])"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"util_5h": {
|
||||
"kind": "Panel",
|
||||
"spec": {
|
||||
"display": {
|
||||
"name": "5h Utilization"
|
||||
},
|
||||
"plugin": {
|
||||
"kind": "GaugeChart",
|
||||
"spec": {
|
||||
"calculation": "last",
|
||||
"format": {
|
||||
"unit": "percent"
|
||||
},
|
||||
"thresholds": {
|
||||
"steps": [
|
||||
{
|
||||
"color": "green",
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"color": "orange",
|
||||
"value": 70
|
||||
},
|
||||
{
|
||||
"color": "red",
|
||||
"value": 90
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"queries": [
|
||||
{
|
||||
"kind": "TimeSeriesQuery",
|
||||
"spec": {
|
||||
"plugin": {
|
||||
"kind": "PrometheusTimeSeriesQuery",
|
||||
"spec": {
|
||||
"datasource": {
|
||||
"kind": "PrometheusDatasource",
|
||||
"name": "vm"
|
||||
},
|
||||
"query": "proxy_usage_utilization{window=\"5h\"}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"util_7d": {
|
||||
"kind": "Panel",
|
||||
"spec": {
|
||||
"display": {
|
||||
"name": "7d Utilization"
|
||||
},
|
||||
"plugin": {
|
||||
"kind": "GaugeChart",
|
||||
"spec": {
|
||||
"calculation": "last",
|
||||
"format": {
|
||||
"unit": "percent"
|
||||
},
|
||||
"thresholds": {
|
||||
"steps": [
|
||||
{
|
||||
"color": "green",
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"color": "orange",
|
||||
"value": 70
|
||||
},
|
||||
{
|
||||
"color": "red",
|
||||
"value": 90
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"queries": [
|
||||
{
|
||||
"kind": "TimeSeriesQuery",
|
||||
"spec": {
|
||||
"plugin": {
|
||||
"kind": "PrometheusTimeSeriesQuery",
|
||||
"spec": {
|
||||
"datasource": {
|
||||
"kind": "PrometheusDatasource",
|
||||
"name": "vm"
|
||||
},
|
||||
"query": "proxy_usage_utilization{window=\"7d\"}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"layouts": [
|
||||
{
|
||||
"kind": "Grid",
|
||||
"spec": {
|
||||
"display": {
|
||||
"title": "Utilization"
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"width": 6,
|
||||
"height": 5,
|
||||
"content": {
|
||||
"$ref": "#/spec/panels/util_5h"
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 0,
|
||||
"width": 6,
|
||||
"height": 5,
|
||||
"content": {
|
||||
"$ref": "#/spec/panels/util_7d"
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 0,
|
||||
"width": 6,
|
||||
"height": 5,
|
||||
"content": {
|
||||
"$ref": "#/spec/panels/tokens_5h"
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 18,
|
||||
"y": 0,
|
||||
"width": 6,
|
||||
"height": 5,
|
||||
"content": {
|
||||
"$ref": "#/spec/panels/tokens_7d"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"kind": "Grid",
|
||||
"spec": {
|
||||
"display": {
|
||||
"title": "Traffic"
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"width": 12,
|
||||
"height": 8,
|
||||
"content": {
|
||||
"$ref": "#/spec/panels/request_rate"
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 0,
|
||||
"width": 12,
|
||||
"height": 8,
|
||||
"content": {
|
||||
"$ref": "#/spec/panels/latency"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"kind": "Grid",
|
||||
"spec": {
|
||||
"display": {
|
||||
"title": "Tokens"
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"width": 24,
|
||||
"height": 8,
|
||||
"content": {
|
||||
"$ref": "#/spec/panels/token_rate"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"duration": "1h",
|
||||
"refreshInterval": "10s"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user