Översikt över enhetsuppdatering för IoT Hub-diagnostik

Enhetsuppdatering för IoT Hub har flera funktioner som hjälper dig att diagnostisera och felsöka fel på enhetssidan. Med lanseringen av v0.8.0-agenten finns det två tillgängliga diagnostikfunktioner:

  • Felkoder för distribution kan visas direkt i den senaste förhandsversionen av användargränssnittet för enhetsuppdatering

  • Fjärrloggsamling gör det möjligt att skapa loggåtgärder, vilket instruerar målenheter att ladda upp diagnostikloggar på enheten till ett länkat Azure Blob Storage-konto

Felkoder för distribution i användargränssnittet

När en enhet rapporterar ett distributionsfel till enhetsuppdateringstjänsten visar användargränssnittet för Enhetsuppdatering enhetens rapporterade resultCode och extendedResultCode i användargränssnittet. Använd följande steg för att visa dessa koder:

  1. I Azure Portal, navigerar du till din IoT-hubb.

  2. Välj Uppdateringar och gå sedan till fliken Grupper och distributioner.

  3. Välj namnet på en grupp med en aktiv distribution för att komma till sidan Gruppinformation.

  4. Välj valfritt enhetsnamn i listan Enhet för att öppna panelen med enhetsinformation. Här kan du se resultatkoden som enheten har rapporterat.

  5. Referensagenten för enhetsuppdatering följer standardkonventionen för HTTP-statuskod för resultatkodfältet (till exempel "200" anger att det lyckades). Mer information om hur du parsar resultatkoder finns i Felkoder för enhetsuppdateringsklienten.

    Anmärkning

    Om du har ändrat enhetsuppdateringsagenten för att rapportera anpassade resultatkoder skickas de numeriska koderna fortfarande till användargränssnittet för enhetsuppdatering. Du kan sedan referera till all dokumentation som du har skapat för att parsa dessa numeriska koder.

Fjärrloggsamling

När mer information från enheten krävs för att diagnostisera och felsöka ett fel kan du använda loggsamlingsfunktionen för att instruera målenheter att ladda upp diagnostikloggar på enheten till ett länkat Azure Blob Storage-konto. Du kan börja använda den här funktionen genom att följa anvisningarna i Fjärrinsamling av diagnostikloggar från enheter.

Enhetsuppdateringens fjärrloggsamling är en tjänstdriven, driftsbaserad funktion. För att kunna dra nytta av logginsamlingen behöver en enhet bara kunna implementera diagnostikgränssnittet och konfigurationsfilen och kunna ladda upp filer till Azure Blob Storage via SDK.

Från en hög nivå fungerar loggsamlingsfunktionen på följande sätt:

  1. Användaren skapar en ny loggoperation med hjälp av enhetsuppdateringens användargränssnitt eller API:er, riktad mot upp till 100 enheter som har implementerat ett diagnostikgränssnitt.

  2. Enhetsuppdateringstjänsten skickar ett startmeddelande för loggsamlingen till målenheterna med hjälp av diagnostikgränssnittet. Det här startmeddelandet innehåller loggåtgärds-ID och en SAS-token för uppladdning till det associerade Azure Storage-kontot.

  3. När startmeddelandet tas emot försöker enhetsuppdateringsagenten för målenheten samla in och ladda upp filerna i de fördefinierade filsökvägar som anges i konfigurationsfilen för agenten på enheten. Referensagenten för enhetsuppdatering har konfigurerats för att ladda upp diagnostikloggen för enhetsuppdateringsagenten (aduc.log) och DO-agentens diagnostiklogg ("do-agent.log") som standard.

  4. Enhetsuppdateringsagenten rapporterar sedan tillståndet för åtgärden (antingen Lyckades eller Misslyckades) tillbaka till tjänsten, inklusive loggåtgärds-ID, ett ResultCode och en ExtendedResultCode. Om enhetsuppdateringsagenten misslyckas med en loggåtgärd försöker den automatiskt försöka igen tre gånger och rapporterar endast det slutliga tillståndet tillbaka till tjänsten.

  5. När alla målenheter har rapporterat sitt terminaltillstånd tillbaka till enhetsuppdateringstjänsten markerar enhetsuppdateringstjänsten loggåtgärden som antingen Lyckades eller Misslyckades. En lyckad loggåtgärd anger att alla målenheter har slutfört loggåtgärden. En misslyckad loggåtgärd anger att minst en enhet misslyckades med att utföra loggåtgärden.

    Anmärkning

    Eftersom loggåtgärden utförs parallellt av målenheterna är det möjligt att vissa målenheter har laddat upp loggar, men den övergripande loggåtgärden markeras som misslyckad. Du kan se vilka enheter som lyckades och vilka som misslyckades genom att visa loggåtgärdsinformationen via användargränssnittet eller API:erna.

Nästa steg

Lär dig hur du använder enhetsuppdateringens fjärrloggsamlingsfunktion: fjärrinsamling av diagnostikloggar från enheter med enhetsuppdatering för IoT Hub-