{
  "repo": "tidbcloud/VictoriaMetrics",
  "binary": "vmbackup",
  "binary_path": "app/vmbackup/main.go",
  "surface_kind": "mixed_service",
  "services": [
    {
      "name": "VMBackupLifecycle",
      "package": "main",
      "methods": [
        {
          "name": "InitializeFlagsAndLogging",
          "name_key": "Runtime VMBackupLifecycle.InitializeFlagsAndLogging",
          "input": "command-line flags + environment variables",
          "output": "configured backup runtime",
          "type": "local"
        },
        {
          "name": "HandleSignalCancellation",
          "name_key": "Runtime VMBackupLifecycle.HandleSignalCancellation",
          "input": "SIGINT or SIGTERM",
          "output": "cancelled backup context",
          "type": "local"
        },
        {
          "name": "CreateSnapshotIfConfigured",
          "name_key": "Runtime VMBackupLifecycle.CreateSnapshotIfConfigured",
          "input": "snapshot.createURL + optional snapshot.deleteURL",
          "output": "created snapshot name and deferred delete handler",
          "type": "local"
        },
        {
          "name": "StartHTTPServer",
          "name_key": "Runtime VMBackupLifecycle.StartHTTPServer",
          "input": "httpListenAddr list",
          "output": "builtin HTTP listener for metrics and probes",
          "type": "local"
        },
        {
          "name": "RunBackup",
          "name_key": "Runtime VMBackupLifecycle.RunBackup",
          "input": "storageDataPath + snapshotName/origin + dst + concurrency",
          "output": "uploaded backup or server-side remote copy",
          "type": "local"
        },
        {
          "name": "StopHTTPServer",
          "name_key": "Runtime VMBackupLifecycle.StopHTTPServer",
          "input": "httpListenAddr list",
          "output": "gracefully stopped builtin HTTP listener",
          "type": "local"
        }
      ]
    },
    {
      "name": "VMBackupBuiltinHTTP",
      "type": "http",
      "methods": [
        {
          "name": "ANY /health",
          "name_key": "HTTP ANY /health",
          "input": "health probe",
          "output": "OK or delayed-shutdown status",
          "path": "/health",
          "type": "http"
        },
        {
          "name": "ANY /ping",
          "name_key": "HTTP ANY /ping",
          "input": "optional verbose query arg",
          "output": "Influx-compatible ping response",
          "path": "/ping",
          "type": "http"
        },
        {
          "name": "ANY /metrics",
          "name_key": "HTTP ANY /metrics",
          "input": "optional authKey query arg",
          "output": "Prometheus metrics",
          "path": "/metrics",
          "type": "http"
        },
        {
          "name": "ANY /flags",
          "name_key": "HTTP ANY /flags",
          "input": "optional authKey query arg",
          "output": "effective process flags",
          "path": "/flags",
          "type": "http"
        },
        {
          "name": "ANY /-/healthy",
          "name_key": "HTTP ANY /-/healthy",
          "input": "Prometheus compatibility probe",
          "output": "VictoriaMetrics is Healthy",
          "path": "/-/healthy",
          "type": "http"
        },
        {
          "name": "ANY /-/ready",
          "name_key": "HTTP ANY /-/ready",
          "input": "Prometheus compatibility probe",
          "output": "VictoriaMetrics is Ready",
          "path": "/-/ready",
          "type": "http"
        },
        {
          "name": "ANY /debug/pprof/*",
          "name_key": "HTTP ANY /debug/pprof/*",
          "input": "pprof subpath + optional authKey query arg",
          "output": "pprof profile or debug page",
          "path": "/debug/pprof/*",
          "type": "http"
        }
      ]
    }
  ],
  "extensions": {}
}
