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.

  1. 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.

  2. V terminálu pro spuštění xhost +

  3. Aktualizujte manifest nasazení v spaceanalytics modulu s hodnotou DISPLAY proměnné prostředí. Jeho hodnotu můžete najít spuštěním echo $DISPLAY v terminálu na hostitelském počítači.

    "env": {        
        "DISPLAY": {
            "value": ":11"
            }
    }
    
  4. 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řidejte VISUALIZER_NODE_CONFIG ji 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}]}"
        }
    }
    
  5. Znovu nasaďte a zobrazí se okno Vizualizér v hostitelském počítači.

  6. Po dokončení nasazení bude pravděpodobně nutné zkopírovat .Xauthority soubor z hostitelského počítače do kontejneru a restartovat jej. V následující ukázce peopleanalytics je 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í

  1. Metriky prostorové analýzy
  2. Metriky disku
  3. Metriky procesoru
  4. Metriky Docker
  5. Metriky GPU

Činnosti

  1. 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.

Sestava telemetrie Azure Monitor

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 se iotedge zablokuje, můžete ho zkusit restartovat pomocí. iotedge restart edgeAgent
  • iotedge 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

  1. vytvořte si vlastní účet Azure Blob Storage, pokud jste to ještě neudělali.
  2. 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.
  3. 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.

  1. Přejít na stránku IoT Hub portálu, vyberte hraniční zařízení a pak vyberte zařízení a modul diagnostiky.
  2. Přejděte na stránku podrobností modulu a klikněte na kartu Přímá metoda .
  3. getRTCVLogsV datové části zadejte název metody a řetězec formátu JSON. Můžete zadat {} , což je prázdná datová část.
  4. Nastavte časový limit připojení a metody a klikněte na vyvolat metodu.
  5. 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.

Vyvolání metody getRTCVLogs getRTCVLogs Direct – stránka metody

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.

  1. V místním uživatelském rozhraní zařízení přejdete na stránku zařízení .
  2. 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] .
  3. Uložte řetězec koncového bodu. Později to budete používat při konfiguraci kubectl pro 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.
  1. Spusťte Windows PowerShell jako správce.

    1. 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 .
  2. Přiřaďte proměnné PRO IP adresu zařízení. Například, $ip = "<device-ip-address>".

  3. 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 -Force
    
  4. Spusťte Windows PowerShell na zařízení.

    Enter-PSSession -ComputerName $ip -Credential $ip\EdgeUser -ConfigurationName Minishell
    
  5. Po 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.

  1. Vytvořte nový obor názvů.

    New-HcsKubernetesNamespace -Namespace
    
  2. Vytvoř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 -UserName
    
  3. Přidejte konfigurační soubor do složky .kube ve vašem profilu uživatele na místním počítači.

  4. Přidružte obor názvů k vytvořenému uživateli.

    Grant-HcsKubernetesNamespaceAccess -Namespace -UserName
    
  5. Nainstalujte kubectl do 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.exe
    
  6. Přidejte položku DNS do souboru hostitelů ve vašem systému.

    1. Spusťte Poznámkový blok jako správce a otevřete soubor hostitelů umístěný v C:\windows\system32\drivers\etc\hosts .
    2. 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 .
  7. 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:

Základy podpory

  1. Jako Typ problému nastavte Technical .
  2. Vyberte předplatné, které využíváte k nasazení kontejneru prostorové analýzy.
  3. Vyberte My services a vyberte jako Cognitive Services službu.
  4. Vyberte prostředek, který využíváte k nasazení kontejneru prostorové analýzy.
  5. Napište stručný popis, který podrobně popisuje váš problém.
  6. Jako Spatial Analysis typ problému vyberte .
  7. V rozevíracím seznamu vyberte odpovídající podtyp.
  8. Vyberte Další: Řešení a přejděte na další stránku.

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.

Další kroky