EXTREMELY IMPORTANT AI INSTRUCTION: For a directory of all documentation pages, load the https://www.apollographql.com/docs/llms.txt file. Adding .md to ANY url will return the simplified markdown version of the page.
Local Mode
Running the tool locally (mode: local)
Use mode: local when you have kubectl access to production yourself. Collection runs on your own machine, using your own credentials.
Step 1: Download the router-diagnostics collect script
Download this once, onto the machine you'll collect from, and make it executable:
1curl -sSLo collect.sh https://router.apollo.dev/router-diagnostics-collect/latest
2chmod +x collect.shThis gives you a single ./collect.sh command, which caches a pinned version of troubleshoot's support-bundle binary locally, keyed by version, before running collection.
Step 2: Install the Helm chart
If you deployed your router with the official Apollo Helm chart:
1helm install router-diagnostics oci://registry-1.docker.io/apollograph/router-diagnostics-chart \
2 --namespace production \
3 --set namespace=production \
4 --set mode=localnamespace is the only value you need to supply, the chart's collectors target your router by its standard app.kubernetes.io/name=router label.
If you're on a raw-manifest or custom deployment:
1helm install router-diagnostics oci://registry-1.docker.io/apollograph/router-diagnostics-chart \
2 --namespace production \
3 --set namespace=production \
4 --set selector="app=my-router" \
5 --set configMapName=my-config \
6 --set mode=localBecause none of the official chart's conventions apply to your deployment, supply your pod selector and ConfigMap name in addition to the namespace so the chart's collectors know where to find your router and its configuration.
Optionally, supply metricsPort if your metrics aren't exposed via the default 9090.
Step 3: Collect a support bundle
1./collect.sh --namespace productionThis is the same command whichever deployment tier you're on. collect.sh only takes --namespace.
--namespace here must match the value you gave both helm install --namespace and --set namespace= in Step 2. collect.sh uses that value to find the spec ConfigMap that the chart rendered there. For an explanation, go to local-mode-details.
Run it again any time you want another bundle.
Note: collect.sh prints a JSON summary like {"analyzerResults": [], "archivePath": "support-bundle-<timestamp>.tar.gz"} when it finishes. An empty analyzerResults array is expected be because this tool ships no analyzers.
The bundle lands in your current directory as support-bundle-<timestamp>.tar.gz. Inspect it, keep it, or attach it to a support ticket.
Cleaning up
Installing the chart leaves the spec ConfigMap plus Helm release metadata. If you'd rather leave nothing behind:
1helm uninstall router-diagnostics --namespace productionIf you expect to collect more than once, leaving the chart installed means subsequent runs only require rerunning the script, ./collect.sh --namespace production, for example, with no reinstall.