Uzyskiwanie dostępu do wbudowanych metryk w usłudze Azure IoT Edge

Dotyczy:Znacznik wyboru usługi IoT Edge 1.4 IoT Edge 1.4

Ważne

Azure IoT Edge1.4 jest obsługiwaną wersją. Jeśli korzystasz z wcześniejszej wersji, zobacz aktualizację Azure IoT Edge.

Składniki środowiska uruchomieniowego usługi IoT Edge, centrum usługi IoT Edge i agent usługi IoT Edge tworzą wbudowane metryki w formacie ekspozycji Prometheus. Możesz zdalnie uzyskać dostęp do tych metryk, aby monitorować i badać kondycję urządzenia usługi IoT Edge.

Aby uzyskać dostęp do tych metryk, możesz użyć własnego rozwiązania. Możesz też użyć modułu metrics-collector, który obsługuje zbieranie wbudowanych metryk i wysyłanie ich do usługi Azure Monitor lub Azure IoT Hub. Aby uzyskać więcej informacji, zobacz Zbieranie i transport metryk.

Metryki są domyślnie udostępniane automatycznie na porcie 9600modułów edgeHub i edgeAgent (http://edgeHub:9600/metrics i http://edgeAgent:9600/metrics). Nie są one domyślnie mapowane na port hosta.

Uzyskaj dostęp do metryk z hosta, uwidaczniając i mapując port metryk z modułu createOptions. Poniższy przykład mapuje domyślny port metryk na port 9601 na hoście:

{
  "ExposedPorts": {
    "9600/tcp": {}
  },
  "HostConfig": {
    "PortBindings": {
      "9600/tcp": [
        {
          "HostPort": "9601"
        }
      ]
    }
  }
}

Wybierz różne i unikatowe numery portów hosta, jeśli mapujesz punkty końcowe metryk edgeHub i edgeAgent.

Uwaga

Zmienna środowiskowa httpSettings__enabled nie powinna być ustawiona na false dla wbudowanych metryk, które mają być dostępne dla kolekcji.

Zmienne środowiskowe, które mogą służyć do wyłączania metryk, są wyświetlane w opisano w opisano w repozytorium azure/iotedge.

Dostępne metryki

Metryki zawierają tagi ułatwiające zidentyfikowanie charakteru zbieranej metryki. Wszystkie metryki zawierają następujące tagi:

Tag opis
iothub Koncentrator, z którym urządzenie rozmawia
edge_device Identyfikator bieżącego urządzenia
instance_number Identyfikator GUID reprezentujący bieżące środowisko uruchomieniowe. Po ponownym uruchomieniu wszystkie metryki są resetowane. Ten identyfikator GUID ułatwia uzgadnianie ponownych uruchomień.

W formacie ekspozycji Prometheus istnieją cztery podstawowe typy metryk: licznik, miernik, histogram i podsumowanie. Aby uzyskać więcej informacji na temat różnych typów metryk, zobacz dokumentację typów metryk Prometheus.

Kwantyle podane dla wbudowanych histogramów i metryk podsumowania to 0,1, 0,5, 0,9 i 0,99.

Moduł edgeHub tworzy następujące metryki:

Nazwisko Wymiary opis
edgehub_gettwin_total source (źródło operacji)
id (identyfikator modułu)
Typ: licznik
Łączna liczba wywołań GetTwin
edgehub_messages_received_total route_output (dane wyjściowe wysłane wiadomości)
id
Typ: licznik
Łączna liczba komunikatów odebranych od klientów
edgehub_messages_sent_total from (źródło komunikatów)
to (miejsce docelowe wiadomości)
from_route_output
to_route_input (dane wejściowe miejsca docelowego komunikatu)
priority (priorytet komunikatu do miejsca docelowego)
Typ: licznik
Łączna liczba komunikatów wysyłanych do klientów lub nadrzędnych
to_route_input wartość jest pusta, gdy to jest $upstream
edgehub_reported_properties_total target(aktualizuj element docelowy)
id
Typ: licznik
Łączna liczba zgłoszonych wywołań aktualizacji właściwości
edgehub_message_size_bytes id
Typ: podsumowanie
Rozmiar komunikatu od klientów
Wartości mogą być zgłaszane tak, jakby NaN nie zgłoszono nowych pomiarów przez określony czas (obecnie 10 minut); dla summary typu są emitowane odpowiednie _count i _sum liczniki.
edgehub_gettwin_duration_seconds source
id
Typ: podsumowanie
Czas potrzebny na uzyskanie operacji bliźniaczej reprezentacji
edgehub_message_send_duration_seconds from
to
from_route_output
to_route_input
Typ: podsumowanie
Czas potrzebny na wysłanie wiadomości
edgehub_message_process_duration_seconds from
to
priority
Typ: podsumowanie
Czas potrzebny na przetworzenie komunikatu z kolejki
edgehub_reported_properties_update_duration_seconds target
id
Typ: podsumowanie
Czas potrzebny na zaktualizowanie zgłoszonych właściwości
edgehub_direct_method_duration_seconds from (obiekt wywołujący)
to (odbiornik)
Typ: podsumowanie
Czas potrzebny na rozwiązanie komunikatu bezpośredniego
edgehub_direct_methods_total from
to
Typ: licznik
Łączna liczba wysłanych komunikatów bezpośrednich
edgehub_queue_length endpoint (źródło komunikatów)
priority (priorytet kolejki)
Typ: miernik
Bieżąca długość kolejki edgeHub dla danego priorytetu
edgehub_messages_dropped_total reason (no_route, ttl_expiry)
from
from_route_output
Typ: licznik
Całkowita liczba usuniętych komunikatów z powodu przyczyny
edgehub_messages_unack_total reason (storage_failure)
from
from_route_output
Typ: licznik
Łączna liczba niezaznaczonych komunikatów z powodu awarii magazynu
edgehub_offline_count_total id Typ: licznik
Łączna liczba przypadków, gdy usługa EdgeHub przeszła w tryb offline
edgehub_offline_duration_seconds id Typ: podsumowanie
Centrum krawędzi czasu było w trybie offline
edgehub_operation_retry_total id
operation (nazwa operacji)
Typ: licznik
Łączna liczba ponownych prób próbnych operacji brzegowych w usłudze EdgeHub
edgehub_client_connect_failed_total id
reason (nieuwierzytelnione)
Typ: licznik
Łączna liczba nieudanych połączeń klientów z usługą edgeHub

Moduł edgeAgent tworzy następujące metryki:

Nazwisko Wymiary opis
edgeAgent_total_time_running_correctly_seconds module_name Typ: miernik
Czas, przez jaki moduł został określony we wdrożeniu i był w stanie uruchomienia
edgeAgent_total_time_expected_running_seconds module_name Typ: miernik
Czas, przez jaki moduł został określony we wdrożeniu
edgeAgent_module_start_total module_name, module_version Typ: licznik
Ile razy agent edgeAgent poprosił platformę Docker o uruchomienie modułu
edgeAgent_module_stop_total module_name, module_version Typ: licznik
Ile razy agent edgeAgent poprosił platformę Docker o zatrzymanie modułu
edgeAgent_command_latency_seconds command Typ: miernik
Jak długo trwało wykonywanie danego polecenia przez platformę Docker. Możliwe polecenia to: tworzenie, aktualizowanie, usuwanie, uruchamianie, zatrzymywanie i ponowne uruchamianie
edgeAgent_iothub_syncs_total Typ: licznik
Liczba prób zsynchronizowania bliźniaczej reprezentacji usługi EdgeAgent z usługą iotHub, zarówno pomyślną, jak i nieudaną. Ta liczba obejmuje zarówno agenta żądającego bliźniaczej reprezentacji, jak i centrum z powiadomieniem o aktualizacji bliźniaczej reprezentacji
edgeAgent_unsuccessful_iothub_syncs_total Typ: licznik
Liczba przypadków, gdy agent edgeAgent nie może zsynchronizować bliźniaczej reprezentacji z usługą iotHub.
edgeAgent_deployment_time_seconds Typ: licznik
Czas potrzebny na ukończenie nowego wdrożenia po otrzymaniu zmiany.
edgeagent_direct_method_invocations_count method_name Typ: licznik
Liczba wywołań wbudowanej metody bezpośredniej edgeAgent, takiej jak ping lub restart.
edgeAgent_host_uptime_seconds Typ: miernik
Jak długo host jest włączony
edgeAgent_iotedged_uptime_seconds Typ: miernik
Jak długo działa iotedged
edgeAgent_available_disk_space_bytes disk_name, , disk_filesystemdisk_filetype Typ: miernik
Ilość miejsca pozostawionego na dysku
edgeAgent_total_disk_space_bytes disk_name, , disk_filesystemdisk_filetype Typ: miernik
Rozmiar dysku
edgeAgent_used_memory_bytes module_name Typ: miernik
Ilość pamięci RAM używanej przez wszystkie procesy
edgeAgent_total_memory_bytes module_name Typ: miernik
Dostępna pamięć RAM
edgeAgent_used_cpu_percent module_name Typ: histogram
Procent użycia procesora przez wszystkie procesy
edgeAgent_created_pids_total module_name Typ: miernik
Liczba procesów lub wątków utworzonych przez kontener
edgeAgent_total_network_in_bytes module_name Typ: miernik
Liczba bajtów odebranych z sieci
edgeAgent_total_network_out_bytes module_name Typ: miernik
Liczba bajtów wysłanych do sieci
edgeAgent_total_disk_read_bytes module_name Typ: miernik
Liczba bajtów odczytanych z dysku
edgeAgent_total_disk_write_bytes module_name Typ: miernik
Liczba bajtów zapisanych na dysku
edgeAgent_metadata edge_agent_version, , experimental_featureshost_information Typ: miernik
Ogólne metadane dotyczące urządzenia. Wartość jest zawsze 0. Informacje są kodowane w tagach. Uwaga experimental_features i host_information są obiektami json. host_information wygląda następująco: {"OperatingSystemType": "linux", "Architecture": "x86_64", "Version": "1.2.7", "Provisioning": {"Type": "dps.tpm", "DynamicReprovisioning": false, "AlwaysReprovisionOnStartup": false}, "ServerVersion": "20.10.11+azure-3", "KernelVersion": "5.11.0-1027-azure", "OperatingSystem": "Ubuntu 20.04.4 LTS", "NumCpus": 2, "Virtualized": "yes"}. Uwaga ServerVersion to wersja platformy Docker i Version jest wersją demona zabezpieczeń usługi IoT Edge.

Następne kroki