Telemetrie a řešení potíží
Prostorová analýza zahrnuje sadu funkcí pro sledování stavu systému a k diagnostice problémů.
Povolit vizualizace
Pokud chcete ve snímku videa povolit vizualizaci událostí AI Insight, musíte použít .debug verzi operace prostorové analýzy na stolním počítači nebo na virtuálním počítači Azure. Vizualizace není možná na Azure Stack hraničních zařízeních. K dispozici jsou čtyři operace ladění.
Pokud je vaše zařízení místní stolní počítač nebo virtuální počítač GPU s grafickým rozhraním (s povolenou vzdálenou plochou), můžete přepnout na .debug verzi jakékoli operace a vizualizovat výstup.
Otevřete pracovní plochu buď místně, nebo pomocí klienta vzdálené plochy na hostitelském počítači, na kterém běží prostorová analýza.
V terminálu pro spuštění
xhost +Aktualizujte manifest nasazení v
spaceanalyticsmodulu s hodnotouDISPLAYproměnné prostředí. Jeho hodnotu můžete najít spuštěnímecho $DISPLAYv terminálu na hostitelském počítači."env": { "DISPLAY": { "value": ":11" } }Aktualizujte graf v manifestu nasazení, který chcete spustit v režimu ladění. V následujícím příkladu aktualizujeme operationId na cognitiveservices Account. Vision. spatialanalysis-personcrossingpolygon. Debug.
VISUALIZER_NODE_CONFIGPro povolení okna Vizualizér je vyžadován nový parametr. Všechny operace jsou k dispozici v charakteru ladění. Při použití sdílených uzlů použijte operaci cognitiveservices Account. Vision. spatialanalysis. Debug a přidejteVISUALIZER_NODE_CONFIGji do parametrů instance."zonecrossing": { "operationId" : "cognitiveservices.vision.spatialanalysis-personcrossingpolygon.debug", "version": 1, "enabled": true, "parameters": { "VIDEO_URL": "Replace http url here", "VIDEO_SOURCE_ID": "zonecrossingcamera", "VIDEO_IS_LIVE": false, "VIDEO_DECODE_GPU_INDEX": 0, "DETECTOR_NODE_CONFIG": "{ \"gpu_index\": 0 }", "CAMERACALIBRATOR_NODE_CONFIG": "{ \"gpu_index\": 0}", "VISUALIZER_NODE_CONFIG": "{ \"show_debug_video\": true }", "SPACEANALYTICS_CONFIG": "{\"zones\":[{\"name\":\"queue\",\"polygon\":[[0.3,0.3],[0.3,0.9],[0.6,0.9],[0.6,0.3],[0.3,0.3]], \"threshold\":35.0}]}" } }Znovu nasaďte a zobrazí se okno Vizualizér v hostitelském počítači.
Po dokončení nasazení bude pravděpodobně nutné zkopírovat
.Xauthoritysoubor z hostitelského počítače do kontejneru a restartovat jej. V následující ukázcepeopleanalyticsje název kontejneru v hostitelském počítači.sudo docker cp $XAUTHORITY peopleanalytics:/root/.Xauthority sudo docker stop peopleanalytics sudo docker start peopleanalytics xhost +
Shromažďování telemetrie stavu systému
Telegraf je open source obrázek, který pracuje s prostorovou analýzou a je k dispozici v Microsoft Container Registry. Přebírá následující vstupy a odesílá je do Azure Monitor. Modul telegraf se dá sestavit s požadovanými vlastními vstupy a výstupy. Konfigurace modulu telegraf v prostorové analýze je součástí manifestu nasazení (odkaz výše). Tento modul je nepovinný a je možné ho odebrat z manifestu, pokud ho nepotřebujete.
Vztahují
- Metriky prostorové analýzy
- Metriky disku
- Metriky procesoru
- Metriky Docker
- Metriky GPU
Činnosti
- Azure Monitor
Zadaný modul telegrafa prostorových analýz bude publikovat všechna data telemetrie vygenerovaná kontejnerem prostorové analýzy do Azure Monitor. Informace o přidání Azure Monitor do předplatného najdete v Azure monitor .
Po nastavení Azure Monitor budete muset vytvořit přihlašovací údaje, které modulu umožní odeslat telemetrii. K vytvoření nového instančního objektu můžete použít Azure Portal, nebo ho vytvořit pomocí příkazu Azure CLI níže.
Poznámka
Tento příkaz vyžaduje, abyste měli k předplatnému oprávnění vlastníka.
# Find your Azure IoT Hub resource ID by running this command. The resource ID should start with something like
# "/subscriptions/b60d6458-1234-4be4-9885-c7e73af9ced8/resourceGroups/..."
az iot hub list
# Create a Service Principal with `Monitoring Metrics Publisher` role in the IoTHub resource:
# Save the output from this command. The values will be used in the deployment manifest. The password won't be shown again so make sure to write it down
az ad sp create-for-rbac --role="Monitoring Metrics Publisher" --name "<principal name>" --scopes="<resource ID of IoT Hub>"
V manifestu nasazení pro Azure Stack hraniční zařízení, stolní počítačnebo virtuální počítač Azure s grafickým procesoremvyhledejte modul telegraf a nahraďte následující hodnoty informace o instančním objektu z předchozího kroku a znovu proveďte nasazení.
"telegraf": {
"settings": {
"image": "mcr.microsoft.com/azure-cognitive-services/vision/spatial-analysis/telegraf:1.0",
"createOptions": "{\"HostConfig\":{\"Runtime\":\"nvidia\",\"NetworkMode\":\"azure-iot-edge\",\"Memory\":33554432,\"Binds\":[\"/var/run/docker.sock:/var/run/docker.sock\"]}}"
},
"type": "docker",
"env": {
"AZURE_TENANT_ID": {
"value": "<Tenant Id>"
},
"AZURE_CLIENT_ID": {
"value": "Application Id"
},
"AZURE_CLIENT_SECRET": {
"value": "<Password>"
},
"region": {
"value": "<Region>"
},
"resource_id": {
"value": "/subscriptions/{subscriptionId}/resourceGroups/{resoureGroupName}/providers/Microsoft.Devices/IotHubs/{IotHub}"
},
...
Po nasazení modulu telegraf můžete k nahlášeným metrikám přistup prostřednictvím služby Azure Monitor, nebo výběrem monitorování v IoT Hub na Azure Portal.
Události stavu systému
| Název události | Description |
|---|---|
| archon_exit | Odesílá se, když uživatel změní stav modulu prostorové analýzy ze spuštěno na Zastaveno. |
| archon_error | Odesílá se v případě, že dojde k chybě kontejneru v případě jakéhokoli procesu. Toto je kritická chyba. |
| InputRate | Rychlost, s jakou graf zpracovává vstup videa Nahlášeno každých 5 minut. |
| OutputRate | Rychlost, s jakou má graf výstup AI Insights Nahlášeno každých 5 minut. |
| archon_allGraphsStarted | Odesílá se, když se spustí všechny grafy. |
| archon_configchange | Odesílá se, když se změní konfigurace grafu. |
| archon_graphCreationFailed | Odesílá se, když se nepovede spustit graf s nahlášeným řetězcem graphId . |
| archon_graphCreationSuccess | Odesílá se, když se graf s nahlášeným graphId spuštěním úspěšně spustí. |
| archon_graphCleanup | Odesílá se, když se graf s nahlášeným graphId čištěním vyčistí a ukončí. |
| archon_graphHeartbeat | Prezenční signál se odesílá každou minutu každého grafu dovednosti. |
| archon_apiKeyAuthFail | Odesílá se, když klíč prostředku Počítačové zpracování obrazu nedokáže ověřit kontejner po dobu delší než 24 hodin z následujících důvodů: mimo kvótu, neplatné, offline. |
| VideoIngesterHeartbeat | Odesílá se každou hodinu, která indikuje, že video se streamuje ze zdroje videa, a to s počtem chyb v této hodině. Oznamuje se pro každý graf. |
| VideoIngesterState | Sestavy se zastavily nebo se spustily pro streamování videa. Oznamuje se pro každý graf. |
Řešení potíží s IoT Edge zařízením
iotedgeNástroj příkazového řádku můžete použít ke kontrole stavu a protokolů spuštěných modulů. Například:
iotedge list: Oznamuje seznam spuštěných modulů. Chyby můžete dále kontrolovat pomocíiotedge logs edgeAgent. Pokud seiotedgezablokuje, můžete ho zkusit restartovat pomocí.iotedge restart edgeAgentiotedge logs <module-name>iotedge restart <module-name>restartování určitého modulu
Shromáždění souborů protokolu pomocí kontejneru diagnostiky
Prostorová analýza vygeneruje protokoly ladění Docker, které můžete použít k diagnostice běhových problémů, nebo zahrnout do lístků podpory. modul pro diagnostiku prostorových analýz je k dispozici na Microsoft Container Registry ke stažení. V souboru nasazení manifestu pro Azure Stack hraniční zařízení, stolní počítačnebo virtuální počítač Azure s grafickým procesorem vyhledejte modul diagnostiky .
V části "ENV" přidejte následující konfiguraci:
"diagnostics": {
"settings": {
"image": "mcr.microsoft.com/azure-cognitive-services/vision/spatial-analysis/diagnostics:1.0",
"createOptions": "{\"HostConfig\":{\"Mounts\":[{\"Target\":\"/usr/bin/docker\",\"Source\":\"/home/data/docker\",\"Type\":\"bind\"},{\"Target\":\"/var/run\",\"Source\":\"/run\",\"Type\":\"bind\"}],\"LogConfig\":{\"Config\":{\"max-size\":\"500m\"}}}}"
}
k optimalizaci protokolů odeslaných do vzdáleného koncového bodu, jako je například Azure Blob Storage, doporučujeme zachovat malou velikost souboru. Doporučené konfigurace protokolů Docker najdete v níže uvedeném příkladu.
{
"HostConfig": {
"LogConfig": {
"Config": {
"max-size": "500m",
"max-file": "1000"
}
}
}
}
Konfigurace úrovně protokolu
Konfigurace úrovně protokolu umožňuje řídit podrobnosti vygenerovaných protokolů. Podporované úrovně protokolu jsou: none , verbose , info , warning a error . Výchozí úroveň podrobností protokolu pro uzly i platformu je info .
Úrovně protokolu lze globálně upravit nastavením ARCHON_LOG_LEVEL proměnné prostředí na jednu z povolených hodnot.
Dá se taky nastavit prostřednictvím vlákna s dvojitým odkazem IoT Edge modulu buď globálně, pro všechny nasazené dovednosti, nebo pro každou konkrétní dovednost nastavením hodnot pro platformLogLevel a nodesLogLevel , jak je uvedeno níže.
{
"version": 1,
"properties": {
"desired": {
"globalSettings": {
"platformLogLevel": "verbose"
},
"graphs": {
"samplegraph": {
"nodesLogLevel": "verbose",
"platformLogLevel": "verbose"
}
}
}
}
}
Shromažďování protokolů
Poznámka
diagnosticsModul nemá vliv na obsah protokolování, pomáhá při shromažďování, filtrování a nahrávání stávajících protokolů.
Chcete-li použít tento modul, musíte mít rozhraní Docker API verze 1,40 nebo vyšší.
Ukázkový soubor manifestu nasazení pro Azure Stack hraniční zařízení, stolní počítačnebo virtuální počítač Azure pomocí GPU obsahuje modul s názvem diagnostics , který shromažďuje a odesílá protokoly. Tento modul je ve výchozím nastavení zakázán a měl by být povolený prostřednictvím konfigurace IoT Edge modulu, pokud potřebujete přístup k protokolům.
diagnosticsKolekce je na vyžádání a ovládána prostřednictvím IoT Edge přímé metody a může odesílat protokoly do Azure Blob Storage.
Konfigurace cílů nahrávání diagnostiky
Na portálu IoT Edge vyberte zařízení a pak modul diagnostiky . V ukázkovém souboru manifestu nasazení pro Azure Stack hraniční zařízení, stolní počítačenebo virtuální počítač Azure s grafickým procesorem vyhledejte oddíl proměnné prostředí pro diagnostiku s názvem env a přidejte následující informace:
konfigurace Upload pro Azure Blob Storage
- vytvořte si vlastní účet Azure Blob Storage, pokud jste to ještě neudělali.
- Získejte připojovací řetězec pro váš účet úložiště z Azure Portal. Bude se nacházet v přístupových klíčích.
- protokoly prostorové analýzy se automaticky nahrají do kontejneru Blob Storage s názvem rtcvlogs s následujícím formátem názvu souboru:
{CONTAINER_NAME}/{START_TIME}-{END_TIME}-{QUERY_TIME}.log.
"env":{
"IOTEDGE_WORKLOADURI":"fd://iotedge.socket",
"AZURE_STORAGE_CONNECTION_STRING":"XXXXXX", //from the Azure Blob Storage account
"ARCHON_LOG_LEVEL":"info"
}
Nahrávají se protokoly prostorových analýz.
Protokoly se nahrávají na vyžádání pomocí getRTCVLogs metody IoT Edge v diagnostics modulu.
- Přejít na stránku IoT Hub portálu, vyberte hraniční zařízení a pak vyberte zařízení a modul diagnostiky.
- Přejděte na stránku podrobností modulu a klikněte na kartu Přímá metoda .
getRTCVLogsV datové části zadejte název metody a řetězec formátu JSON. Můžete zadat{}, což je prázdná datová část.- Nastavte časový limit připojení a metody a klikněte na vyvolat metodu.
- Vyberte cílový kontejner a vytvořte řetězec JSON datové části pomocí parametrů popsaných v části syntaxe protokolování . Pro provedení žádosti klikněte na vyvolat metodu .
Poznámka
Vyvoláním getRTCVLogs metody s prázdnou datovou částí se vrátí seznam všech kontejnerů nasazených v zařízení. Název metody rozlišuje velká a malá písmena. Pokud je zadán nesprávný název metody, zobrazí se chyba 501.

Syntaxe protokolování
Následující tabulka obsahuje seznam parametrů, které můžete použít při dotazování protokolů.
| Klíčové slovo | Description | Výchozí hodnota |
|---|---|---|
| StartTime | Čas spuštění požadovaných protokolů v milisekundách UTC | -1, začátek modulu runtime kontejneru. Když [-1.-1] se použije jako časový rozsah, rozhraní API vrátí protokoly za poslední hodinu. |
| EndTime | Požadovaný čas ukončení protokolů v milisekundách UTC. | -1, aktuální čas. Když [-1.-1] se použije časový rozsah, rozhraní API vrátí protokoly za poslední hodinu. |
| ID kontejneru | Cílový kontejner pro načítání protokolů | null, pokud není k dispozici žádné ID kontejneru. Rozhraní API vrátí všechny dostupné informace o kontejnerech s ID. |
| DoPost | Proveďte operaci odeslání. Pokud je tato hodnota nastavena na false , provede požadovanou operaci a vrátí velikost nahrávání bez provedení odeslání. Když se nastaví na true , zahájí asynchronní nahrávání vybraných protokolů. |
false, Nenahrávat. |
| Omezení | Určete, kolik řádků protokolů se má nahrát na dávku. | 1000, Použijte tento parametr pro úpravu rychlosti post. |
| Filtry | Filtruje protokoly, které se mají nahrát. | null, filtry je možné zadat jako páry klíč-hodnota na základě struktury protokolů prostorové analýzy: [UTC, LocalTime, LOGLEVEL,PID, CLASS, DATA] . Příklad: {"TimeFilter":[-1,1573255761112]}, {"TimeFilter":[-1,1573255761112]}, {"CLASS":["myNode"] |
V následující tabulce jsou uvedeny atributy v odpovědi na dotaz.
| Klíčové slovo | Description |
|---|---|
| DoPost | Buď hodnotu true , nebo false. Určuje, jestli jsou protokoly nahrané nebo ne. Pokud se rozhodnete Nenahrávat protokoly, rozhraní API vrátí informace *synchronně _. Pokud se rozhodnete odeslat protokoly, rozhraní API vrátí 200, pokud je žádost platná, a spustí nahrávání protokolů _ asynchronně *. |
| TimeFilter | Filtr času aplikovaný na protokoly. |
| ValueFilters | Filtry klíčových slov použité pro protokoly. |
| Časové razítko | Čas spuštění metody |
| ID kontejneru | ID cílového kontejneru |
| FetchCounter | Celkový počet řádků protokolu |
| FetchSizeInByte | Celková velikost dat protokolu v bajtech |
| MatchCounter | Platný počet řádků protokolu. |
| MatchSizeInByte | Platné množství dat protokolu v bajtech. |
| FilterCount | Celkový počet řádků protokolu po použití filtru |
| FilterSizeInByte | Celková velikost dat protokolu v bajtech po použití filtru |
| FetchLogsDurationInMiliSec | Doba trvání operace načtení |
| PaseLogsDurationInMiliSec | Doba trvání operace filtrování |
| PostLogsDurationInMiliSec | Doba trvání operace post |
Příklad požadavku
{
"StartTime": -1,
"EndTime": -1,
"ContainerId": "5fa17e4d8056e8d16a5a998318716a77becc01b36fde25b3de9fde98a64bf29b",
"DoPost": false,
"Filters": null
}
Příklad odpovědi
{
"status": 200,
"payload": {
"DoPost": false,
"TimeFilter": [-1, 1581310339411],
"ValueFilters": {},
"Metas": {
"TimeStamp": "2020-02-10T04:52:19.4365389+00:00",
"ContainerId": "5fa17e4d8056e8d16a5a998318716a77becc01b36fde25b3de9fde98a64bf29b",
"FetchCounter": 61,
"FetchSizeInByte": 20470,
"MatchCounter": 61,
"MatchSizeInByte": 20470,
"FilterCount": 61,
"FilterSizeInByte": 20470,
"FetchLogsDurationInMiliSec": 0,
"PaseLogsDurationInMiliSec": 0,
"PostLogsDurationInMiliSec": 0
}
}
}
Zkontrolujte řádky, časy a velikosti protokolu načtení a v případě, že tato nastavení vypadají dobře, nahraďte DoPost do true a tím, že protokoly budou nabízeny stejným filtrům do cílových umístění.
při řešení potíží můžete exportovat protokoly z Azure Blob Storage.
Řešení potíží s Azure Stack hraničním zařízením
Následující část je k dispozici pro nápovědu k ladění a ověřování stavu zařízení Azure Stack Edge.
Přístup ke koncovému bodu rozhraní Kubernetes API.
- V místním uživatelském rozhraní zařízení přejdete na stránku zařízení .
- V části koncové body zařízení zkopírujte koncový bod služby API Kubernetes. Tento koncový bod je řetězec v následujícím formátu:
https://compute..[device-IP-address]. - Uložte řetězec koncového bodu. Později to budete používat při konfiguraci
kubectlpro přístup ke clusteru Kubernetes.
Připojení do rozhraní PowerShellu
Vzdáleně se připojte z Windows klienta. Po vytvoření clusteru Kubernetes můžete spravovat aplikace prostřednictvím tohoto clusteru. Budete se muset připojit k rozhraní PowerShellu zařízení. Postupy vzdáleného připojení k zařízení se mohou lišit v závislosti na operačním systému klienta. Následující kroky jsou pro klienta Windows powershellu.
Tip
- Než začnete, ujistěte se, že Windows klient používá Windows PowerShell 5.0 nebo novější.
- PowerShell je k dispozici také v Linuxu.
Spusťte Windows PowerShell jako správce.
- Ujistěte se, Windows ve vašem klientovi spuštěná služba Vzdálená správa. Do příkazového řádku zadejte
winrm quickconfig.
- Ujistěte se, Windows ve vašem klientovi spuštěná služba Vzdálená správa. Do příkazového řádku zadejte
Přiřaďte proměnné PRO IP adresu zařízení. Například,
$ip = "<device-ip-address>".Pomocí následujícího příkazu přidejte IP adresu vašeho zařízení do seznamu důvěryhodných hostitelů klienta.
Set-Item WSMan:\localhost\Client\TrustedHosts $ip -Concatenate -ForceSpusťte Windows PowerShell na zařízení.
Enter-PSSession -ComputerName $ip -Credential $ip\EdgeUser -ConfigurationName MinishellPo zobrazení výzvy zadejte heslo. Použijte stejné heslo, které se používá pro přihlášení k místnímu webovému rozhraní. Výchozí heslo místního webového rozhraní je
Password1.
Přístup ke clusteru Kubernetes
Po vytvoření clusteru Kubernetes můžete pro přístup ke clusteru použít nástroj kubectl příkazového řádku.
Vytvořte nový obor názvů.
New-HcsKubernetesNamespace -NamespaceVytvořte uživatele a získejte konfigurační soubor. Tento příkaz zobrazí informace o konfiguraci clusteru Kubernetes. Zkopírujte tyto informace a uložte je do souboru s názvem config. Neulozte soubor s příponou souboru.
New-HcsKubernetesUser -UserNamePřidejte konfigurační soubor do složky .kube ve vašem profilu uživatele na místním počítači.
Přidružte obor názvů k vytvořenému uživateli.
Grant-HcsKubernetesNamespaceAccess -Namespace -UserNameNainstalujte
kubectldo Windows klienta pomocí následujícího příkazu:curl https://storage.googleapis.com/kubernetesrelease/release/v1.15.2/bin/windows/amd64/kubectl.exe -O kubectl.exePřidejte položku DNS do souboru hostitelů ve vašem systému.
- Spusťte Poznámkový blok jako správce a otevřete soubor hostitelů umístěný v
C:\windows\system32\drivers\etc\hosts. - V souboru hostitelů vytvořte záznam s IP adresou zařízení a doménou DNS, kterou jste získali ze stránky Zařízení v místním uživatelském rozhraní. Koncový bod, který byste měli použít, bude vypadat podobně jako:
https://compute.asedevice.microsoftdatabox.com/10.100.10.10.
- Spusťte Poznámkový blok jako správce a otevřete soubor hostitelů umístěný v
Ověřte, že se můžete připojit k podům Kubernetes.
kubectl get pods -n "iotedge"
Pokud chcete získat protokoly kontejneru, spusťte následující příkaz:
kubectl logs <pod-name> -n <namespace> --all-containers
Užitečné příkazy
| Příkaz | Popis |
|---|---|
Get-HcsKubernetesUserConfig -AseUser |
Vygeneruje konfigurační soubor Kubernetes. Při použití příkazu zkopírujte informace do souboru s názvem config. Neulozte soubor s příponou . |
Get-HcsApplianceInfo |
Vrátí informace o vašem zařízení. |
Enable-HcsSupportAccess |
Vygeneruje přihlašovací údaje pro přístup ke spuštění relace podpory. |
Vytvoření lístku podpory pro prostorovou analýzu
Pokud potřebujete další podporu při hledání řešení problému, který máte s kontejnerem prostorové analýzy, vyplňte a odešlete lístek podpory podle těchto kroků. Náš tým se k vám vrátí s dalšími pokyny.
Vyplňte základy.
Vytvořte nový lístek podpory na stránce Nová žádost o podporu. Podle pokynů vyplňte následující parametry:

- Jako Typ problému nastavte
Technical. - Vyberte předplatné, které využíváte k nasazení kontejneru prostorové analýzy.
- Vyberte
My servicesa vyberte jakoCognitive Servicesslužbu. - Vyberte prostředek, který využíváte k nasazení kontejneru prostorové analýzy.
- Napište stručný popis, který podrobně popisuje váš problém.
- Jako
Spatial Analysistyp problému vyberte . - V rozevíracím seznamu vyberte odpovídající podtyp.
- Vyberte Další: Řešení a přejděte na další stránku.
Doporučená řešení
Další fáze nabídne doporučená řešení pro typ problému, který jste vybrali. Tato řešení vyřeší nejběžnější problémy, ale pokud to pro vaše řešení není užitečné, vyberte Další: Podrobnosti a přejděte k dalšímu kroku.
Podrobnosti
Na této stránce přidejte další podrobnosti o vašem problému. Nezapomeňte zahrnovat co nejvíce podrobností, protože to našim technikům pomůže problém lépe zúžit. Zahrňte upřednostňovaný způsob kontaktu a závažnost problému, abychom vás mohli odpovídajícím způsobem kontaktovat, a výběrem možnosti Další: Zkontrolovat a vytvořit přejděte k dalšímu kroku.
Zkontrolovat a vytvořit
Zkontrolujte podrobnosti žádosti o podporu a ujistěte se, že je vše přesné a efektivně reprezentuje problém. Až budete připravení, vyberte Vytvořit a odešlete lístek našemu týmu. Jakmile obdržíte lístek, obdržíte e-mailové potvrzení a náš tým se vám co nejdříve vrátí. Stav lístku můžete zobrazit v Azure Portal.