{
  "repo": "tidbcloud/VictoriaMetrics",
  "binary": "vmrestore",
  "binary_path": "app/vmrestore/main.go",
  "services": [
    {
      "name": "VMRestoreLifecycle",
      "package": "main",
      "methods": [
        {
          "name": "InitializeFlagsAndLogging",
          "input": "command-line flags + environment variables",
          "output": "configured restore runtime",
          "type": "local",
          "name_key": "Runtime VMRestoreLifecycle.InitializeFlagsAndLogging"
        },
        {
          "name": "StartHTTPServer",
          "input": "httpListenAddr list",
          "output": "builtin HTTP listener for metrics and probes",
          "type": "local",
          "name_key": "Runtime VMRestoreLifecycle.StartHTTPServer"
        },
        {
          "name": "HandleSignalCancellation",
          "input": "SIGINT or SIGTERM",
          "output": "cancelled restore context",
          "type": "local",
          "name_key": "Runtime VMRestoreLifecycle.HandleSignalCancellation"
        },
        {
          "name": "RunRestore",
          "input": "src + storageDataPath + concurrency + backup-complete policy",
          "output": "restored local VM data directory",
          "type": "local",
          "name_key": "Runtime VMRestoreLifecycle.RunRestore"
        },
        {
          "name": "StopHTTPServer",
          "input": "httpListenAddr list",
          "output": "gracefully stopped builtin HTTP listener",
          "type": "local",
          "name_key": "Runtime VMRestoreLifecycle.StopHTTPServer"
        }
      ]
    },
    {
      "name": "VMRestoreBuiltinHTTP",
      "type": "http",
      "methods": [
        {
          "name": "ANY /health",
          "input": "health probe",
          "output": "OK or delayed-shutdown status",
          "path": "/health",
          "type": "http",
          "name_key": "HTTP ANY /health"
        },
        {
          "name": "ANY /ping",
          "input": "optional verbose query arg",
          "output": "Influx-compatible ping response",
          "path": "/ping",
          "type": "http",
          "name_key": "HTTP ANY /ping"
        },
        {
          "name": "ANY /metrics",
          "input": "optional authKey query arg",
          "output": "Prometheus metrics",
          "path": "/metrics",
          "type": "http",
          "name_key": "HTTP ANY /metrics"
        },
        {
          "name": "ANY /flags",
          "input": "optional authKey query arg",
          "output": "effective process flags",
          "path": "/flags",
          "type": "http",
          "name_key": "HTTP ANY /flags"
        },
        {
          "name": "ANY /-/healthy",
          "input": "Prometheus compatibility probe",
          "output": "VictoriaMetrics is Healthy",
          "path": "/-/healthy",
          "type": "http",
          "name_key": "HTTP ANY /-/healthy"
        },
        {
          "name": "ANY /-/ready",
          "input": "Prometheus compatibility probe",
          "output": "VictoriaMetrics is Ready",
          "path": "/-/ready",
          "type": "http",
          "name_key": "HTTP ANY /-/ready"
        },
        {
          "name": "ANY /debug/pprof/*",
          "input": "pprof subpath + optional authKey query arg",
          "output": "pprof profile or debug page",
          "path": "/debug/pprof/*",
          "type": "http",
          "name_key": "HTTP ANY /debug/pprof/*"
        }
      ]
    }
  ],
  "surface_kind": "mixed_service",
  "extensions": {}
}
