Telemetri och felsökning
Viktigt!
Den 30 mars 2025 dras Azure AI Vision Spatial Analysis tillbaka. Övergå till Azure AI Video Indexer eller en annan lösning med öppen källkod före det angivna datumet. Vi rekommenderar att du byter tidigare för att få de rikare fördelarna med Azure AI Video Indexer. Förutom de välbekanta funktioner som du använder, här är en snabb jämförelse mellan Azure AI Vision Spatial Analysis och Azure AI Video Indexer.
Funktion | Rumslig analys i Azure AI Vision | Azure AI Video Indexer |
---|---|---|
Edge-stöd | Ja | Ja |
Objektidentifiering | Person- och fordonsidentifiering | Identifierar över 1 000 objekt |
Ljud-/talbearbetning | Stöds inte | Stöds (inkluderar talranskription, översättning och sammanfattning) Stöds >(inkluderar talranskription och attitydanalys) |
Händelseidentifiering och spårning | Stöds (spåra personer och fordon, händelseidentifiering) | Stöds inte på Edge ännu. Stöds delvis i molnet. |
Stöd för Azure Arc | Stöds inte | Internt stöd |
Fokusområde | Visuell analys med specialiserad spårning | Omfattande analys av både ljud- och visuellt innehåll |
Från och med nu fram till den 30 mars 2025 kan du fortsätta att använda Azure AI Vision Spatial Analysis eller övergå till Azure AI Video Indexer före det angivna datumet. Efter den 30 mars 2025 stöds inte längre containern Spatial Analysis och kommer att sluta bearbeta nya strömmar.
Rumslig analys innehåller en uppsättning funktioner för att övervaka systemets hälsa och hjälpa till med att diagnostisera problem.
Aktivera visualiseringar
Om du vill aktivera en visualisering av AI Insight-händelser i en videoram måste du använda .debug
versionen av en rumslig analysåtgärd på en stationär dator eller en virtuell Azure-dator. Visualiseringen är inte möjlig på Azure Stack Edge-enheter. Det finns fyra tillgängliga felsökningsåtgärder.
Om enheten är en lokal dator eller en virtuell Azure GPU-dator (med fjärrskrivbord aktiverat) kan du växla till .debug
version av alla åtgärder och visualisera utdata.
Öppna skrivbordet antingen lokalt eller med hjälp av en fjärrskrivbordsklient på värddatorn som kör Spatial Analysis.
I terminalkörningen
xhost +
Uppdatera distributionsmanifestet under modulen
spaceanalytics
med värdet förDISPLAY
miljövariabeln. Du kan hitta dess värde genom att köraecho $DISPLAY
det i terminalen på värddatorn."env": { "DISPLAY": { "value": ":11" } }
Uppdatera diagrammet i distributionsmanifestet som du vill köra i felsökningsläge. I exemplet nedan uppdaterar vi operationId till cognitiveservices.vision.spatialanalysis-personcrossingpolygon.debug. En ny parameter
VISUALIZER_NODE_CONFIG
krävs för att aktivera visualiserarfönstret. Alla åtgärder är tillgängliga i felsökningssmaken. När du använder delade noder använder du åtgärden cognitiveservices.vision.spatialanalysis.debug och lägger tillVISUALIZER_NODE_CONFIG
i instansparametrarna."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}]}" } }
Omdistribuera så visas visualiseringsfönstret på värddatorn
När distributionen har slutförts kan du behöva kopiera
.Xauthority
filen från värddatorn till containern och starta om den. I exemplet nedanpeopleanalytics
är namnet på containern på värddatorn.sudo docker cp $XAUTHORITY peopleanalytics:/root/.Xauthority sudo docker stop peopleanalytics sudo docker start peopleanalytics xhost +
Samla in telemetri för systemhälsa
Telegraf är en öppen källkod avbildning som fungerar med spatial analys och är tillgänglig i Microsoft Container Registry. Den tar följande indata och skickar dem till Azure Monitor. Telegraf-modulen kan byggas med önskade anpassade indata och utdata. Konfigurationen av Telegraf-modulen i Spatial Analysis är en del av distributionsmanifestet (länkat ovan). Den här modulen är valfri och kan tas bort från manifestet om du inte behöver den.
Ingångar:
- Mått för rumslig analys
- Diskmått
- CPU-mått
- Docker-mått
- GPU-mått
Utgångar:
- Azure Monitor
Den tillhandahållna telegrafmodulen spatial analys publicerar alla telemetridata som genereras av containern Spatial Analysis till Azure Monitor. Mer information om hur du lägger till Azure Monitor i din prenumeration finns i Azure Monitor .
När du har konfigurerat Azure Monitor måste du skapa autentiseringsuppgifter som gör att modulen kan skicka telemetri. Du kan använda Azure Portal för att skapa ett nytt huvudnamn för tjänsten eller använda Azure CLI-kommandot nedan för att skapa ett.
Kommentar
Det här kommandot kräver att du har ägarbehörighet för prenumerationen.
# 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>"
I distributionsmanifestet för din Azure Stack Edge-enhet, stationära dator eller virtuella Azure-dator med GPU letar du efter Telegraf-modulen och ersätter följande värden med informationen om tjänstens huvudnamn från föregående steg och distribuerar om.
"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}"
},
...
När Telegraf-modulen har distribuerats kan de rapporterade måtten nås antingen via Azure Monitor-tjänsten eller genom att välja Övervakning i IoT Hub på Azure Portal.
Systemhälsohändelser
Händelsenamn | beskrivning |
---|---|
archon_exit | Skickas när en användare ändrar modulstatus för rumslig analys från att köras till stoppad. |
archon_error | Skickas när någon av processerna i containern kraschar. Det här är ett kritiskt fel. |
InputRate | Den hastighet med vilken grafen bearbetar videoindata. Rapporterad var femte minut. |
Utdatahastighet | Den hastighet med vilken diagrammet matar ut AI-insikter. Rapporterad var femte minut. |
archon_allGraphsStarted | Skickas när alla diagram har startats. |
archon_configchange | Skickas när en grafkonfiguration har ändrats. |
archon_graphCreationFailed | Skickas när grafen med den rapporterade graphId misslyckas att starta. |
archon_graphCreationSuccess | Skickas när grafen med den rapporterade graphId startar. |
archon_graphCleanup | Skickas när grafen med den rapporterade graphId rensas och avslutas. |
archon_graphHeartbeat | Pulsslag skickas varje minut för varje graf av en färdighet. |
archon_apiKeyAuthFail | Skickas när visionsresursnyckeln inte kan autentisera containern i mer än 24 timmar, på grund av följande orsaker: Out of Quota, Invalid, Offline. |
VideoIngesterHeartbeat | Skickas varje timme för att indikera att videon strömmas från videokällan, med antalet fel under den timmen. Rapporteras för varje diagram. |
VideoIngesterState | Rapporter har stoppats eller startats för videouppspelning. Rapporteras för varje diagram. |
Felsöka en IoT Edge-enhet
Du kan använda iotedge
kommandoradsverktyget för att kontrollera status och loggar för de moduler som körs. Till exempel:
iotedge list
: Rapporterar en lista över moduler som körs. Du kan söka efter fel mediotedge logs edgeAgent
. Omiotedge
fastnar kan du prova att starta om den mediotedge restart edgeAgent
iotedge logs <module-name>
iotedge restart <module-name>
för att starta om en specifik modul
Samla in loggfiler med diagnostikcontainern
Spatial Analysis genererar Docker-felsökningsloggar som du kan använda för att diagnostisera körningsproblem eller inkludera i supportärenden. Modulen spatial analysdiagnostik är tillgänglig i Microsoft Container Registry som du kan ladda ned. Leta efter diagnostikmodulen i manifestdistributionsfilen för din Azure Stack Edge-enhet, stationära dator eller virtuella Azure-dator med GPU.
I avsnittet "env" lägger du till följande konfiguration:
"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\"}}}}"
}
För att optimera loggar som laddats upp till en fjärrslutpunkt, till exempel Azure Blob Storage, rekommenderar vi att du behåller en liten filstorlek. Se exemplet nedan för den rekommenderade Docker-loggkonfigurationen.
{
"HostConfig": {
"LogConfig": {
"Config": {
"max-size": "500m",
"max-file": "1000"
}
}
}
}
Konfigurera loggnivån
Med konfiguration på loggnivå kan du styra utförligheten i de genererade loggarna. Loggnivåerna som stöds är: none
, verbose
, info
, warning
och error
. Standardloggens utförliga nivå för både noder och plattform är info
.
Loggnivåer kan ändras globalt genom att miljövariabeln anges ARCHON_LOG_LEVEL
till ett av de tillåtna värdena.
Det kan också anges via IoT Edge-modultvillingdokumentet antingen globalt, för alla distribuerade kunskaper eller för varje specifik färdighet genom att ange värdena för platformLogLevel
och nodesLogLevel
enligt nedan.
{
"version": 1,
"properties": {
"desired": {
"globalSettings": {
"platformLogLevel": "verbose"
},
"graphs": {
"samplegraph": {
"nodesLogLevel": "verbose",
"platformLogLevel": "verbose"
}
}
}
}
}
Samla in loggar
Kommentar
Modulen påverkar inte loggningsinnehållet. Den diagnostics
hjälper bara till att samla in, filtrera och ladda upp befintliga loggar.
Du måste ha Docker API version 1.40 eller senare för att kunna använda den här modulen.
Exempeldistributionsmanifestfilen för din Azure Stack Edge-enhet, stationära dator eller virtuella Azure-dator med GPU innehåller en modul med namnet diagnostics
som samlar in och laddar upp loggar. Den här modulen är inaktiverad som standard och bör aktiveras via IoT Edge-modulkonfigurationen när du behöver komma åt loggar.
Samlingen diagnostics
är på begäran och styrs via en IoT Edge-direktmetod och kan skicka loggar till en Azure Blob Storage.
Konfigurera uppladdningsmål för diagnostik
Från IoT Edge-portalen väljer du din enhet och sedan diagnostikmodulen . I exempelfilen Distributionsmanifest för din Azure Stack Edge-enhet, stationära datorer eller en virtuell Azure-dator med GPU letar du efter avsnittet Miljövariabler för diagnostik med namnet env
och lägger till följande information:
Konfigurera uppladdning till Azure Blob Storage
- Skapa ett eget Azure Blob Storage-konto om du inte redan har gjort det.
- Hämta anslutningssträngen för ditt lagringskonto från Azure Portal. Den finns i Åtkomstnycklar.
- Spatial Analysis-loggar laddas automatiskt upp till en Blob Storage-container med namnet rtcvlogs med följande filnamnsformat :
{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"
}
Ladda upp loggar för rumslig analys
Loggar laddas upp på begäran med getRTCVLogs
IoT Edge-metoden i modulen diagnostics
.
- Gå till sidan för IoT Hub-portalen, välj Edge-enheter och välj sedan enheten och diagnostikmodulen.
- Gå till informationssidan för modulen och välj fliken direktmetod .
- Skriv
getRTCVLogs
på Metodnamn och en json-formatsträng i nyttolast. Du kan ange{}
, vilket är en tom nyttolast. - Ange tidsgränser för anslutning och metod och välj Anropa metod.
- Välj målcontainern och skapa en json-sträng för nyttolast med hjälp av parametrarna som beskrivs i avsnittet Loggningssyntax . Välj Anropa metod för att utföra begäran.
Kommentar
Om du anropar getRTCVLogs
metoden med en tom nyttolast returneras en lista över alla containrar som distribuerats på enheten. Metodnamnet är skiftlägeskänsligt. Du får ett 501-fel om ett felaktigt metodnamn anges.
Loggningssyntax
Tabellen nedan visar de parametrar som du kan använda när du kör frågor mot loggar.
Nyckelord | beskrivning | Standardvärde |
---|---|---|
StartTime | Önskad starttid för loggar i millisekunder UTC. | -1 , början av containerns körning. När [-1.-1] används som ett tidsintervall returnerar API:et loggar från den senaste timmen. |
EndTime | Sluttid för önskade loggar, i millisekunder UTC. | -1 , aktuell tid. När [-1.-1] tidsintervallet används returnerar API:et loggar från den senaste timmen. |
ContainerId | Målcontainer för att hämta loggar. | null , när det inte finns något container-ID. API:et returnerar all tillgänglig information om containrar med ID:n. |
DoPost | Utför uppladdningsåtgärden. När detta är inställt på false utför den den begärda åtgärden och returnerar uppladdningsstorleken utan att utföra uppladdningen. När värdet är inställt true på initieras den asynkrona uppladdningen av de valda loggarna |
false , ladda inte upp. |
Begränsning | Ange hur många rader loggar som ska laddas upp per batch | 1000 , Använd den här parametern för att justera efterhastigheten. |
Filter | Filtrerar loggar som ska laddas upp | null , filter kan anges som nyckelvärdepar baserat på logstrukturen spatial analys: [UTC, LocalTime, LOGLEVEL,PID, CLASS, DATA] . Till exempel: {"TimeFilter":[-1,1573255761112]}, {"TimeFilter":[-1,1573255761112]}, {"CLASS":["myNode"] |
I följande tabell visas attributen i frågesvaret.
Nyckelord | beskrivning |
---|---|
DoPost | Antingen sant eller falskt. Anger om loggarna har laddats upp eller inte. När du väljer att inte ladda upp loggar returnerar API:et information synkront. När du väljer att ladda upp loggar returnerar API:et 200, om begäran är giltig och börjar ladda upp loggar asynkront. |
TimeFilter | Tidsfilter som tillämpas på loggarna. |
ValueFilters | Nyckelordsfilter som tillämpas på loggarna. |
TimeStamp | Starttid för metodkörning. |
ContainerId | Målcontainer-ID. |
FetchCounter | Totalt antal loggrader. |
FetchSizeInByte | Total mängd loggdata i byte. |
MatchCounter | Giltigt antal loggrader. |
MatchSizeInByte | Giltig mängd loggdata i byte. |
FilterCount | Totalt antal loggrader efter att filter har tillämpats. |
FilterSizeInByte | Total mängd loggdata i byte efter att filtret har tillämpats. |
FetchLogsDurationInMiliSec | Varaktighet för hämtningsåtgärden. |
PaseLogsDurationInMiliSec | Varaktighet för filteråtgärd. |
PostLogsDurationInMiliSec | Varaktighet efter åtgärden. |
Exempelbegäranden
{
"StartTime": -1,
"EndTime": -1,
"ContainerId": "5fa17e4d8056e8d16a5a998318716a77becc01b36fde25b3de9fde98a64bf29b",
"DoPost": false,
"Filters": null
}
Exempelsvar
{
"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
}
}
}
Kontrollera hämtningsloggens rader, tider och storlekar, om dessa inställningar ser bra ut ersätter DoPost till true
och som skickar loggarna med samma filter till mål.
Du kan exportera loggar från Azure Blob Storage när du felsöker problem.
Felsöka Azure Stack Edge-enheten
Följande avsnitt tillhandahålls för hjälp med felsökning och verifiering av status för din Azure Stack Edge-enhet.
Få åtkomst till Kubernetes API-slutpunkten.
- Gå till sidan Enheter i enhetens lokala användargränssnitt.
- Under Enhetsslutpunkter kopierar du Kubernetes API-tjänstslutpunkten. Den här slutpunkten är en sträng i följande format:
https://compute..[device-IP-address]
. - Spara slutpunktssträngen. Du kommer att använda detta senare när du konfigurerar
kubectl
för att komma åt Kubernetes-klustret.
Ansluta till PowerShell-gränssnittet
Fjärranslutning från en Windows-klient. När Kubernetes-klustret har skapats kan du hantera programmen via det här klustret. Du måste ansluta till PowerShell-gränssnittet på enheten. Beroende på klientens operativsystem kan procedurerna för fjärranslutning till enheten vara olika. Följande steg gäller för en Windows-klient som kör PowerShell.
Dricks
- Innan du börjar kontrollerar du att Windows-klienten kör Windows PowerShell 5.0 eller senare.
- PowerShell är också tillgängligt i Linux.
Kör en Windows PowerShell-session som administratör.
Kontrollera att Windows Remote Management-tjänsten körs på klienten. I kommandotolken skriver du
winrm quickconfig
.Tilldela en variabel för enhetens IP-adress. Exempel:
$ip = "<device-ip-address>"
Använd följande kommando för att lägga till IP-adressen för din enhet i klientens lista över betrodda värdar.
Set-Item WSMan:\localhost\Client\TrustedHosts $ip -Concatenate -Force
Starta en Windows PowerShell-session på enheten.
Enter-PSSession -ComputerName $ip -Credential $ip\EdgeUser -ConfigurationName Minishell
Ange lösenordet när du uppmanas att göra det. Använd samma lösenord som används för att logga in på det lokala webbgränssnittet. Standardlösenordet för det lokala webbgränssnittet är
Password1
.
Få åtkomst till Kubernetes-klustret
När Kubernetes-klustret har skapats kan du använda kubectl
kommandoradsverktyget för att komma åt klustret.
Skapa ett nytt namnområde.
New-HcsKubernetesNamespace -Namespace
Skapa en användare och hämta en konfigurationsfil. Det här kommandot matar ut konfigurationsinformation för Kubernetes-klustret. Kopiera den här informationen och spara den i en fil med namnet config. Spara inte filen som filnamnstillägg.
New-HcsKubernetesUser -UserName
Lägg till konfigurationsfilen i mappen .kube i användarprofilen på den lokala datorn.
Associera namnområdet med den användare som du skapade.
Grant-HcsKubernetesNamespaceAccess -Namespace -UserName
Installera
kubectl
på Windows-klienten med följande kommando:curl https://storage.googleapis.com/kubernetesrelease/release/v1.15.2/bin/windows/amd64/kubectl.exe -O kubectl.exe
Lägg till en DNS-post i värdfilen i systemet.
- Kör Anteckningar som administratör och öppna värdfilen som finns på
C:\windows\system32\drivers\etc\hosts
. - Skapa en post i värdfilen med enhetens IP-adress och DNS-domän som du fick från sidan Enhet i det lokala användargränssnittet. Slutpunkten som du bör använda ser ut ungefär så här:
https://compute.asedevice.microsoftdatabox.com/10.100.10.10
.
- Kör Anteckningar som administratör och öppna värdfilen som finns på
Kontrollera att du kan ansluta till Kubernetes-poddarna.
kubectl get pods -n "iotedge"
Kör följande kommando för att hämta containerloggar:
kubectl logs <pod-name> -n <namespace> --all-containers
Användbara kommandon
Kommando | beskrivning |
---|---|
Get-HcsKubernetesUserConfig -AseUser |
Genererar en Kubernetes-konfigurationsfil. När du använder kommandot kopierar du informationen till en fil med namnet config. Spara inte filen med ett filnamnstillägg. |
Get-HcsApplianceInfo |
Returnerar information om enheten. |
Enable-HcsSupportAccess |
Genererar åtkomstautentiseringsuppgifter för att starta en supportsession. |
Så här skapar du ett supportärende för rumslig analys
Om du behöver mer stöd för att hitta en lösning på ett problem som du har med containern Spatial Analysis följer du de här stegen för att fylla i och skicka ett supportärende. Vårt team återkommer till dig med ytterligare vägledning.
Fyll i grundläggande information
Skapa en ny supportbegäran på sidan Ny supportbegäran . Följ anvisningarna för att fylla i följande parametrar:
- Ange Ärendetyp till
Technical
. - Välj den prenumeration som du använder för att distribuera containern Spatial Analysis.
- Välj
My services
och väljAzure AI services
som tjänst. - Välj den resurs som du använder för att distribuera containern Spatial Analysis.
- Skriv en kort beskrivning som beskriver problemet.
- Välj
Spatial Analysis
som problemtyp. - Välj lämplig undertyp i listrutan.
- Välj Nästa: Lösningar för att gå vidare till nästa sida.
Rekommenderade lösningar
Nästa steg kommer att erbjuda rekommenderade lösningar för den problemtyp som du har valt. De här lösningarna löser de vanligaste problemen, men om det inte är användbart för din lösning väljer du Nästa: Information för att gå till nästa steg.
Details
På den här sidan lägger du till lite extra information om problemet du har stött på. Se till att ta med så mycket information som möjligt, eftersom detta hjälper våra tekniker att bättre begränsa problemet. Inkludera önskad kontaktmetod och problemets allvarlighetsgrad så att vi kan kontakta dig på rätt sätt och välj Nästa: Granska + skapa för att gå vidare till nästa steg.
Granska och skapa
Granska informationen i din supportbegäran för att säkerställa att allt är korrekt och representerar problemet effektivt. När du är klar väljer du Skapa för att skicka biljetten till vårt team! Du får en e-postbekräftelse när din biljett har tagits emot och vårt team kommer att arbeta för att komma tillbaka till dig så snart som möjligt. Du kan visa status för ditt ärende i Azure Portal.