{
  "repo": "tidbcloud/loki",
  "binary": "loki-canary",
  "binary_path": "cmd/loki-canary/main.go",
  "surface_kind": "mixed_service",
  "type": "mixed_service",
  "services": [
    {
      "name": "LokiCanaryHTTP",
      "type": "http",
      "methods": [
        {
          "name": "GET /metrics",
          "name_key": "HTTP GET /metrics",
          "path": "/metrics",
          "method": "GET",
          "description": "Prometheus metrics for synthetic write/read comparison health."
        },
        {
          "name": "GET /resume",
          "name_key": "HTTP GET /resume",
          "path": "/resume",
          "method": "GET",
          "description": "Restart the writer/reader/comparator pipeline."
        },
        {
          "name": "GET /suspend",
          "name_key": "HTTP GET /suspend",
          "path": "/suspend",
          "method": "GET",
          "description": "Stop the writer/reader/comparator pipeline without exiting the process."
        }
      ]
    },
    {
      "name": "LokiCanaryWorker",
      "type": "worker",
      "methods": [
        {
          "name": "SyntheticWriteReadLoop",
          "name_key": "Runtime LokiCanaryWorker.SyntheticWriteReadLoop",
          "description": "Continuously writes canary log lines, tails/query-checks them from Loki, and reports comparison metrics."
        }
      ]
    }
  ],
  "extensions": {
    "notes": [
      "cmd/loki-canary is a long-running synthetic probe process with an HTTP control and metrics surface."
    ]
  }
}
