- होम
- मल्टी-क्लाउड नेटवर्किंग
- Customer Edge diagnostics
- Reaching a Customer Edge
- डिबग API
डिबग API
इस डिप्लॉयमेंट के एक CE से 2026-07-28 को कैप्चर किया गया। sitecli/capture-manifest.json
यह दर्ज करता है कि कौन-सा नोड था, और scripts/capture-sitecli.sh --check कमांड सरफ़ेस को
एक लाइव CE के विरुद्ध पुनः सत्यापित करता है।
vpm/debug API किसी रजिस्टर्ड नोड पर Site CLI कमांड चलाता है और उनका आउटपुट लौटाता है।
नीचे दी गई हर बात एक लाइव नोड के विरुद्ध स्थापित की गई थी; इसमें से कुछ भी अपस्ट्रीम
प्रकाशित नहीं है।
कमांड कैटलॉग स्वयं-वर्णनात्मक है
Section titled “कमांड कैटलॉग स्वयं-वर्णनात्मक है”नोड से पूछें कि वह क्या समर्थन करता है — exec-user पर POST करके, जिसमें command कुंजी
छोड़ दी गई हो:
curl -sS -X POST \ -H "Authorization: APIToken $XCSH_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{"namespace":"system","site":"<site>","node":"<node>"}' \ "$XCSH_API_URL/api/operate/namespaces/system/sites/<site>/vpm/debug/<node>/exec-user" \ | jq -r .output | jq .प्रतिक्रिया एक JSON ऑब्जेक्ट है जिसकी कुंजियाँ कमांड नाम हैं:
{ "crictl-inspect": ["System Troubleshooting", "ExecUser", " container-id"], "diagnosis": ["System Troubleshooting", "ExecUser", "no argument needed", "GLOBAL"], "ip-link-set": ["Network Troubleshooting", "Exec", " (<device>||<group>) (up||down)"]}प्रत्येक प्रविष्टि [category, tier, exampleArgument?, scope?] है, और ये फ़ील्ड
दस्तावेज़ीकरण नहीं हैं — ये तय करते हैं कि कमांड को कैसे कॉल किया जाना चाहिए।
तीन ट्रांसपोर्ट, कैटलॉग प्रविष्टि द्वारा चुने गए
Section titled “तीन ट्रांसपोर्ट, कैटलॉग प्रविष्टि द्वारा चुने गए”| शर्त | विधि और पथ | बॉडी | लौटाता है |
|---|---|---|---|
scope का मान GLOBAL है | GET .../vpm/debug/global/<cmd> | कोई नहीं | JSON |
tier का मान ExecUser है | POST .../vpm/debug/<node>/exec-user | command सरणी | टेक्स्ट |
tier का मान Exec है | POST .../vpm/debug/<node>/exec | command सरणी | टेक्स्ट |
ExecUser — केवल-पठन tier 31 commands
Section titled “ExecUser — केवल-पठन tier ”सामान्य स्थिति। कमांड और उसके तर्कों को एक सरणी के रूप में पास करें, पहले कमांड नाम:
curl -sS -X POST \ -H "Authorization: APIToken $XCSH_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{"namespace":"system","site":"<site>","node":"<node>","command":["crictl-ps"]}' \ "$XCSH_API_URL/api/operate/namespaces/system/sites/<site>/vpm/debug/<node>/exec-user"{ "return_code": 0, "output": "CONTAINER IMAGE CREATED STATE ..." }तर्क अलग-अलग सरणी तत्व होते हैं, एक अकेली स्ट्रिंग नहीं:
{ "command": ["journalctl", "-u", "vpm", "-n", "200"] }GLOBAL — साइट-व्यापी, और पूरी तरह भिन्न ट्रांसपोर्ट 2 commands
Section titled “GLOBAL — साइट-व्यापी, और पूरी तरह भिन्न ट्रांसपोर्ट ”health और diagnosis ही केवल दो हैं। ये global पथ पर GET अनुरोध हैं, कोई तर्क
नहीं लेते, और टर्मिनल टेक्स्ट के बजाय संरचित JSON लौटाते हैं।
curl -sS -H "Authorization: APIToken $XCSH_API_TOKEN" \ "$XCSH_API_URL/api/operate/namespaces/system/sites/<site>/vpm/debug/global/health" | jq .Exec — विशेषाधिकार-प्राप्त tier 1 command on this build
Section titled “Exec — विशेषाधिकार-प्राप्त tier ”एक अलग एंडपॉइंट, और tier सलाहकारी नहीं बल्कि लागू किया जाता है: exec एक
ExecUser कमांड को उसी command not supported संदेश के साथ अस्वीकार करता है। इसका हर सदस्य
या तो नोड को बदलता है या किसी स्टेट मार्कर को पढ़ता है।
इस टेनेंट पर चल रहे बिल्ड में, इस tier में केवल ip-link-set है। नए बिल्ड
systemctl-restart-NetworkManager, systemctl-restart-crio,
systemctl-restart-kubelet, systemctl-start-crio-prune और तीन
marker-exists-* कमांड जोड़ते हैं।
साइट और नोड नाम खोजना
Section titled “साइट और नोड नाम खोजना”नोड नाम Azure VM नाम होता है, और list-service इसकी पुष्टि करने का एक सस्ता तरीका है,
साथ ही उस पर चल रही सेवाओं के साथ:
curl -sS -H "Authorization: APIToken $XCSH_API_TOKEN" \ "$XCSH_API_URL/api/operate/namespaces/system/sites/<site>/vpm/debug/global/list-service" \ | jq -r '[.service[].node] | unique'["", "f5-xc-ce-vm-01"]कुछ सेवाएँ खाली नोड नाम रिपोर्ट करती हैं, इसलिए उस सूची में एक खाली स्ट्रिंग दूसरे नोड के
बजाय प्रतिक्रिया की एक कलाकृति है। list-service 34-कमांड कैटलॉग में भी नहीं है:
यह एक global एंडपॉइंट है जिसका कैटलॉग प्रचार नहीं करता, और इसीलिए इसे यहाँ दस्तावेज़ित
किया गया है, कमांड संदर्भ में नहीं।
इस रिपॉज़िटरी के कैप्चर पुनः उत्पन्न करना
Section titled “इस रिपॉज़िटरी के कैप्चर पुनः उत्पन्न करना”प्रत्येक कमांड पृष्ठ scripts/capture-sitecli.sh द्वारा कैप्चर किया गया आउटपुट एम्बेड करता है,
जो ऊपर के तीनों नियमों को लागू करता है।
-
इसे किसी टेनेंट पर लक्षित करें। यह
XCSH_API_URLऔरXCSH_API_TOKENपढ़ता है, या सक्रियxcshसंदर्भ पर वापस लौट जाता है। -
कैटलॉग रीफ़्रेश करें और पुष्टि करें कि दस्तावेज़ीकरण के नीचे नोड बदला नहीं है:
Terminal window bash scripts/capture-sitecli.sh --checkयह केवल कमिट किए गए कैटलॉग और सॉफ़्टवेयर बिल्ड की तुलना करता है। यह बिल्ड परिवर्तन को जोड़े या हटाए गए कमांड से अलग रिपोर्ट करता है।
-
जब आप ताज़ा साक्ष्य चाहें, तो पुनः कैप्चर करें:
Terminal window bash scripts/capture-sitecli.sh