Udostępnij za pośrednictwem


Eksportowanie telemetrii z usługi Application Insights

Czy chcesz przechowywać dane telemetryczne przez dłuższy niż standardowy okres przechowywania? A może chcesz go przetworzyć w jakiś wyspecjalizowany sposób? Eksport ciągły jest idealny do tego celu. Zdarzenia widoczne w portalu usługi Application Insights można wyeksportować do magazynu na platformie Azure w formacie JSON. Stamtąd możesz pobrać dane i napisać dowolny kod, który musisz przetworzyć.

Ważne

  • Od 29 lutego 2024 r. eksport ciągły jest wycofany.
  • Podczas migracji do zasobu usługi Application Insights opartego na obszarze roboczym należy użyć ustawień diagnostycznych do eksportowania danych telemetrycznych. Wszystkie zasoby usługi Application Insights oparte na obszarze roboczym muszą używać ustawień diagnostycznych.
  • Wyeksportowanie ustawień diagnostycznych może zwiększyć koszty. Aby uzyskać więcej informacji, zobacz Eksportowanie oparte na ustawieniach diagnostycznych.

Przed skonfigurowaniem eksportu ciągłego warto rozważyć kilka alternatyw:

  • Przycisk Eksportuj w górnej części metryki lub karty wyszukiwania umożliwia transfer tabel i wykresów do arkusza kalkulacyjnego programu Excel.
  • Usługa Log Analytics udostępnia zaawansowany język zapytań dla telemetrii. Może również eksportować wyniki.
  • Jeśli chcesz eksplorować dane w usłudze Power BI, możesz to zrobić bez korzystania z eksportu ciągłego, jeśli przeprowadzono migrację do zasobu opartego na obszarze roboczym.
  • Interfejs API REST dostępu do danych umożliwia programowe uzyskiwanie dostępu do danych telemetrycznych.
  • Możesz również uzyskać dostęp do konfiguracji eksportu ciągłego za pomocą programu PowerShell.

Po ciągłym eksportowaniu kopiuje dane do magazynu, gdzie mogą pozostać tak długo, jak chcesz, nadal są dostępne w usłudze Application Insights dla zwykłego okresu przechowywania.

Obsługiwane regiony

Eksport ciągły jest obsługiwany w następujących regionach:

  • Southeast Asia
  • Kanada Środkowa
  • Indie Centralne
  • Europa Północna
  • Południowe Zjednoczone Królestwo
  • Australia Wschodnia
  • Japonia Wschodnia
  • Korea Środkowa
  • Francja Środkowa
  • Azja Wschodnia
  • Zachodnie stany USA
  • Środkowe stany USA
  • Wschodnie stany USA 2
  • South Central US
  • Zachodnie stany USA 2
  • Północna Republika Południowej Afryki
  • Północno-środkowe stany USA
  • Brazylia Południowa
  • Szwajcaria Północna
  • Australia Południowo-Wschodnia
  • Zachodnie Zjednoczone Królestwo
  • Niemcy Środkowo-Zachodnie
  • Szwajcaria Zachodnia
  • Australia Środkowa 2
  • Środkowe Zjednoczone Emiraty Arabskie
  • Brazylia Południowo–Wschodnia
  • Australia Środkowa
  • Północne Zjednoczone Emiraty Arabskie
  • Norwegia Wschodnia
  • Japonia Zachodnia

Uwaga

Eksport ciągły będzie nadal działać dla aplikacji w regionach Wschodnie stany USA i Europa Zachodnia, jeśli eksport został skonfigurowany przed 23 lutego 2021 r. Nie można skonfigurować nowych reguł eksportu ciągłego w żadnej aplikacji w regionie Wschodnie stany USA lub Europa Zachodnia, niezależnie od tego, kiedy aplikacja została utworzona.

Konfiguracja magazynu zaawansowanego eksportu ciągłego

Eksport ciągły nie obsługuje następujących funkcji ani konfiguracji usługi Azure Storage:

Tworzenie eksportu ciągłego

Uwaga

Aplikacja nie może eksportować więcej niż 3 TB danych dziennie. Jeśli eksportuje się więcej niż 3 TB dziennie, eksport zostanie wyłączony. Aby wyeksportować bez limitu, użyj eksportu opartego na ustawieniach diagnostycznych.

  1. W zasobie usługi Application Insights dla aplikacji w obszarze Konfiguruj po lewej stronie otwórz pozycję Eksport ciągły i wybierz pozycję Dodaj.

  2. Wybierz typy danych telemetrycznych, które chcesz wyeksportować.

  3. Utwórz lub wybierz konto usługi Azure Storage, na którym chcesz przechowywać dane. Aby uzyskać więcej informacji na temat opcji cen magazynu, zobacz stronę Cennik.

    Wybierz pozycję Dodaj>docelowe>konto magazynu eksportu. Następnie utwórz nowy sklep lub wybierz istniejący sklep.

    Ostrzeżenie

    Domyślnie lokalizacja magazynu zostanie ustawiona na ten sam region geograficzny co zasób usługi Application Insights. Jeśli przechowujesz w innym regionie, mogą zostać naliczone opłaty za transfer.

  4. Utwórz lub wybierz kontener w magazynie.

Uwaga

Po utworzeniu eksportu nowo pozyskane dane zaczną przepływać do usługi Azure Blob Storage. Eksport ciągły przesyła tylko nowe dane telemetryczne utworzone lub pozyskane po włączeniu eksportu ciągłego. Wszystkie dane, które istniały przed włączeniem eksportu ciągłego, nie zostaną wyeksportowane. Nie ma obsługiwanego sposobu retroaktywnego eksportowania wcześniej utworzonych danych przy użyciu eksportu ciągłego.

Może wystąpić opóźnienie około godziny, zanim dane pojawią się w magazynie.

Po zakończeniu pierwszego eksportu w kontenerze usługi Blob Storage znajdziesz następującą strukturę. (Ta struktura różni się w zależności od zbieranych danych).

Nazwa/nazwisko opis
Dostępność Raportuje testy sieci Web dostępności.
Zdarzenie Zdarzenia niestandardowe generowane przez element TrackEvent().
Wyjątki Zgłasza wyjątki na serwerze i w przeglądarce.
Komunikaty Wysyłane przez element TrackTrace i przez karty rejestrowania.
Metryki Generowane przez wywołania interfejsu API metryk.
Liczniki wydajności Liczniki wydajności zebrane przez usługę Application Insights.
Żądania Wysłane przez trackRequest. Moduły standardowe używają żądań do raportowania czasu odpowiedzi serwera mierzonego na serwerze.

Edytowanie eksportu ciągłego

Wybierz pozycję Eksport ciągły i wybierz konto magazynu do edycji.

Zatrzymywanie eksportu ciągłego

Aby zatrzymać eksport, wybierz pozycję Wyłącz. Po ponownym wybraniu pozycji Włącz eksport zostanie ponownie uruchomiony z nowymi danymi. Nie uzyskasz danych, które dotarły do portalu, gdy eksport został wyłączony.

Aby zatrzymać eksport trwale, usuń go. W ten sposób dane nie są usuwane z magazynu.

Nie można dodać lub zmienić eksportu?

Aby dodać lub zmienić eksporty, musisz mieć prawa dostępu Właściciel, Współautor lub Współautor w usłudze Application Insights. Dowiedz się więcej o rolach.

Jakie zdarzenia otrzymujesz?

Wyeksportowane dane to nieprzetworzone dane telemetryczne odbierane z aplikacji z dodanymi danymi lokalizacji z adresu IP klienta.

Dane, które zostały odrzucone przez próbkowanie , nie są uwzględniane w wyeksportowanych danych.

Inne metryki obliczeniowe nie są uwzględniane. Na przykład nie eksportujemy średniego wykorzystania procesora CPU, ale eksportujemy nieprzetworzone dane telemetryczne, z których obliczana jest średnia.

Dane zawierają również wyniki wszystkich skonfigurowanych testów sieci Web dostępności.

Uwaga

Jeśli aplikacja wysyła dużo danych, funkcja próbkowania może działać i wysyłać tylko część wygenerowanej telemetrii. Dowiedz się więcej na temat próbkowania.

Inspekcja danych

Magazyn można sprawdzić bezpośrednio w portalu. Wybierz pozycję Strona główna w menu po lewej stronie. W górnej części strony, w której jest wyświetlany komunikat Usługi platformy Azure, wybierz pozycję Konta magazynu. Wybierz nazwę konta magazynu, a na stronie Przegląd wybierz pozycję Usługi>Blobs. Na koniec wybierz nazwę kontenera.

Aby sprawdzić usługę Azure Storage w programie Visual Studio, wybierz pozycję Wyświetl>Eksplorator chmury. Jeśli nie masz tego polecenia menu, musisz zainstalować zestaw Azure SDK. Otwórz okno dialogowe Nowy projekt, rozwiń węzeł Visual C#/Cloud i wybierz pozycję Pobierz Zestaw Microsoft Azure SDK dla platformy .NET.

Po otwarciu magazynu obiektów blob zobaczysz kontener z zestawem plików obiektów blob. Zobaczysz identyfikator URI każdego pliku pochodzącego z nazwy zasobu usługi Application Insights, jego klucza instrumentacji i typu telemetrii, daty i godziny. Nazwa zasobu to małe litery, a klucz instrumentacji pomija kreski.

Zrzut ekranu przedstawiający inspekcję magazynu obiektów blob przy użyciu odpowiedniego narzędzia.

Uwaga

31 marca 2025 r. zostanie zakończone świadczenie pomocy technicznej dla pozyskiwania klucza instrumentacji. Pozyskiwanie klucza instrumentacji będzie nadal działać, ale nie udostępnimy już aktualizacji ani obsługi funkcji. Przejście do parametry połączenia w celu skorzystania z nowych funkcji.

Data i godzina to UTC, a kiedy dane telemetryczne zostały zdeponowane w sklepie, a nie godzina wygenerowania. Z tego powodu, jeśli napiszesz kod do pobrania danych, może on przechodzić liniowo przez dane.

Oto forma ścieżki:

$"{applicationName}_{instrumentationKey}/{type}/{blobDeliveryTimeUtc:yyyy-MM-dd}/{ blobDeliveryTimeUtc:HH}/{blobId}_{blobCreationTimeUtc:yyyyMMdd_HHmmss}.blob"

Gdzie:

  • blobCreationTimeUtc to czas utworzenia obiektu blob w wewnętrznym magazynie przejściowym.
  • blobDeliveryTimeUtc to czas kopiowania obiektu blob do magazynu docelowego eksportu.

Format danych

Dane są sformatowane tak, aby:

  • Każdy obiekt blob to plik tekstowy zawierający wiele \nrozdzielonych wierszy. Zawiera ona dane telemetryczne przetwarzane w okresie około pół minuty.

  • Każdy wiersz reprezentuje punkt danych telemetrycznych, taki jak żądanie lub widok strony.

  • Każdy wiersz jest niesformatowanym dokumentem JSON. Jeśli chcesz wyświetlić wiersze, otwórz obiekt blob w programie Visual Studio i wybierz pozycję Edytuj>plik formatu zaawansowanego.>

    Zrzut ekranu przedstawiający wyświetlanie danych telemetrycznych za pomocą odpowiedniego narzędzia

Czas trwania jest w kleszczach, gdzie 10 000 kleszczy = 1 ms. Na przykład te wartości pokazują czas 1 ms do wysłania żądania z przeglądarki, 3 ms, aby je odebrać, i 1,8 s do przetworzenia strony w przeglądarce:

"sendRequest": {"value": 10000.0},
"receiveRequest": {"value": 30000.0},
"clientProcess": {"value": 17970000.0}

Aby uzyskać szczegółowe informacje o modelu danych dla typów właściwości i wartości, zobacz Application Insights export data model (Eksportowanie modelu danych usługi Application Insights).

Przetwarzanie danych

Na małą skalę możesz napisać kod, aby rozciągnąć dane i odczytać je w arkuszu kalkulacyjnym. Na przykład:

private IEnumerable<T> DeserializeMany<T>(string folderName)
{
   var files = Directory.EnumerateFiles(folderName, "*.blob", SearchOption.AllDirectories);
   foreach (var file in files)
   {
      using (var fileReader = File.OpenText(file))
      {
         string fileContent = fileReader.ReadToEnd();
         IEnumerable<string> entities = fileContent.Split('\n').Where(s => !string.IsNullOrWhiteSpace(s));
         foreach (var entity in entities)
         {
            yield return JsonConvert.DeserializeObject<T>(entity);
         }
      }
   }
}

Aby zapoznać się z większym przykładem kodu, zobacz Używanie roli procesu roboczego.

Usuwanie starych danych

W razie potrzeby odpowiadasz za zarządzanie pojemnością magazynu i usuwanie starych danych.

Ponowne generowanie klucza magazynu

Jeśli zmienisz klucz do magazynu, eksport ciągły przestanie działać. Na Twoim koncie platformy Azure zostanie wyświetlone powiadomienie.

Wybierz kartę Eksport ciągły i edytuj eksport. Zmodyfikuj wartość Eksportujmiejsce docelowe , ale pozostaw zaznaczony ten sam magazyn. Wybierz OK, aby potwierdzić.

Eksport ciągły zostanie uruchomiony ponownie.

Eksportowanie przykładów

Aby zapoznać się z przykładami eksportu, zobacz:

W większych skalach rozważ klastry hadoop usługi HDInsight w chmurze. Usługa HDInsight udostępnia różne technologie do zarządzania danymi big data i analizowania ich. Służy do przetwarzania danych wyeksportowanych z usługi Application Insights.

Często zadawane pytania

Ta sekcja zawiera odpowiedzi na typowe pytania.

Czy mogę pobrać jednorazowy wykres?

Możesz to zrobić. W górnej części karty wybierz pozycję Eksportuj dane.

Konfiguruję eksport, ale dlaczego w moim sklepie nie ma żadnych danych?

Czy usługa Application Insights odebrała jakiekolwiek dane telemetryczne z aplikacji od momentu skonfigurowania eksportu? Otrzymasz tylko nowe dane.

Próbowałem skonfigurować eksport, ale dlaczego odmówiono dostępu?

Jeśli konto jest własnością organizacji, musisz być członkiem grup Właściciele lub Współautorzy.

Czy mogę wyeksportować bezpośrednio do własnego magazynu lokalnego?

L.p. Obecnie nasz aparat eksportu współpracuje tylko z usługą Azure Storage.

Czy istnieje jakikolwiek limit ilości danych umieszczonych w moim sklepie?

L.p. Wypychamy dane do momentu usunięcia eksportu. Zatrzymamy się, jeśli osiągniemy zewnętrzne limity dla usługi Blob Storage, ale ten limit jest ogromny. Wystarczy kontrolować ilość używanego miejsca do magazynowania.

Ile obiektów blob powinienem zobaczyć w magazynie?

  • Dla każdego typu danych wybranego do wyeksportowania nowy obiekt blob jest tworzony co minutę, jeśli dane są dostępne.
  • W przypadku aplikacji o dużym natężeniu ruchu przydzielane są dodatkowe jednostki partycji. W takim przypadku każda jednostka tworzy obiekt blob co minutę.

Wygenerowano ponownie klucz do magazynu lub zmieniono nazwę kontenera, ale dlaczego eksport nie działa?

Edytuj eksport i wybierz kartę Eksportuj miejsce docelowe . Pozostaw ten sam magazyn wybrany wcześniej, a następnie wybierz przycisk OK , aby potwierdzić. Eksport zostanie uruchomiony ponownie. Jeśli zmiana była w ciągu ostatnich kilku dni, nie utracisz danych.

Czy mogę wstrzymać eksport?

Tak. Wybierz opcję Wyłącz.

Przykłady kodu

Eksportowanie oparte na ustawieniach diagnostycznych

Preferowany jest eksport ustawień diagnostycznych, ponieważ udostępnia dodatkowe funkcje:

  • Konta usługi Azure Storage z sieciami wirtualnymi, zaporami i linkami prywatnymi.
  • Eksportowanie do usługi Azure Event Hubs.

Eksportowanie ustawień diagnostycznych różni się dalej od eksportu ciągłego w następujący sposób:

  • Zaktualizowany schemat.
  • Dane telemetryczne są wysyłane, gdy docierają zamiast w partiach przekazywania.

Ważne

Dodatkowe koszty mogą być naliczane ze względu na wzrost liczby wywołań do miejsca docelowego, takiego jak konto magazynu.

Aby przeprowadzić migrację do ustawień diagnostycznych, eksportuj:

  1. Włącz ustawienia diagnostyczne w klasycznej usłudze Application Insights.
  2. Konfigurowanie eksportu danych: wybierz pozycję Ustawienia>diagnostyczne Dodaj ustawienie diagnostyczne z poziomu zasobu usługi Application Insights.
  3. Sprawdź, czy nowy eksport danych jest skonfigurowany tak samo jak eksport ciągły

Uwaga

Jeśli chcesz przechowywać dzienniki diagnostyczne w obszarze roboczym usługi Log Analytics, należy wziąć pod uwagę dwa kwestie, aby uniknąć wyświetlania zduplikowanych danych w usłudze Application Insights:

  • Miejscem docelowym nie może być ten sam obszar roboczy usługi Log Analytics, na którym opiera się zasób usługi Application Insights.
  • Użytkownik usługi Application Insights nie może mieć dostępu do obu obszarów roboczych. Ustaw tryb kontroli dostępu usługi Log Analytics na wymaga uprawnień obszaru roboczego. Dzięki kontroli dostępu opartej na rolach na platformie Azure upewnij się, że użytkownik ma dostęp tylko do obszaru roboczego usługi Log Analytics, na podstawie których jest oparty zasób usługi Application Insights.

Te kroki są niezbędne, ponieważ usługa Application Insights uzyskuje dostęp do danych telemetrycznych we wszystkich zasobach usługi Application Insights, w tym w obszarach roboczych usługi Log Analytics, w celu zapewnienia pełnych informacji o operacjach transakcji i dokładnych map aplikacji. Ponieważ dzienniki diagnostyczne używają tych samych nazw tabel, gdy użytkownik ma dostęp do wielu zasobów zawierających te same dane, mogą być wyświetlane zduplikowane dane telemetryczne.

Eksportowanie modelu danych usługi Application Insights

Ta tabela zawiera listę właściwości danych telemetrycznych wysyłanych z zestawów SDK usługi Application Insights do portalu. Te właściwości zostaną wyświetlone w danych wyjściowych z eksportu ciągłego. Są one również wyświetlane w filtrach właściwości w Eksploratorze metryk i wyszukiwaniu diagnostycznym.

Punkty do notatki:

  • [0] w tych tabelach oznacza punkt w ścieżce, w której trzeba wstawić indeks; ale to nie zawsze jest 0.
  • Czas trwania wynosi dziesiąte mikrosekundy, więc 10000000 == 1 sekunda.
  • Daty i godziny to UTC i są podane w formacie ISO yyyy-MM-DDThh:mm:ss.sssZ

Przykład

// A server report about an HTTP request
{
  "request": [
    {
      "urlData": { // derived from 'url'
        "host": "contoso.org",
        "base": "/",
        "hashTag": ""
      },
      "responseCode": 200, // Sent to client
      "success": true, // Default == responseCode<400
      // Request id becomes the operation id of child events
      "id": "fCOhCdCnZ9I=",  
      "name": "GET Home/Index",
      "count": 1, // 100% / sampling rate
      "durationMetric": {
        "value": 1046804.0, // 10000000 == 1 second
        // Currently the following fields are redundant:
        "count": 1.0,
        "min": 1046804.0,
        "max": 1046804.0,
        "stdDev": 0.0,
        "sampledValue": 1046804.0
      },
      "url": "/"
    }
  ],
  "internal": {
    "data": {
      "id": "7f156650-ef4c-11e5-8453-3f984b167d05",
      "documentVersion": "1.61"
    }
  },
  "context": {
    "device": { // client browser
      "type": "PC",
      "screenResolution": { },
      "roleInstance": "WFWEB14B.fabrikam.net"
    },
    "application": { },
    "location": { // derived from client ip
      "continent": "North America",
      "country": "United States",
      // last octagon is anonymized to 0 at portal:
      "clientip": "168.62.177.0",
      "province": "",
      "city": ""
    },
    "data": {
      "isSynthetic": true, // we identified source as a bot
      // percentage of generated data sent to portal:
      "samplingRate": 100.0,
      "eventTime": "2016-03-21T10:05:45.7334717Z" // UTC
    },
    "user": {
      "isAuthenticated": false,
      "anonId": "us-tx-sn1-azr", // bot agent id
      "anonAcquisitionDate": "0001-01-01T00:00:00Z",
      "authAcquisitionDate": "0001-01-01T00:00:00Z",
      "accountAcquisitionDate": "0001-01-01T00:00:00Z"
    },
    "operation": {
      "id": "fCOhCdCnZ9I=",
      "parentId": "fCOhCdCnZ9I=",
      "name": "GET Home/Index"
    },
    "cloud": { },
    "serverDevice": { },
    "custom": { // set by custom fields of track calls
      "dimensions": [ ],
      "metrics": [ ]
    },
    "session": {
      "id": "65504c10-44a6-489e-b9dc-94184eb00d86",
      "isFirst": true
    }
  }
}

Kontekst

Do wszystkich typów danych telemetrycznych dołączona jest sekcja kontekstu. Nie wszystkie te pola są przesyłane z każdym punktem danych.

Ścieżka Type Uwagi
context.custom.dimensions [0] object [ ] Pary ciągów klucz-wartość ustawiane przez parametr właściwości niestandardowych. Maksymalna długość klucza 100, maksymalna długość 1024 wartości. Można wyszukać więcej niż 100 unikatowych wartości, ale nie można jej użyć do segmentacji. Maksymalnie 200 kluczy na klucz ikey.
context.custom.metrics [0] object [ ] Pary klucz-wartość ustawiane przez parametr pomiarów niestandardowych i przez trackmetrics. Maksymalna długość klucza 100, wartości mogą być liczbowe.
context.data.eventTime string UTC
context.data.isSynthetic boolean Żądanie wydaje się pochodzić z bota lub testu internetowego.
context.data.samplingRate Liczba Procent telemetrii wygenerowanej przez zestaw SDK wysyłany do portalu. Zakres 0.0-100.0.
context.device obiekt Urządzenie klienckie
context.device.browser string IE, Chrome, ...
context.device.browserVersion string Chrome 48.0, ...
context.device.deviceModel string
context.device.deviceName string
context.device.id string
context.device.locale string en-GB, de-DE, ...
context.device.network string
context.device.oemName string
context.device.os string
context.device.osVersion string System operacyjny hosta
context.device.roleInstance string Identyfikator hosta serwera
context.device.roleName string
context.device.screenResolution string
context.device.type string PC, Browser, ...
context.location obiekt Pochodzi z .clientip
context.location.city string Pochodzi z clientip, jeśli jest znany
context.location.clientip string Ostatni oktagon jest anonimowy do 0.
context.location.continent string
context.location.country string
context.location.province string Województwo
context.operation.id string Elementy, które mają te same operation id elementy, są wyświetlane jako elementy pokrewne w portalu. Zazwyczaj element request id.
context.operation.name string adres URL lub nazwa żądania
context.operation.parentId string Umożliwia zagnieżdżone elementy pokrewne.
context.session.id string Id grupy operacji z tego samego źródła. Okres 30 minut bez operacji sygnalizuje koniec sesji.
context.session.isFirst boolean
context.user.accountAcquisitionDate string
context.user.accountId string
context.user.anonAcquisitionDate string
context.user.anonId string
context.user.authAcquisitionDate string Uwierzytelniony użytkownik
context.user.authId string
context.user.isAuthenticated boolean
context.user.storeRegion string
internal.data.documentVersion string
internal.data.id string Unique id jest przypisywany, gdy element jest pozyskiwany do usługi Application Insights

Zdarzenia

Zdarzenia niestandardowe generowane przez element TrackEvent().

Ścieżka Type Uwagi
liczba zdarzeń [0] integer 100/(częstotliwość próbkowania ). Na przykład 4 => 25%.
nazwa zdarzenia [0] string Nazwa zdarzenia. Maksymalna długość 250.
adres URL zdarzenia [0] string
zdarzenie [0] urlData.base string
zdarzenie [0] urlData.host string

Wyjątki

Zgłasza wyjątki na serwerze i w przeglądarce.

Ścieżka Type Uwagi
zestaw basicException [0] string
basicException [0] count integer 100/(częstotliwość próbkowania ). Na przykład 4 => 25%.
basicException [0] exceptionGroup string
basicException [0] exceptionType string
basicException [0] failedUserCodeMethod string
basicException [0] failedUserCodeAssembly string
basicException [0] handledAt string
basicException [0] hasFullStack boolean
basicException [0] id string
basicException [0], metoda string
komunikat basicException [0] string Komunikat o wyjątku. Maksymalna długość 10k.
basicException [0] outerExceptionMessage string
basicException [0] outerExceptionThrownAtAssembly string
basicException [0] outerExceptionThrownAtMethod string
basicException [0] outerExceptionType string
basicException [0] outerId string
basicException [0] parsedStack [0] zestaw string
basicException [0] parsedStack [0] fileName string
basicException [0] parsedStack [0] poziom integer
basicException [0] parsedStack [0] wiersz integer
basicException [0] parsedStack [0], metoda string
stos basicException [0] string Maksymalna długość 10 tys.
basicException [0] typeName string

Śledzenie komunikatów

Wysyłane przez element TrackTrace i przez karty rejestrowania.

Ścieżka Type Uwagi
message [0] loggerName string
parametry komunikatu [0] string
komunikat [0] nieprzetworzone string Komunikat dziennika o maksymalnej długości 10 tys.
komunikat [0] ważnośćLevel string

Zależność zdalna

Wysłane przez funkcję TrackDependency. Służy do raportowania wydajności i użycia wywołań do zależności na serwerze i wywołań AJAX w przeglądarce.

Ścieżka Type Uwagi
remoteDependency [0] async boolean
remoteDependency [0] baseName string
remoteDependency [0] commandName string Na przykład "strona główna/indeks"
remoteDependency [0] count integer 100/(częstotliwość próbkowania ). Na przykład 4 => 25%.
remoteDependency [0] dependencyTypeName string HTTP, SQL, ...
remoteDependency [0] durationMetric.value Liczba Czas od wywołania do zakończenia odpowiedzi według zależności
remoteDependency [0] id string
nazwa remoteDependency [0] string Adres URL. Maksymalna długość 250.
remoteDependency [0] resultCode string z zależności HTTP
powodzenie remoteDependency [0] boolean
typ remoteDependency [0] string Http, Sql,...
remoteDependency [0] url string Maksymalna długość 2000
remoteDependency [0] urlData.base string Maksymalna długość 2000
remoteDependency [0] urlData.hashTag string
remoteDependency [0] urlData.host string Maksymalna długość 200

Żądania

Wysłane przez trackRequest. Moduły standardowe używają tego polecenia do raportowania czasu odpowiedzi serwera mierzonego na serwerze.

Ścieżka Type Uwagi
liczba żądań [0] integer 100/(częstotliwość próbkowania ). Na przykład: 4 => 25%.
request [0] durationMetric.value Liczba Czas od żądania przychodzącego do odpowiedzi. 1e7 == 1s
żądanie [0] id string Operation id
nazwa żądania [0] string GET/POST + baza adresów URL. Maksymalna długość 250
request [0] responseCode integer Odpowiedź HTTP wysłana do klienta
żądanie [0] powodzenie boolean Default == (responseCode < 400)
żądanie [0] adres URL string Nie dołączanie hosta
żądanie [0] urlData.base string
żądanie [0] urlData.hashTag string
żądanie [0] urlData.host string

Wydajność widoku strony

Wysłane przez przeglądarkę. Mierzy czas przetwarzania strony od użytkownika inicjującego żądanie zakończenia (z wyłączeniem asynchronicznych wywołań AJAX).

Wartości kontekstowe pokazują wersję systemu operacyjnego klienta i przeglądarki.

Ścieżka Type Uwagi
clientPerformance [0] clientProcess.value integer Czas od zakończenia odbierania kodu HTML do wyświetlania strony.
clientPerformance [0] nazwa string
clientPerformance [0] networkConnection.value integer Czas potrzebny na nawiązanie połączenia sieciowego.
clientPerformance [0] receiveRequest.value integer Czas od zakończenia wysyłania żądania do otrzymania kodu HTML w odpowiedzi.
clientPerformance [0] sendRequest.value integer Czas potrzebny na wysłanie żądania HTTP.
clientPerformance [0] total.value integer Czas od rozpoczęcia wysyłania żądania do wyświetlenia strony.
clientPerformance [0] url string Adres URL tego żądania
clientPerformance [0] urlData.base string
clientPerformance [0] urlData.hashTag string
clientPerformance [0] urlData.host string
clientPerformance [0] urlData.protocol string

Widoki stron

Wysłane przez trackPageView() lub stopTrackPage

Ścieżka Type Uwagi
view [0] count integer 100/(częstotliwość próbkowania ). Na przykład 4 => 25%.
view [0] durationMetric.value integer Wartość opcjonalnie ustawiona w elemecie trackPageView() lub za pomocą właściwości startTrackPage() — stopTrackPage(). Nie takie same jak wartości clientPerformance.
view [0] name (nazwa widoku [0] string Tytuł strony. Maksymalna długość 250
view [0] url string
view [0] urlData.base string
view [0] urlData.hashTag string
view [0] urlData.host string

Dostępność

Raportuje testy sieci Web dostępności.

Ścieżka Type Uwagi
availability [0] availabilityMetric.name string availability
availability [0] availabilityMetric.value Liczba 1.0 lub 0.0
dostępność [0] liczba integer 100/(częstotliwość próbkowania ). Na przykład 4 => 25%.
availability [0] dataSizeMetric.name string
availability [0] dataSizeMetric.value integer
availability [0] durationMetric.name string
availability [0] durationMetric.value Liczba Czas trwania testu. 1e7==1s
komunikat o dostępności [0] string Diagnostyka niepowodzeń
dostępność [0] wynik string Przekazywanie/niepowodzenie
availability [0] runLocation string Źródło geograficzne http req
availability [0] testName string
availability [0] testRunId string
availability [0] testTimestamp string

Metryki

Wygenerowane przez trackmetric().

Wartość metryki znajduje się w pliku context.custom.metrics[0]

Na przykład:

{
  "metric": [ ],
  "context": {
  ...
    "custom": {
      "dimensions": [
        { "ProcessId": "4068" }
      ],
      "metrics": [
        {
          "dispatchRate": {
            "value": 0.001295,
            "count": 1.0,
            "min": 0.001295,
            "max": 0.001295,
            "stdDev": 0.0,
            "sampledValue": 0.001295,
            "sum": 0.001295
          }
        }
      ]  
    }
  }
}

Informacje o wartościach metryk

Wartości metryk, zarówno w raportach metryk, jak i w innych miejscach, są raportowane ze standardową strukturą obiektów. Na przykład:

"durationMetric": {
  "name": "contoso.org",
  "type": "Aggregation",
  "value": 468.71603053650279,
  "count": 1.0,
  "min": 468.71603053650279,
  "max": 468.71603053650279,
  "stdDev": 0.0,
  "sampledValue": 468.71603053650279
}

Obecnie — choć może to ulec zmianie w przyszłości — we wszystkich wartościach zgłoszonych ze standardowych modułów count==1 zestawu SDK, a tylko name pola i value są przydatne. Jedynym przypadkiem, w którym byłyby one inne, byłoby napisanie własnych wywołań TrackMetric, w których ustawiono inne parametry.

Celem innych pól jest umożliwienie agregowania metryk w zestawie SDK w celu zmniejszenia ruchu do portalu. Można na przykład średnią kilku kolejnych odczytów przed wysłaniem każdego raportu metryk. Następnie obliczysz minimalną, maksymalną, odchylenie standardowe i wartość agregowaną (sumę lub średnią) i ustawisz liczbę odczytów reprezentowanych przez raport.

W powyższych tabelach pominięto rzadko używane pola count, min, max, stdDev i sampledValue.

Zamiast agregować wstępnie metryki, możesz użyć próbkowania , jeśli musisz zmniejszyć ilość danych telemetrycznych.

Czas trwania

Z wyjątkiem przypadków, w których nie określono inaczej, czasy trwania są reprezentowane w dziesiątych mikrosekundach, tak aby 100000000,0 oznaczało 1 sekundę.

Zobacz też