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:
- Korzystanie z zapór usługi Azure Virtual Network/Azure Storage z usługą Azure Blob Storage.
- Azure Data Lake Storage Gen2.
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.
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.
Wybierz typy danych telemetrycznych, które chcesz wyeksportować.
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.
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.
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
\n
rozdzielonych 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.>
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:
- Eksportowanie do bazy danych SQL przy użyciu usługi Stream Analytics
- Przykład usługi Stream Analytics 2
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
- Przykład usługi Stream Analytics
- Eksportowanie do bazy danych SQL przy użyciu usługi Stream Analytics
- Szczegółowa dokumentacja modelu danych dla typów właściwości i wartości
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:
- Włącz ustawienia diagnostyczne w klasycznej usłudze Application Insights.
- Konfigurowanie eksportu danych: wybierz pozycję Ustawienia>diagnostyczne Dodaj ustawienie diagnostyczne z poziomu zasobu usługi Application Insights.
- 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ę.