Telemetrie a řešení potíží

Prostorová analýza obsahuje sadu funkcí pro monitorování stavu systému a pomoc s diagnostikou problémů.

Povolení vizualizací

Pokud chcete povolit vizualizaci událostí přehledu AI ve videu, musíte použít .debug verzi operace Prostorové analýzy na stolním počítači nebo virtuálním počítači Azure. Vizualizace není na zařízeních Azure Stack Edge možná. K dispozici jsou čtyři operace ladění.

Pokud je vaše zařízení místním stolním počítačem nebo virtuálním počítačem Azure GPU (s povolenou vzdálenou plochou), můžete přepnout na .debug verzi jakékoli operace a vizualizovat výstup.

  1. Otevřete plochu místně nebo pomocí klienta vzdálené plochy na hostitelském počítači se spuštěnou službou Spatial Analysis.

  2. V terminálu spusťte xhost +

  3. Aktualizujte manifest nasazení v spaceanalytics modulu hodnotou DISPLAY proměnné prostředí. Jeho hodnotu najdete 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.vision.spatialanalysis-personcrossingpolygon.debug. K povolení okna vizualizéru se vyžaduje nový parametr VISUALIZER_NODE_CONFIG . Všechny operace jsou k dispozici ve variantě ladění. Při použití sdílených uzlů použijte operaci cognitiveservices.vision.spatialanalysis.debug a přidejte VISUALIZER_NODE_CONFIG 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. Opětovné nasazení a v hostitelském počítači se zobrazí okno vizualizéru.

  6. Po dokončení nasazení možná budete muset zkopírovat .Xauthority soubor z hostitelského počítače do kontejneru a restartovat ho. V následující peopleanalytics ukázce je název kontejneru na 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 opensourcová image, která funguje s prostorovou analýzou a je k dispozici ve službě Microsoft Container Registry. Vezme následující vstupy a odešle je do služby Azure Monitor. Modul Telegraf lze sestavit s požadovanými vlastními vstupy a výstupy. Konfigurace modulu Telegraf v Spatial Analysis je součástí manifestu nasazení (propojeného výše). Tento modul je volitelný a pokud ho nepotřebujete, můžete ho z manifestu odebrat.

Vstupy:

  • Metriky prostorové analýzy
  • Metriky disku
  • Metriky procesoru
  • Metriky Dockeru
  • Metriky GPU

Výstupy:

  • Azure Monitor

Zadaný modul Telegrafu pro prostorovou analýzu publikuje všechna telemetrická data vygenerovaná kontejnerem Spatial Analysis do služby Azure Monitor. Informace o přidání služby Azure Monitor do vašeho předplatného najdete ve službě Azure Monitor .

Po nastavení služby Azure Monitor budete muset vytvořit přihlašovací údaje, které modulu umožní odesílat telemetrii. Pomocí webu Azure Portal můžete vytvořit nový instanční objekt nebo ho vytvořit pomocí následujícího příkazu Azure CLI.

Poznámka:

Tento příkaz vyžaduje, abyste k předplatnému měli 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 zařízení Azure Stack Edge, stolní počítač nebo virtuální počítač Azure s GPU vyhledejte modul Telegraf a nahraďte následující hodnoty informacemi instančního objektu z předchozího kroku a znovu nasaďte.

"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 se k ohlášeným metrikám dostanete prostřednictvím služby Azure Monitor nebo výběrem možnosti Monitorování ve službě IoT Hub na webu Azure Portal.

Azure Monitor telemetry report

Události stavu systému

Název události Popis
archon_exit Odesláno, když uživatel změní stav modulu Spatial Analysis z běhu na zastavený.
archon_error Odesláno, když dojde k chybovému ukončení některého z procesů uvnitř kontejneru. Jedná se o kritickou chybu.
InputRate Rychlost, s jakou graf zpracovává vstup videa. Hlášeno každých pět minut.
Výstupní rychlost Rychlost, s jakou graf vypíše přehledy umělé inteligence. Hlášeno každých pět minut.
archon_allGraphsStarted Odesláno po dokončení spuštění všech grafů.
archon_configchange Odesláno při změně konfigurace grafu.
archon_graphCreationFailed Odesláno, když se graf s nahlášeným oznámením graphId nespustí.
archon_graphCreationSuccess Odesláno, když se graf se nahlášeným graphId spuštěním úspěšně spustí.
archon_graphCleanup Odesláno, když se graf s nahlášeným graphId vyčištěním a ukončením ukončí.
archon_graphHeartbeat Prezenčních signálů se odeslal každou minutu pro každý graf dovednosti.
archon_apiKeyAuthFail Odesláno, když se klíč prostředku Vision nepodaří ověřit kontejner po dobu delší než 24 hodin, a to z následujících důvodů: Mimo kvótu, Neplatné, Offline.
VideoIngesterHeartbeat Odesláno každou hodinu, aby bylo uvedeno, že video se streamuje ze zdroje videa s počtem chyb v dané hodině. Hlášeno pro každý graf.
VideoIngesterState Sestavy zastavené nebo spuštěné pro streamování videa Hlášeno pro každý graf.

Řešení potíží se zařízením IoT Edge

Pomocí nástroje příkazového řádku můžete iotedge zkontrolovat stav a protokoly spuštěných modulů. Příklad:

  • iotedge list: Sestavuje seznam spuštěných modulů. Můžete dále zkontrolovat chyby s iotedge logs edgeAgent. Pokud iotedge se zasekne, můžete zkusit ho restartovat pomocí iotedge restart edgeAgent
  • iotedge logs <module-name>
  • iotedge restart <module-name> restartování konkrétního modulu

Shromažďování souborů protokolu pomocí diagnostického kontejneru

Spatial Analysis generuje protokoly ladění Dockeru, které můžete použít k diagnostice problémů s modulem runtime nebo zahrnutí do lístků podpory. Modul diagnostiky prostorové analýzy je k dispozici ve službě Microsoft Container Registry ke stažení. V souboru nasazení manifestu pro vaše zařízení Azure Stack Edge, stolní počítač nebo virtuální počítač Azure s GPU vyhledejte diagnostický modul.

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\"}}}}"
  }

Pokud chcete optimalizovat protokoly nahrané do vzdáleného koncového bodu, jako je Azure Blob Storage, doporučujeme zachovat malou velikost souboru. V následujícím příkladu najdete doporučenou konfiguraci protokolů Dockeru.

{
    "HostConfig": {
        "LogConfig": {
            "Config": {
                "max-size": "500m",
                "max-file": "1000"
            }
        }
    }
}

Konfigurace úrovně protokolu

Konfigurace na úrovni protokolu umožňuje řídit úroveň podrobností vygenerovaných protokolů. Mezi podporované úrovně protokolu patří: none, verbose, info, warninga error. Výchozí úroveň podrobného protokolování pro uzly i platformu je info.

Úrovně protokolů je možné globálně upravit nastavením ARCHON_LOG_LEVEL proměnné prostředí na jednu z povolených hodnot. Dá se také nastavit prostřednictvím globálního dokumentu dvojčete modulu IoT Edge pro všechny nasazené dovednosti nebo pro každou konkrétní dovednost nastavením hodnot a platformLogLevelnodesLogLevel jak je znázorněno níže.

{
    "version": 1,
    "properties": {
        "desired": {
            "globalSettings": {
                "platformLogLevel": "verbose"
            },
            "graphs": {
                "samplegraph": {
                    "nodesLogLevel": "verbose",
                    "platformLogLevel": "verbose"
                }
            }
        }
    }
}

Shromažďování protokolů

Poznámka:

Tento diagnostics modul nemá vliv na obsah protokolování, pomáhá pouze při shromažďování, filtrování a nahrávání existujících protokolů. Abyste mohli tento modul používat, musíte mít rozhraní API Dockeru verze 1.40 nebo vyšší.

Ukázkový soubor manifestu nasazení pro zařízení Azure Stack Edge, stolní počítač nebo virtuální počítač Azure s GPU obsahuje modul s názvem, diagnostics který shromažďuje a nahrává protokoly. Tento modul je ve výchozím nastavení zakázaný a měl by být povolený prostřednictvím konfigurace modulu IoT Edge, pokud potřebujete získat přístup k protokolům.

Kolekce diagnostics je na vyžádání řízená přímou metodou IoT Edge a může odesílat protokoly do služby Azure Blob Storage.

Konfigurace cílů nahrávání diagnostiky

Na portálu IoT Edge vyberte své zařízení a pak diagnostický modul. V ukázkovém souboru manifestu nasazení pro vaše zařízení Azure Stack Edge, stolní počítače nebo virtuální počítač Azure s GPU vyhledejte část Proměnné prostředí pro diagnostiku s názvem enva přidejte následující informace:

Konfigurace nahrávání do služby Azure Blob Storage

  1. Pokud jste to ještě neudělali, vytvořte si vlastní účet služby Azure Blob Storage.
  2. Na webu Azure Portal získejte řetězec Připojení ion pro váš účet úložiště. Nachází se 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ání protokolů prostorové analýzy

Protokoly se nahrají na vyžádání pomocí getRTCVLogs metody IoT Edge v diagnostics modulu.

  1. Přejděte na stránku portálu IoT Hub, vyberte Hraniční zařízení a pak vyberte své zařízení a diagnostický modul.
  2. Přejděte na stránku podrobností modulu a vyberte kartu přímé metody .
  3. Do datové části zadejte getRTCVLogs název metody a řetězec formátu JSON. Můžete zadat {}, což je prázdná datová část.
  4. Nastavte časové limity připojení a metody a vyberte Vyvolat metodu.
  5. Vyberte cílový kontejner a pomocí parametrů popsaných v části Syntaxe protokolování sestavte řetězec JSON datové části. Vyberte Vyvolat metodu pro provedení požadavku.

Poznámka:

Vyvolání getRTCVLogs metody s prázdnou datovou částí vrátí seznam všech kontejnerů nasazených v zařízení. V názvu metody se rozlišují malá a velká písmena. Pokud je zadán nesprávný název metody, zobrazí se chyba 501.

Invoking the getRTCVLogs method getRTCVLogs Direct method page

Syntaxe protokolování

Následující tabulka uvádí parametry, které můžete použít při dotazování protokolů.

Klíčové slovo Popis Výchozí hodnota
Počáteční čas Požadovaný čas spuštění protokolů v milisekundách UTC. -1, spuštění modulu runtime kontejneru. Pokud [-1.-1] se použije jako časový rozsah, rozhraní API vrátí protokoly z poslední jedné hodiny.
EndTime Koncový čas požadovaných 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 neexistuje žádné ID kontejneru. Rozhraní API vrátí všechny dostupné informace o kontejnerech s ID.
DoPost Proveďte operaci nahrávání. Pokud je tato možnost nastavená na false, provede požadovanou operaci a vrátí velikost nahrávání bez provedení nahrávání. Pokud je tato možnost nastavená, truezahájí asynchronní nahrávání vybraných protokolů. false, neodesílejte.
Omezení Určení počtu řádků protokolů k nahrání na dávku 1000, Tento parametr použijte k úpravě rychlosti post.
Filtry Filtruje protokoly, které se mají nahrát. null, filtry lze 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"]

Následující tabulka uvádí atributy v odpovědi dotazu.

Klíčové slovo Popis
DoPost Buď pravda , nebo nepravda. Označuje, jestli se protokoly nahrály nebo ne. Pokud se rozhodnete nenahrávat protokoly, rozhraní API vrátí informace synchronně. Když se rozhodnete nahrát protokoly, rozhraní API vrátí hodnotu 200, pokud je požadavek platný, a začne protokoly nahrávat asynchronně.
TimeFilter Časový filtr použitý na protokoly
Filtry hodnot Filtry klíčových slov použitých v protokolech
Časové razítko Čas spuštění metody
ID kontejneru ID cílového kontejneru.
FetchCounter Celkový počet řádků protokolu
FetchSizeInByte Celkové množství 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é množství dat protokolu v bajtech po použití filtru
FetchLogsDurationInMiliSec Doba trvání operace načtení
PaseLogsDurationInMiliSec Doba trvání operace filtru.
PostLogsDurationInMiliSec Doba trvání operace po dokončení.

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, pokud tato nastavení vypadají dobře, nahraďte DoPosttrue a tím nasdílíte protokoly stejnými filtry do cílů.

Při řešení potíží můžete exportovat protokoly ze služby Azure Blob Storage.

Řešení potíží se zařízením Azure Stack Edge

Následující část obsahuje pomoc s laděním a ověřením stavu zařízení Azure Stack Edge.

Přejděte ke koncovému bodu rozhraní API Kubernetes. 

  1. V místním uživatelském rozhraní vašeho zařízení přejděte na stránku Zařízení .
  2. V části Koncové body zařízení zkopírujte koncový bod služby rozhraní 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. Použijete to později při konfiguraci kubectl pro přístup ke clusteru Kubernetes.

Připojení do rozhraní PowerShellu

Vzdáleně se připojte z klienta windows. Po vytvoření clusteru Kubernetes můžete spravovat aplikace prostřednictvím tohoto clusteru. Budete se muset připojit k rozhraní PowerShellu zařízení. V závislosti na operačním systému klienta se můžou postupy vzdáleného připojení k zařízení lišit. Následující kroky jsou určené pro klienta s Windows, na kterém běží PowerShell.

Tip

  • Než začnete, ujistěte se, že váš klient Windows používá Windows PowerShell 5.0 nebo novější.
  • PowerShell je k dispozici také v Linuxu.
  1. Spusťte relaci Windows PowerShellu jako Správa istrator.

    Ujistěte se, že je ve vašem klientovi spuštěná služba Vzdálená správa systému Windows. Do příkazového řádku zadejte winrm quickconfig.

  2. Přiřaďte proměnnou 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. Na zařízení spusťte relaci Windows PowerShellu.

    Enter-PSSession -ComputerName $ip -Credential $ip\EdgeUser -ConfigurationName Minishell
    
  5. Po zobrazení výzvy zadejte heslo. Použijte stejné heslo, které se používá k 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 k přístupu ke clusteru použít kubectl nástroj 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 vypíše informace o konfiguraci clusteru Kubernetes. Zkopírujte tyto informace a uložte je do souboru s názvem config. Neuložte soubor jako příponu.

    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 uživateli, který jste vytvořili.

    Grant-HcsKubernetesNamespaceAccess -Namespace -UserName
    
  5. Nainstalujte kubectl na klienta Windows 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ý na adrese C:\windows\system32\drivers\etc\hosts.
    2. V souboru hostitelů vytvořte položku 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 nějak takto: 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. Neuložte soubor s příponou souboru.
Get-HcsApplianceInfo Vrátí informace o vašem zařízení.
Enable-HcsSupportAccess Vygeneruje přihlašovací údaje pro přístup, aby se spustila relace podpory.

Postup vytvoření lístku podpory pro Spatial Analysis

Pokud potřebujete další podporu při hledání řešení problému, který máte s kontejnerem Spatial Analysis, vyplňte a odešlete lístek podpory podle těchto kroků. Náš tým se vám vrátí s dalšími pokyny.

Vyplnění základních informací

Na stránce Nová žádost o podporu vytvořte nový lístek podpory. Postupujte podle pokynů a vyplňte následující parametry:

Support basics

  1. Nastavte typ problému na Technicalhodnotu .
  2. Vyberte předplatné, které využíváte k nasazení kontejneru Spatial Analysis.
  3. Vyberte My services a vyberte Azure AI services jako službu.
  4. Vyberte prostředek, který využíváte k nasazení kontejneru Spatial Analysis.
  5. Napište stručný popis problému, kterému čelíte.
  6. Vyberte Spatial Analysis typ problému.
  7. V rozevíracím seznamu vyberte příslušný podtyp.
  8. Vyberte Další: Řešení , která se mají přesunout na další stránku.

Další fáze nabídne doporučená řešení pro vybraný typ problému. Tato řešení vyřeší nejběžnější problémy, ale pokud není pro vaše řešení užitečné, vyberte Další: Podrobnosti a přejděte k dalšímu kroku.

Detaily

Na této stránce přidejte další podrobnosti o problému, ke kterému došlo. Nezapomeňte uvést co nejvíce podrobností, protože to našim technikům pomůže lépe zúžit problém. Uveďte upřednostňovanou metodu kontaktu a závažnost problému, abychom vás mohli odpovídajícím způsobem kontaktovat, a vyberte Další: Zkontrolovat a vytvořit a přejít k dalšímu kroku.

Podokno Zkontrolovat a vytvořit

Projděte si podrobnosti vaší žádosti o podporu a ujistěte se, že je všechno přesné a představuje problém efektivně. Až budete připraveni, vyberte Vytvořit a odešlete lístek našemu týmu. Jakmile dostanete lístek, dostanete e-mailové potvrzení a náš tým vám pomůže co nejdříve se k vám vrátit. Stav lístku můžete zobrazit na webu Azure Portal.

Další kroky