Eksportowanie telemetrii z usługi Application Insights

Czy chcesz przechowywać dane telemetryczne dłużej 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

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

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

Obsługiwane regiony

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

  • Southeast Asia
  • Kanada Środkowa
  • Indie Środkowe
  • 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 wyeksportować więcej niż 3 TB danych dziennie. Jeśli eksportowane jest 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 magazyn.

    Ostrzeżenie

    Domyślnie lokalizacja magazynu zostanie ustawiona na ten sam region geograficzny co zasób usługi Application Insights. W przypadku przechowywania w innym regionie mogą być naliczane opłaty za transfer.

  4. Utwórz lub wybierz kontener w magazynie.

Uwaga

Po utworzeniu eksportu nowo pozyskane dane zaczną przepływać do 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 wstecznego 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 Opis
Dostępność Raporty testów dostępności sieci Web.
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 uruchomiony ponownie z nowymi danymi. Nie otrzymasz danych, które dotarły do portalu, gdy eksport został wyłączony.

Aby zatrzymać eksport na stałe, 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 jest obliczana ś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 następnie na stronie Przegląd wybierz pozycję Obiektyblobusług>. 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 łączniki.

Zrzut ekranu przedstawiający inspekcję magazynu obiektów blob za pomocą 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 będziemy już zapewniać aktualizacji ani obsługi funkcji. Przejście do parametrów połączenia w celu skorzystania z nowych możliwości.

Data i godzina to UTC i czas, w których dane telemetryczne zostały zdeponowane w sklepie, a nie czas jego wygenerowania. Z tego powodu, jeśli napiszesz kod do pobrania danych, może on poruszać się 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 jest plikiem tekstowym zawierającym wiele \nwierszy rozdzielonych. Zawiera on 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 formatuzaawansowanego>.

    Zrzut ekranu przedstawiający wyświetlanie telemetrii 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 na wysłanie żądania z przeglądarki, 3 ms do odebrania, a 1,8 s do przetworzenia strony w przeglądarce:

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

Aby uzyskać szczegółową dokumentację modelu danych dla typów właściwości i wartości, zobacz Application Insights export data model (Eksportowanie modelu danych w usłudze Application Insights).

Przetwarzanie danych

Na małą skalę możesz napisać kod, aby rozciągnąć dane i odczytać je do arkusza kalkulacyjnego. 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 uzyskać większy przykład kodu, zobacz Korzystanie z 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śćEksportuj miejsce docelowe , ale pozostaw wybrany ten sam magazyn. Wybierz przycisk OK, aby potwierdzić.

Eksport ciągły zostanie uruchomiony ponownie.

Eksportowanie przykładów

Aby uzyskać przykłady eksportu, zobacz:

W przypadku większych skali rozważ klastry usługi HDInsight Hadoop 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 często zadawane 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 magazynie nie ma żadnych danych?

Czy usługa Application Insights odebrała 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ą twojej organizacji, musisz być członkiem grup Właściciele lub Współautorzy.

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

Nie. Obecnie nasz aparat eksportu działa tylko z usługą Azure Storage.

Czy istnieje jakiś limit ilości danych w moim sklepie?

Nie. Będziemy wypychać 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. Dowiesz się, ile miejsca do magazynowania używasz.

Ile obiektów blob powinno być widocznych 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?

Zmodyfikuj 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 nastąpiła w ciągu ostatnich kilku dni, nie utracisz danych.

Czy mogę wstrzymać eksport?

Tak. Wybierz pozycję Wyłącz.

Przykłady kodu

Eksportowanie oparte na ustawieniach diagnostycznych

Eksportowanie ustawień diagnostycznych jest preferowane, ponieważ udostępnia dodatkowe funkcje:

  • Konta usługi Azure Storage z sieciami wirtualnymi, zaporami i linkami prywatnymi.
  • Eksportuj do 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 z powodu zwiększenia 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. Skonfiguruj eksport danych: wybierz pozycję Ustawienia> diagnostyczneDodaj ustawienie diagnostyczne z poziomu zasobu usługi Application Insights.
  3. Sprawdź, czy nowy eksport danych jest skonfigurowany tak samo jak eksport ciągły

Przestroga

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.

Model eksportu danych usługi Application Insights

Ta tabela zawiera listę właściwości telemetrii 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.

Kwestie, na które należy zwrócić uwagę:

  • [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ąty mikrosekund, 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 telemetrii dołączona jest sekcja kontekstu. Nie wszystkie te pola są przesyłane z każdym punktem danych.

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

Zdarzenia

Zdarzenia niestandardowe generowane przez element TrackEvent().

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

Wyjątki

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

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

Śledzenie komunikatów

Wysyłane przez element TrackTrace i przez karty rejestrowania.

Ścieżka Typ Uwagi
message [0] loggerName ciąg
parametry komunikatu [0] ciąg
komunikat [0] nieprzetworzone ciąg Komunikat dziennika o maksymalnej długości 10 tys.
message [0] severityLevel ciąg

Zależność zdalna

Wysłane przez 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 Typ Uwagi
remoteDependency [0] async boolean
remoteDependency [0] baseName ciąg
remoteDependency [0] commandName ciąg Na przykład "home/index"
remoteDependency [0] count liczba całkowita 100/(częstotliwość próbkowania ). Na przykład 4 => 25%.
remoteDependency [0] dependencyTypeName ciąg HTTP, SQL, ...
remoteDependency [0] durationMetric.value liczba Czas od wywołania do zakończenia odpowiedzi według zależności
remoteDependency [0] id ciąg
remoteDependency [0] name ciąg Adres url. Maksymalna długość 250.
remoteDependency [0] resultCode ciąg z zależności HTTP
powodzenie remoteDependency [0] boolean
remoteDependency [0] typ ciąg Http, Sql,...
remoteDependency [0] url ciąg Maksymalna długość 2000
remoteDependency [0] urlData.base ciąg Maksymalna długość 2000
remoteDependency [0] urlData.hashTag ciąg
remoteDependency [0] urlData.host ciąg Maksymalna długość 200

Żądania

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

Ścieżka Typ Uwagi
liczba żądań [0] liczba całkowita 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 ciąg Operation id
nazwa żądania [0] ciąg GET/POST + baza adresów URL. Maksymalna długość 250
request [0] responseCode liczba całkowita Odpowiedź HTTP wysłana do klienta
żądanie [0] — powodzenie boolean Default == (responseCode < 400)
adres URL żądania [0] ciąg Brak dołączania hosta
żądanie [0] urlData.base ciąg
request [0] urlData.hashTag ciąg
żądanie [0] urlData.host ciąg

Wydajność widoku strony

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

Wartości kontekstowe pokazują system operacyjny klienta i wersję przeglądarki.

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

Wyświetlenia strony

Wysłane przez trackPageView() lub stopTrackPage

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

Dostępność

Raporty testów dostępności sieci Web.

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

Metryki

Generowane 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 z modułów count==1 standardowego zestawu SDK, a tylko name pola i value są przydatne. Jedynym przypadkiem, w którym byłyby one inne, byłoby pisanie własnych wywołań TrackMetric, w których ustawisz 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ść zagregowaną (sumę lub średnią) i ustawisz liczbę odczytów reprezentowanych przez raport.

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

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

Czas trwania

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

Zobacz też