ruvector/crates/mcp-brain-server/cloud/monitoring-dashboard.json
Claude 216225675a feat: Google Cloud infrastructure for brain pipeline and optimization
- Cloud Scheduler jobs: train (5m), drift (15m), transfer (30m), graph (1h), attractor (20m), full sweep (daily), cleanup (daily)
- Pub/Sub setup: brain-inject, brain-events, brain-optimize topics with push/pull subscriptions
- Cloud Monitoring dashboard: 10 tiles for latency, throughput, drift, memory, graph metrics
- Full deploy script: Cloud Build → Cloud Run → Pub/Sub → Scheduler

https://claude.ai/code/session_01UWE22wnsZRSHKhT4h4Axby
2026-03-16 23:17:01 -04:00

383 lines
13 KiB
JSON

{
"displayName": "RuVector Brain Server Dashboard",
"mosaicLayout": {
"columns": 12,
"tiles": [
{
"xPos": 0,
"yPos": 0,
"width": 6,
"height": 4,
"widget": {
"title": "Request Latency (p50 / p95 / p99)",
"xyChart": {
"dataSets": [
{
"timeSeriesQuery": {
"timeSeriesFilter": {
"filter": "resource.type=\"cloud_run_revision\" AND resource.labels.service_name=\"ruvbrain\" AND metric.type=\"run.googleapis.com/request_latencies\"",
"aggregation": {
"alignmentPeriod": "60s",
"perSeriesAligner": "ALIGN_PERCENTILE_50",
"crossSeriesReducer": "REDUCE_MEAN"
}
}
},
"plotType": "LINE",
"legendTemplate": "p50"
},
{
"timeSeriesQuery": {
"timeSeriesFilter": {
"filter": "resource.type=\"cloud_run_revision\" AND resource.labels.service_name=\"ruvbrain\" AND metric.type=\"run.googleapis.com/request_latencies\"",
"aggregation": {
"alignmentPeriod": "60s",
"perSeriesAligner": "ALIGN_PERCENTILE_95",
"crossSeriesReducer": "REDUCE_MEAN"
}
}
},
"plotType": "LINE",
"legendTemplate": "p95"
},
{
"timeSeriesQuery": {
"timeSeriesFilter": {
"filter": "resource.type=\"cloud_run_revision\" AND resource.labels.service_name=\"ruvbrain\" AND metric.type=\"run.googleapis.com/request_latencies\"",
"aggregation": {
"alignmentPeriod": "60s",
"perSeriesAligner": "ALIGN_PERCENTILE_99",
"crossSeriesReducer": "REDUCE_MEAN"
}
}
},
"plotType": "LINE",
"legendTemplate": "p99"
}
],
"yAxis": {
"label": "Latency (ms)",
"scale": "LINEAR"
},
"timeshiftDuration": "0s"
}
}
},
{
"xPos": 6,
"yPos": 0,
"width": 6,
"height": 4,
"widget": {
"title": "Request Count & Error Rate",
"xyChart": {
"dataSets": [
{
"timeSeriesQuery": {
"timeSeriesFilter": {
"filter": "resource.type=\"cloud_run_revision\" AND resource.labels.service_name=\"ruvbrain\" AND metric.type=\"run.googleapis.com/request_count\"",
"aggregation": {
"alignmentPeriod": "60s",
"perSeriesAligner": "ALIGN_RATE",
"crossSeriesReducer": "REDUCE_SUM"
}
}
},
"plotType": "LINE",
"legendTemplate": "Total Requests"
},
{
"timeSeriesQuery": {
"timeSeriesFilter": {
"filter": "resource.type=\"cloud_run_revision\" AND resource.labels.service_name=\"ruvbrain\" AND metric.type=\"run.googleapis.com/request_count\" AND metric.labels.response_code_class!=\"2xx\"",
"aggregation": {
"alignmentPeriod": "60s",
"perSeriesAligner": "ALIGN_RATE",
"crossSeriesReducer": "REDUCE_SUM"
}
}
},
"plotType": "LINE",
"legendTemplate": "Errors (non-2xx)"
}
],
"yAxis": {
"label": "Requests/sec",
"scale": "LINEAR"
}
}
}
},
{
"xPos": 0,
"yPos": 4,
"width": 4,
"height": 4,
"widget": {
"title": "Memory Count Over Time",
"xyChart": {
"dataSets": [
{
"timeSeriesQuery": {
"timeSeriesFilter": {
"filter": "resource.type=\"cloud_run_revision\" AND resource.labels.service_name=\"ruvbrain\" AND metric.type=\"custom.googleapis.com/ruvbrain/memory_count\"",
"aggregation": {
"alignmentPeriod": "300s",
"perSeriesAligner": "ALIGN_MAX",
"crossSeriesReducer": "REDUCE_SUM"
}
}
},
"plotType": "LINE",
"legendTemplate": "Total Memories"
}
],
"yAxis": {
"label": "Count",
"scale": "LINEAR"
}
}
}
},
{
"xPos": 4,
"yPos": 4,
"width": 4,
"height": 4,
"widget": {
"title": "Graph Edges Over Time",
"xyChart": {
"dataSets": [
{
"timeSeriesQuery": {
"timeSeriesFilter": {
"filter": "resource.type=\"cloud_run_revision\" AND resource.labels.service_name=\"ruvbrain\" AND metric.type=\"custom.googleapis.com/ruvbrain/graph_edges\"",
"aggregation": {
"alignmentPeriod": "300s",
"perSeriesAligner": "ALIGN_MAX",
"crossSeriesReducer": "REDUCE_SUM"
}
}
},
"plotType": "LINE",
"legendTemplate": "Graph Edges"
}
],
"yAxis": {
"label": "Edges",
"scale": "LINEAR"
}
}
}
},
{
"xPos": 8,
"yPos": 4,
"width": 4,
"height": 4,
"widget": {
"title": "Training Cycle Frequency",
"xyChart": {
"dataSets": [
{
"timeSeriesQuery": {
"timeSeriesFilter": {
"filter": "resource.type=\"cloud_run_revision\" AND resource.labels.service_name=\"ruvbrain\" AND metric.type=\"custom.googleapis.com/ruvbrain/training_cycles\"",
"aggregation": {
"alignmentPeriod": "300s",
"perSeriesAligner": "ALIGN_RATE",
"crossSeriesReducer": "REDUCE_SUM"
}
}
},
"plotType": "LINE",
"legendTemplate": "Training Cycles/min"
}
],
"yAxis": {
"label": "Cycles/min",
"scale": "LINEAR"
}
}
}
},
{
"xPos": 0,
"yPos": 8,
"width": 4,
"height": 4,
"widget": {
"title": "Drift Coefficient",
"xyChart": {
"dataSets": [
{
"timeSeriesQuery": {
"timeSeriesFilter": {
"filter": "resource.type=\"cloud_run_revision\" AND resource.labels.service_name=\"ruvbrain\" AND metric.type=\"custom.googleapis.com/ruvbrain/drift_coefficient\"",
"aggregation": {
"alignmentPeriod": "300s",
"perSeriesAligner": "ALIGN_MEAN",
"crossSeriesReducer": "REDUCE_MEAN"
}
}
},
"plotType": "LINE",
"legendTemplate": "Drift Coefficient"
}
],
"yAxis": {
"label": "Drift",
"scale": "LINEAR"
},
"thresholds": [
{
"label": "Drift Threshold",
"value": 0.15,
"color": "RED",
"direction": "ABOVE"
}
]
}
}
},
{
"xPos": 4,
"yPos": 8,
"width": 4,
"height": 4,
"widget": {
"title": "Injection Throughput",
"xyChart": {
"dataSets": [
{
"timeSeriesQuery": {
"timeSeriesFilter": {
"filter": "resource.type=\"cloud_run_revision\" AND resource.labels.service_name=\"ruvbrain\" AND metric.type=\"custom.googleapis.com/ruvbrain/injection_count\"",
"aggregation": {
"alignmentPeriod": "60s",
"perSeriesAligner": "ALIGN_RATE",
"crossSeriesReducer": "REDUCE_SUM"
}
}
},
"plotType": "STACKED_BAR",
"legendTemplate": "Injections/sec"
}
],
"yAxis": {
"label": "Injections/sec",
"scale": "LINEAR"
}
}
}
},
{
"xPos": 8,
"yPos": 8,
"width": 4,
"height": 4,
"widget": {
"title": "Optimization Cycle Duration",
"xyChart": {
"dataSets": [
{
"timeSeriesQuery": {
"timeSeriesFilter": {
"filter": "resource.type=\"cloud_run_revision\" AND resource.labels.service_name=\"ruvbrain\" AND metric.type=\"custom.googleapis.com/ruvbrain/optimize_duration_ms\"",
"aggregation": {
"alignmentPeriod": "300s",
"perSeriesAligner": "ALIGN_PERCENTILE_95",
"crossSeriesReducer": "REDUCE_MEAN"
}
}
},
"plotType": "LINE",
"legendTemplate": "p95 Duration"
},
{
"timeSeriesQuery": {
"timeSeriesFilter": {
"filter": "resource.type=\"cloud_run_revision\" AND resource.labels.service_name=\"ruvbrain\" AND metric.type=\"custom.googleapis.com/ruvbrain/optimize_duration_ms\"",
"aggregation": {
"alignmentPeriod": "300s",
"perSeriesAligner": "ALIGN_MEAN",
"crossSeriesReducer": "REDUCE_MEAN"
}
}
},
"plotType": "LINE",
"legendTemplate": "Mean Duration"
}
],
"yAxis": {
"label": "Duration (ms)",
"scale": "LINEAR"
}
}
}
},
{
"xPos": 0,
"yPos": 12,
"width": 6,
"height": 4,
"widget": {
"title": "Container CPU Utilization",
"xyChart": {
"dataSets": [
{
"timeSeriesQuery": {
"timeSeriesFilter": {
"filter": "resource.type=\"cloud_run_revision\" AND resource.labels.service_name=\"ruvbrain\" AND metric.type=\"run.googleapis.com/container/cpu/utilizations\"",
"aggregation": {
"alignmentPeriod": "60s",
"perSeriesAligner": "ALIGN_PERCENTILE_95",
"crossSeriesReducer": "REDUCE_MEAN"
}
}
},
"plotType": "LINE",
"legendTemplate": "CPU p95"
}
],
"yAxis": {
"label": "Utilization",
"scale": "LINEAR"
}
}
}
},
{
"xPos": 6,
"yPos": 12,
"width": 6,
"height": 4,
"widget": {
"title": "Container Memory Utilization",
"xyChart": {
"dataSets": [
{
"timeSeriesQuery": {
"timeSeriesFilter": {
"filter": "resource.type=\"cloud_run_revision\" AND resource.labels.service_name=\"ruvbrain\" AND metric.type=\"run.googleapis.com/container/memory/utilizations\"",
"aggregation": {
"alignmentPeriod": "60s",
"perSeriesAligner": "ALIGN_PERCENTILE_95",
"crossSeriesReducer": "REDUCE_MEAN"
}
}
},
"plotType": "LINE",
"legendTemplate": "Memory p95"
}
],
"yAxis": {
"label": "Utilization",
"scale": "LINEAR"
}
}
}
}
]
}
}