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
- 29 lutego 2024 r. eksport ciągły zostanie wycofany w ramach wycofania klasycznej usługi Application Insights.
- 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.
- Eksportowanie 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 przenoszenie tabel i wykresów do arkusza kalkulacyjnego programu Excel.
- Usługa Log Analytics udostępnia zaawansowany język zapytań na potrzeby 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 programowy dostęp do telemetrii.
- Możesz również uzyskać dostęp do konfiguracji eksportu ciągłego za pośrednictwem programu PowerShell.
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:
- Używanie zapór usługi Azure Virtual Network/Azure Storage z Azure Blob Storage.
- Azure Data Lake Storage Gen2.
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.
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 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.
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.
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
\n
wierszy 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>.
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:
- Eksportowanie do bazy danych SQL przy użyciu usługi Stream Analytics
- Przykład usługi Stream Analytics 2
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
- 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 i wartości właściwości
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:
- Włącz ustawienia diagnostyczne w klasycznej usłudze Application Insights.
- Skonfiguruj eksport danych: wybierz pozycję Ustawienia> diagnostyczneDodaj ustawienie diagnostyczne z poziomu zasobu usługi Application Insights.
- 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ę.