{
  "repo": "tidbcloud/autoscaler",
  "binary": "cluster-autoscaler",
  "binary_path": "cluster-autoscaler/main.go",
  "surface_kind": "mixed_service",
  "type": "mixed_service",
  "extensions": {},
  "services": [
    {
      "name": "ClusterAutoscalerLifecycle",
      "type": "lifecycle",
      "methods": [
        {
          "name": "LoadFlags",
          "name_key": "ClusterAutoscalerLifecycle.LoadFlags",
          "description": "Register and parse the cluster-autoscaler flags and pflags."
        },
        {
          "name": "InitLogging",
          "name_key": "ClusterAutoscalerLifecycle.InitLogging",
          "description": "Initialize klog, component-base logging flags, and feature gates."
        },
        {
          "name": "ValidateLoggingConfig",
          "name_key": "ClusterAutoscalerLifecycle.ValidateLoggingConfig",
          "description": "Validate and apply the logging configuration."
        },
        {
          "name": "InitHealthCheck",
          "name_key": "ClusterAutoscalerLifecycle.InitHealthCheck",
          "description": "Create the health-check tracker."
        },
        {
          "name": "InitDebuggingSnapshotter",
          "name_key": "ClusterAutoscalerLifecycle.InitDebuggingSnapshotter",
          "description": "Create the debugging snapshotter instance."
        },
        {
          "name": "StartupMetricsServer",
          "name_key": "ClusterAutoscalerLifecycle.StartupMetricsServer",
          "description": "Start the dedicated metrics/debug HTTP listener."
        },
        {
          "name": "BuildAutoscaler",
          "name_key": "ClusterAutoscalerLifecycle.BuildAutoscaler",
          "description": "Build the autoscaler, informer factory, predicate checker, processors, and optional provisioning-request helpers."
        },
        {
          "name": "StartPodObserver",
          "name_key": "ClusterAutoscalerLifecycle.StartPodObserver",
          "description": "Start the unschedulable-pod observer informer."
        },
        {
          "name": "RegisterSignalHandlers",
          "name_key": "ClusterAutoscalerLifecycle.RegisterSignalHandlers",
          "description": "Register process signal handlers that call ExitCleanUp on shutdown."
        },
        {
          "name": "StartHealthMonitoring",
          "name_key": "ClusterAutoscalerLifecycle.StartHealthMonitoring",
          "description": "Start health-check monitoring."
        },
        {
          "name": "StartBackgroundComponents",
          "name_key": "ClusterAutoscalerLifecycle.StartBackgroundComponents",
          "description": "Start autoscaler background components such as the cluster-state registry."
        },
        {
          "name": "RunAutoscalerLoop",
          "name_key": "ClusterAutoscalerLifecycle.RunAutoscalerLoop",
          "description": "Execute the autoscaling control loop, either on scan interval or immediate triggers."
        },
        {
          "name": "ValidateKubernetesConnection",
          "name_key": "ClusterAutoscalerLifecycle.ValidateKubernetesConnection",
          "description": "Validate the Kubernetes API connection before entering leader election."
        },
        {
          "name": "StartLeaderElection",
          "name_key": "ClusterAutoscalerLifecycle.StartLeaderElection",
          "description": "Run leader election and invoke the autoscaler only when this process becomes leader."
        },
        {
          "name": "ExitCleanUp",
          "name_key": "ClusterAutoscalerLifecycle.ExitCleanUp",
          "description": "Clean up processors, debugging snapshotter state, status configmap, cloud provider, and cluster-state registry on exit."
        }
      ]
    },
    {
      "name": "DebugHTTP",
      "type": "http",
      "base_path": "/",
      "methods": [
        {
          "name": "Metrics",
          "name_key": "DebugHTTP.Metrics",
          "method": "GET",
          "path": "/metrics",
          "description": "Prometheus metrics endpoint exposed by the dedicated metrics server."
        },
        {
          "name": "HealthCheck",
          "name_key": "DebugHTTP.HealthCheck",
          "method": "GET",
          "path": "/health-check",
          "description": "Health check endpoint backed by metrics.HealthCheck."
        },
        {
          "name": "DebuggingSnapshot",
          "name_key": "DebugHTTP.DebuggingSnapshot",
          "method": "GET",
          "path": "/snapshotz",
          "description": "Debugging snapshot endpoint, only registered when --debugging-snapshot-enabled is true."
        },
        {
          "name": "PProf",
          "name_key": "DebugHTTP.PProf",
          "method": "GET",
          "path": "/debug/pprof/*",
          "description": "pprof profiling endpoints, only registered when --profiling is true."
        }
      ]
    }
  ]
}
