{
  "repo": "tidbcloud/shared-provider",
  "binary": "throttler",
  "binary_path": "cmd/throttler/main.go",
  "dependencies": {
    "HealthService.healthz": {
      "infrastructure": {},
      "services": []
    },
    "HealthService.readyz": {
      "infrastructure": {},
      "services": []
    },
    "MetricsService.metrics": {
      "infrastructure": {},
      "services": []
    },
    "ThrottlerReconciler.Reconcile": {
      "infrastructure": {
        "kubernetes": {
          "conditions": ["Always"],
          "operations": [
            {
              "operation": "Kubernetes API Get TidbCluster",
              "trigger": "Fetch TidbCluster to get throttling config",
              "conditions": ["Always"],
              "implementation": "r.Cache.Get(ctx, req.NamespacedName, &tc)"
            },
            {
              "operation": "Kubernetes API List Pods",
              "trigger": "List TiDB pods for the cluster",
              "conditions": ["Always"],
              "implementation": "r.Cache.List(ctx, &pl, client.InNamespace(tc.Namespace), client.MatchingLabels{...})"
            }
          ]
        }
      },
      "services": []
    }
  },
  "notes": [
    "Uses Linux TC (traffic control) to throttle bandwidth for pods",
    "Interacts with Docker runtime to apply throttling via netns",
    "Only watches pods on the same node (spec.nodeName filter)"
  ]
}
