{
  "annotations": { "list": [] },
  "description": "Vendor-neutral Roster operational overview. Exporter health shows OTLP endpoint delivery, not downstream persistence.",
  "editable": true,
  "fiscalYearStartMonth": 0,
  "graphTooltip": 1,
  "id": null,
  "links": [],
  "panels": [
    {
      "datasource": { "type": "prometheus", "uid": "roster-prometheus" },
      "fieldConfig": { "defaults": { "unit": "reqps" }, "overrides": [] },
      "gridPos": { "h": 5, "w": 6, "x": 0, "y": 0 },
      "id": 1,
      "options": {
        "colorMode": "value",
        "graphMode": "area",
        "justifyMode": "auto",
        "orientation": "auto",
        "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false },
        "textMode": "auto",
        "wideLayout": true
      },
      "targets": [
        {
          "editorMode": "code",
          "expr": "sum(rate(roster_http_server_request_count_total[$__rate_interval]))",
          "legendFormat": "requests",
          "range": true,
          "refId": "A"
        }
      ],
      "title": "Request rate",
      "type": "stat"
    },
    {
      "datasource": { "type": "prometheus", "uid": "roster-prometheus" },
      "fieldConfig": {
        "defaults": {
          "max": 1,
          "min": 0,
          "thresholds": {
            "mode": "absolute",
            "steps": [
              { "color": "green", "value": null },
              { "color": "red", "value": 0.01 }
            ]
          },
          "unit": "percentunit"
        },
        "overrides": []
      },
      "gridPos": { "h": 5, "w": 6, "x": 6, "y": 0 },
      "id": 2,
      "options": {
        "colorMode": "value",
        "graphMode": "area",
        "justifyMode": "auto",
        "orientation": "auto",
        "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false },
        "textMode": "auto",
        "wideLayout": true
      },
      "targets": [
        {
          "editorMode": "code",
          "expr": "roster:http_errors:ratio5m",
          "legendFormat": "errors",
          "range": true,
          "refId": "A"
        }
      ],
      "title": "Server error ratio",
      "type": "stat"
    },
    {
      "datasource": { "type": "prometheus", "uid": "roster-prometheus" },
      "fieldConfig": { "defaults": { "unit": "s" }, "overrides": [] },
      "gridPos": { "h": 5, "w": 6, "x": 12, "y": 0 },
      "id": 3,
      "options": {
        "colorMode": "value",
        "graphMode": "area",
        "justifyMode": "auto",
        "orientation": "auto",
        "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false },
        "textMode": "auto",
        "wideLayout": true
      },
      "targets": [
        {
          "editorMode": "code",
          "expr": "histogram_quantile(0.95, sum by (le) (rate(roster_http_server_request_duration_seconds_bucket[$__rate_interval])))",
          "legendFormat": "p95",
          "range": true,
          "refId": "A"
        }
      ],
      "title": "HTTP p95 latency",
      "type": "stat"
    },
    {
      "datasource": { "type": "prometheus", "uid": "roster-prometheus" },
      "fieldConfig": { "defaults": { "unit": "short" }, "overrides": [] },
      "gridPos": { "h": 5, "w": 6, "x": 18, "y": 0 },
      "id": 4,
      "options": {
        "colorMode": "value",
        "graphMode": "area",
        "justifyMode": "auto",
        "orientation": "auto",
        "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false },
        "textMode": "auto",
        "wideLayout": true
      },
      "targets": [
        {
          "editorMode": "code",
          "expr": "max(roster_worker_queue_depth_job{roster_queue_state=\"queued\"})",
          "legendFormat": "queued",
          "range": true,
          "refId": "A"
        }
      ],
      "title": "Queued worker jobs",
      "type": "stat"
    },
    {
      "datasource": { "type": "prometheus", "uid": "roster-prometheus" },
      "fieldConfig": {
        "defaults": {
          "max": 1,
          "min": 0,
          "thresholds": {
            "mode": "absolute",
            "steps": [
              { "color": "green", "value": null },
              { "color": "red", "value": 0.01 }
            ]
          },
          "unit": "percentunit"
        },
        "overrides": []
      },
      "gridPos": { "h": 5, "w": 12, "x": 0, "y": 5 },
      "id": 10,
      "options": {
        "colorMode": "value",
        "graphMode": "area",
        "justifyMode": "auto",
        "orientation": "auto",
        "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false },
        "textMode": "auto",
        "wideLayout": true
      },
      "targets": [
        {
          "editorMode": "code",
          "expr": "roster:resolve_errors:ratio5m",
          "legendFormat": "errors",
          "range": true,
          "refId": "A"
        }
      ],
      "title": "Resolve error ratio",
      "type": "stat"
    },
    {
      "datasource": { "type": "prometheus", "uid": "roster-prometheus" },
      "fieldConfig": {
        "defaults": {
          "color": { "fixedColor": "blue", "mode": "fixed" },
          "max": 1,
          "min": 0,
          "unit": "percentunit"
        },
        "overrides": []
      },
      "gridPos": { "h": 5, "w": 12, "x": 12, "y": 5 },
      "id": 11,
      "options": {
        "colorMode": "value",
        "graphMode": "area",
        "justifyMode": "auto",
        "orientation": "auto",
        "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false },
        "textMode": "auto",
        "wideLayout": true
      },
      "targets": [
        {
          "editorMode": "code",
          "expr": "roster:resolve_yield:ratio5m",
          "legendFormat": "successful resolutions",
          "range": true,
          "refId": "A"
        }
      ],
      "title": "Resolution yield",
      "type": "stat"
    },
    {
      "datasource": { "type": "prometheus", "uid": "roster-prometheus" },
      "fieldConfig": { "defaults": { "unit": "reqps" }, "overrides": [] },
      "gridPos": { "h": 8, "w": 12, "x": 0, "y": 10 },
      "id": 5,
      "options": {
        "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true },
        "tooltip": { "hideZeros": false, "mode": "multi", "sort": "desc" }
      },
      "targets": [
        {
          "editorMode": "code",
          "expr": "sum by (http_route, roster_outcome) (rate(roster_http_server_request_count_total[$__rate_interval]))",
          "legendFormat": "{{http_route}} · {{roster_outcome}}",
          "range": true,
          "refId": "A"
        }
      ],
      "title": "Requests by normalized route and outcome",
      "type": "timeseries"
    },
    {
      "datasource": { "type": "prometheus", "uid": "roster-prometheus" },
      "fieldConfig": { "defaults": { "unit": "s" }, "overrides": [] },
      "gridPos": { "h": 8, "w": 12, "x": 12, "y": 10 },
      "id": 6,
      "options": {
        "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true },
        "tooltip": { "hideZeros": false, "mode": "multi", "sort": "desc" }
      },
      "targets": [
        {
          "editorMode": "code",
          "expr": "histogram_quantile(0.50, sum by (le, roster_resolve_mode, roster_surface) (rate(roster_resolve_request_duration_seconds_bucket[$__rate_interval])))",
          "legendFormat": "Resolve p50 · {{roster_surface}} · {{roster_resolve_mode}}",
          "range": true,
          "refId": "A"
        },
        {
          "editorMode": "code",
          "expr": "histogram_quantile(0.95, sum by (le, roster_resolve_mode, roster_surface) (rate(roster_resolve_request_duration_seconds_bucket[$__rate_interval])))",
          "legendFormat": "Resolve p95 · {{roster_surface}} · {{roster_resolve_mode}}",
          "range": true,
          "refId": "B"
        },
        {
          "editorMode": "code",
          "expr": "histogram_quantile(0.99, sum by (le, roster_resolve_mode, roster_surface) (rate(roster_resolve_request_duration_seconds_bucket[$__rate_interval])))",
          "legendFormat": "Resolve p99 · {{roster_surface}} · {{roster_resolve_mode}}",
          "range": true,
          "refId": "C"
        },
        {
          "editorMode": "code",
          "expr": "histogram_quantile(0.95, sum by (le, gen_ai_provider_name) (rate(roster_llm_operation_duration_seconds_bucket[$__rate_interval])))",
          "legendFormat": "LLM p95 · {{gen_ai_provider_name}}",
          "range": true,
          "refId": "D"
        }
      ],
      "title": "Resolve and model latency",
      "type": "timeseries"
    },
    {
      "datasource": { "type": "prometheus", "uid": "roster-prometheus" },
      "fieldConfig": { "defaults": { "unit": "tps" }, "overrides": [] },
      "gridPos": { "h": 8, "w": 8, "x": 0, "y": 18 },
      "id": 7,
      "options": {
        "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true },
        "tooltip": { "hideZeros": false, "mode": "multi", "sort": "desc" }
      },
      "targets": [
        {
          "editorMode": "code",
          "expr": "sum by (gen_ai_provider_name, gen_ai_token_type) (rate(roster_llm_token_usage_total[$__rate_interval]))",
          "legendFormat": "{{gen_ai_provider_name}} · {{gen_ai_token_type}}",
          "range": true,
          "refId": "A"
        }
      ],
      "title": "Model token throughput",
      "type": "timeseries"
    },
    {
      "datasource": { "type": "prometheus", "uid": "roster-prometheus" },
      "fieldConfig": { "defaults": { "unit": "short" }, "overrides": [] },
      "gridPos": { "h": 8, "w": 8, "x": 8, "y": 18 },
      "id": 8,
      "options": {
        "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true },
        "tooltip": { "hideZeros": false, "mode": "multi", "sort": "desc" }
      },
      "targets": [
        {
          "editorMode": "code",
          "expr": "max by (roster_queue_state) (roster_worker_queue_depth_job)",
          "legendFormat": "{{roster_queue_state}}",
          "range": true,
          "refId": "A"
        }
      ],
      "title": "Worker queue state",
      "type": "timeseries"
    },
    {
      "datasource": { "type": "prometheus", "uid": "roster-prometheus" },
      "fieldConfig": { "defaults": { "unit": "short" }, "overrides": [] },
      "gridPos": { "h": 8, "w": 8, "x": 16, "y": 18 },
      "id": 9,
      "options": {
        "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true },
        "tooltip": { "hideZeros": false, "mode": "multi", "sort": "desc" }
      },
      "targets": [
        {
          "editorMode": "code",
          "expr": "sum by (roster_telemetry_signal) (increase(roster_telemetry_export_error_count_total[$__rate_interval]))",
          "legendFormat": "export errors · {{roster_telemetry_signal}}",
          "range": true,
          "refId": "A"
        },
        {
          "editorMode": "code",
          "expr": "sum(increase(roster_worker_lease_loss_count_total[$__rate_interval]))",
          "legendFormat": "lease losses",
          "range": true,
          "refId": "B"
        }
      ],
      "title": "Operational failures",
      "type": "timeseries"
    }
  ],
  "refresh": "30s",
  "schemaVersion": 41,
  "tags": ["roster", "opentelemetry"],
  "templating": { "list": [] },
  "time": { "from": "now-6h", "to": "now" },
  "timepicker": {},
  "timezone": "browser",
  "title": "Roster Observability",
  "uid": "roster-overview",
  "version": 2
}
