Udostępnij za pośrednictwem


Analizowanie dzienników wygenerowanych przez system przy użyciu programu Application Insights

Połącz aplikację z Application Insights, funkcją Azure Monitor. Application Insights Zawiera narzędzia analityczne, które pomagają diagnozować problemy i analizować zachowania użytkowników w aplikacjach. Wykorzystaj zebrane informacje, aby podejmować lepsze decyzje biznesowe i poprawiać jakość aplikacji.

Wymagania wstępne

Notatka

Aby wyświetlić informacje telemetryczne, administrator dzierżawy musi włączyć Analizy aplikacji typu kanwa. Zaloguj się jako administrator w Centrum administracyjnym Power Platform. Wybierz pozycję Ustawienia>Ustawienia dzierżawy>Analizy aplikacji typu kanwa. W okienku insights aplikacji Canvas, włącz przełącznik Na i zapisz zmiany. Dowiedz się więcej o ustawieniach dzierżawy.

Utwórz zasób Application Insights

Wysyłanie dzienników generowanych przez system z aplikacji, tworząc Application Insights zasób do przechowywania zdarzeń.

Więcej informacji: Utwórz zasób oparty na obszarze roboczym dla usługi Application Insights w witrynie Azure Portal.

Połącz swoją aplikację z Application Insights

Notatka

  • Określając parametry połączenia, należy pamiętać, że dane mogą być wysyłane między dzierżawami. Zdarzenia śledzenia są wysyłane do zasobu usługi App Insights, który odpowiada parametrom połączenia ustawionym dla aplikacji, nawet jeśli docelowe wystąpienie usługi App Insights znajduje się w innej dzierżawie niż aplikacja.
  • Należy zachować ostrożność podczas importowania istniejących plików msapp, ponieważ mogą być obecne parametry połączenia dla usługi App Insights. Ręcznie otwórz aplikację po zaimportowaniu, aby sprawdzić, czy są używane poprawne parametry połączenia usługi App Insights.
  1. Zaloguj się do usługi Power Apps.

  2. Otwórz aplikację do edycji.

  3. Wybierz obiekt App w lewym widoku drzewa nawigacji i wklej ciąg Połączenia z zasobu Application Insights.

    Zrzut ekranu przedstawiający dodawanie parametrów połączenia.

  4. Zapisz i Opublikuj aplikację.

  5. Odtwórz opublikowaną aplikację, aby przeglądać różne ekrany.

Podczas przeglądania ekranów aplikacji zdarzenia są automatycznie rejestrowane do Application Insights. Obejmują one szczegóły użytkowania, takie jak:

  • Skąd jest uzyskiwany dostęp użytkowników do aplikacji
  • Urządzenia, z których korzystają użytkownicy
  • Rodzaje przeglądarek, z których korzystają użytkownicy

Ważne

Odtwórz opublikowaną aplikację, aby wysyłać zdarzenia do Application Insights. Zdarzenia nie są wysyłane do Application Insights, kiedy dokonujesz podglądu aplikacji w Power Apps Studio.

Wyświetl wydarzeń w Application Insights

  1. Zaloguj się w Portalu Azure i otwórz zasób Application Insights utworzony wcześniej.

  2. W lewym okienku nawigacji wybierz Użytkownicy w sekcji Użycie.

    Notatka

    W widoku Użytkownicy są wyświetlane szczegóły dotyczące korzystania z aplikacji, takie jak:

    • Liczba użytkowników, którzy odwiedzili aplikację
    • Liczba sesji użytkownika
    • Liczba zdarzeń logowania
    • Systemy operacyjne użytkowników i szczegóły dotyczące wersji przeglądarki
    • Region i lokalizacja użytkowników

    Dowiedz się więcej o użytkownikach, sesjach i analizach zdarzeń w aplikacji Application Insights.

  3. Wybierz sesję użytkownika, aby wyświetlić określone szczegóły, takie jak długość sesji i odwiedzone ekrany.

    Zrzut ekranu przedstawiający szczegóły użycia użytkowników.

  4. W lewym okienku nawigacji wybierz Wydarzenia w sekcji Użycie. Istnieje możliwość wyświetlenia podsumowania wszystkich ekranów wyświetlanych we wszystkich sesjach aplikacji.

    Zrzut ekranu przedstawiający szczegóły zdarzenia w aplikacji.

Wskazówka

Poznaj więcej Application Insights funkcji, takich jak:

Tworzenie niestandardowych zdarzeń śledzenia

Zapisz niestandardowe ślady, aby Application Insights przeanalizować informacje specyficzne dla Twojej aplikacji. Funkcja Śledzenie umożliwia zbieranie danych:

  • Szczegółowe informacje na temat zastosowania kontrolek na ekranach
  • Użytkownicy uzyskujący dostęp do Twojej aplikacji
  • Błędów, które wystąpiły

Śledzenie pomaga diagnozować problemy, wysyłając ślad informacji, gdy użytkownicy przeglądają aplikację i podejmują działania. Komunikaty funkcji Śledzenie wysyłane do Application Insights mają trzy poziomy priorytetu:

  • Informacja
  • Ostrzeżenie
  • Error

Wyślij wiadomość śledzenia o odpowiedniej poważności w zależności od sytuacji. Można także zadawać kwerendy dotyczące danych i podjąć określone działania w zależności od priorytetu.

Notatka

W przypadku rejestrowania jakichkolwiek danych osobowych należy pamiętać o swoich zobowiązaniach w odniesieniu do różnych przepisów ustawowych i dotyczących ochrony prywatności. Więcej informacji można znaleźć w Centrum zaufania firmy Microsoft i Portalu zaufania usług.

Utwórz składnik w aplikacji, aby zbierać opinie na temat każdego ekranu i rejestrować Application Insights zdarzenia.

  1. Zaloguj się do usługi Power Apps.

  2. W lewym okienku nawigacji wybierz Aplikacje. Z listy aplikacji wybierz aplikację Kudos, a następnie wybierz pozycję Edytuj.

    Notatka

    Możesz także utworzyć nową aplikację lub edytować istniejącą.

  3. Wybierz Komponenty w Widok drzewa.

    Składniki.

  4. Zaznacz opcję Nowy składnik, a następnie zmień szerokość na 200 i wysokość na 75:

    Wysokość i szerokość.

  5. Z menu wybierz polecenie Wstaw, a następnie wybierz Ikony, aby dodać znak Emoji - niezadowolenia i Emoji - uśmiech:

    Dodawanie ikon.

  6. Wybierz Nową właściwość niestandardową, aby utworzyć właściwość niestandardową:

    Utwórz niestandardową właściwość.

  7. Wprowadź Nazwę właściwości i Wyświetlana nazwa (na przykład FeedbackSceen).

  8. Wprowadź Opis właściwości.

  9. Wybierz Typ właściwości jako Dane wejściowe i Typ danych jako Ekran:

    Właściwość niestandardowa.

    Notatka

    Właściwość danych wejściowych umożliwia zarejestrowanie nazwy ekranu i jego składnika, tak aby można było zarejestrować te informacje w Application Insights.

  10. Wybierz składnik w Widoku drzewa, wybierz Więcej akcji (...), a następnie wybierz pozycję Zmień nazwę, aby zmienić nazwę składnika o nazwę znaczącą, na przykład FeedbackComponent.

    Zmiana nazw składników i ikon.

  11. Wybierz ikony, wybierz pozycję Więcej akcji (...), a następnie wybierz pozycję Zmień nazwę, aby zmienić nazwy ikon z znaczącymi nazwami, takimi jak Niezadowolonaikona i Uśmiechniętaikona.

  12. Wybierz opcję Niezadowolonaikona, wybierz właściwość OnSelect, a następnie wprowadź następujące wyrażenie na pasku formuł:

    Trace(
       "App Feedback",
       TraceSeverity.Information,
           {
             UserName: User().FullName,
             UserEmail: User().Email,
             Screen: FeedbackComponent.FeedbackScreen.Name,
             FeedbackValue: "-1"
           }
         );
    Notify("Thanks for your feedback!");
    

    Formuła ikony niezadowolonej.

    Notatka

    W wyrażeniu formuły jest wysyłana NazwaUżytkownika, EmailUżytkownika, Ekran i Informacje zwrotne (o wartości -1) do Application Insights.

  13. Wybierz opcję Uśmiechniętaikona, wybierz właściwość OnSelect, a następnie wprowadź następujące wyrażenie na pasku formuł:

    Trace(
       "App Feedback",
       TraceSeverity.Information,
           {
             UserName: User().FullName,
             UserEmail: User().Email,
             Screen: FeedbackComponent.FeedbackScreen.Name,
             FeebackValue: "1"
           }
         );
    Notify("Thanks for your feedback!");
    
  14. Dodaj składnik do jednego z ekranów w aplikacji:

    Dodaj składnik opinii.

  15. Wybierz pozycję Zapisz, a następnie pozycję Opublikuj, aby zapisać i opublikować swoją aplikację.

  16. Odtwórz opublikowaną aplikację i za pomocą ekranów wyślij opinie poprzez ikony uśmiechu i niezadowolenia.

    Ważne

    Należy odtworzyć opublikowaną aplikację, aby wysyłać zdarzenia do Application Insights. Zdarzenia nie są wysyłane do Application Insights, kiedy dokonujesz podglądu aplikacji w Power Apps Studio.

    Odtwarzanie opublikowanej aplikacji.

Analiza danych niestandardowych w Application Insights

Teraz można rozpocząć analizowanie danych wysłanych przy użyciu funkcji Śledzenia w aplikacji w Application Insights.

  1. Zaloguj się w Portalu Azure i otwórz zasób utworzony wcześniej.

    Wybierz pozycję Application Insights.

  2. W lewym okienku nawigacyjnym wybierz Dzienniki w obszarze Monitorowanie.

    Wybierz Dzienniki.

  3. Wprowadź następujące zapytanie i wybierz pozycję Uruchom , aby wyświetlić opinię z aplikacji:

    traces
    | where message == "App Feedback"
    | order by timestamp
    

    Wyświetl opinie o aplikacji.

  4. Zaznacz wiersz w wynikach i rozwiń pole customDimensions.

    W programie zarejestrowano wartości dla Ekranu, NazwaUzytkownika, EmailUżytkownika i WartośćOpinii dla zdarzenia OnSelect ikony uśmiechu lub niezadowolenia w składniku. Wartości są również rejestrowane dla każdego zdarzenia wysyłanego do Application Insights, takiego jak appId, appName i appSessionId.

    Rozwijanie wymiarów niestandardowych.

  5. Korzystając z poniższego przykładu zapytania, można rozszerzyć właściwości niestandardowych wymiarów notacji JSON i projektów kolumn w widoku wyników.

    traces
        | extend customdims = parse_json(customDimensions)
        | where message == "App Feedback"
        | project timestamp
            , message
            , AppName = customdims.['ms-appName']
            , AppId = customdims.['ms-appId']
            , FeedbackFrom = customdims.UserEmail
            , Screen = customdims.Screen
            , FeedbackValue = customdims.FeedbackValue
        | order by timestamp desc
    

    Rozszerz zapytanie customDimensions.

    Wskazówka

    Zapytania dziennika są wyjątkowo wydajne. Można z nich korzystać w celu dołączenia do wielu tabel, zagregowania dużej ilości danych i wykonania złożonych operacji. Dowiedz się więcej o rejestrowaniu zapytań.

Analizowanie danych cyklu życia aplikacji w usłudze Application Insights

Zdarzenie podsumowania sesji jest rejestrowane raz na sesję i zawiera informacje o powodzeniu otwarcia aplikacji, optymalnych i nieoptymalnych sesjach otwarcia aplikacji oraz metrykach wydajności otwarć aplikacji.

Limity

Te zdarzenia są prawidłowe w przypadku aplikacji kanwa działających w przeglądarce internetowej. Nie są one dostępne w przypadku aplikacji działających na Power Apps urządzeniach mobilnych, a ich wartości mogą nie zawsze być dostępne lub dokładne w przypadku stron niestandardowych.

Oto przykładowe zapytanie pokazujące, jak uzyskać dostęp do zdarzenia podsumowania sesji i wszystkich dostępnych pól:

customEvents 
| where name == "PowerAppsClient.PublishedApp.SessionLoadSummary" 
// 
| extend cd = parse_json(customDimensions) 
// 
| extend sessionSummary = parse_json(tostring(cd["ms-sessionSummary"])) 
| extend successfulAppLaunch = tobool(sessionSummary["successfulAppLaunch"]) 
| extend unsuccessfulReason = tostring(sessionSummary["unsuccessfulReason"]) 
| extend appLoadResult = tostring(sessionSummary["appLoadResult"]) 
| extend appLoadNonOptimalReason = 
tostring(sessionSummary["appLoadNonOptimalReason"]) 
// 
| extend timeToAppInteractive = todouble(sessionSummary["timeToAppInteractive"]) 
| extend timeToAppFullLoad = todouble(sessionSummary["timeToAppFullLoad"]) 
// 
| project 
    timestamp, 
    session_Id, 
    successfulAppLaunch, 
    unsuccessfulReason, 
    appLoadResult, 
    appLoadNonOptimalReason, 
    timeToAppInteractive, 
    timeToAppFullLoad 
| limit 5 

Poniższe pola ułatwiają mierzenie powodzenia otwarcia aplikacji i opóźnienia znaczników wydajności powiązanych ze środowiskami użytkownika końcowego.

Pole Podpis
successfulAppLaunch Wartość logiczna wskazująca, czy sesja pomyślnie uruchomiła aplikację
unsuccessfulReason (przyczyna niepowodzenia) Jeśli sesja nie uruchomiła aplikacji, wskazuje to przyczynę/błąd. To pole będzie pustym ciągiem, jeśli sesja zakończyła się pomyślnie.
appLoadResult (Wynik załadunku) Wskazuje, czy sesja była optymalna, czy nie. Możliwe wartości: optymalna, inna
appLoadNonOptimalReason Jeśli sesja nie była optymalna, wskazuje to przyczynę. Możliwe wartości: wymagana-interakcja, ograniczony, ekran-znavigowany-z-dala, inne
timeToAppInteractive Czas trwania (w milisekundach), przez który sesja aplikacji osiąga stan interakcyjny. W tym stanie użytkownicy mogą rozpocząć interakcję z pierwszym ekranem, ale dane mogą nie zostać w pełni załadowane.
timeToAppFullLoad Czas trwania (w milisekundach), po którym sesja aplikacji osiąga stan pełnego załadowania, w którym wszystkie żądania danych dla pierwszego ekranu zostały zakończone.

Przykładowe zapytania

Współczynnik sukcesów otwierania aplikacji

To zapytanie pokaże współczynnik powodzenia otwarć aplikacji według dnia. Można to wykorzystać do oceny skoków lub trendów problemów, które mogą napotkać użytkownicy

customEvents 
| where name == "PowerAppsClient.PublishedApp.SessionLoadSummary" 
| extend cd = parse_json(customDimensions) 
| extend sessionSummary = parse_json(tostring(cd["ms-sessionSummary"])) 
| extend successfulAppLaunch = tobool(sessionSummary["successfulAppLaunch"]) 
| summarize 
sessions_total = dcount(session_Id), 
sessions_success = dcountif(session_Id, successfulAppLaunch == true) 
by bin(timestamp, 1d) 
| extend successRate =  
100.0 * (todouble(sessions_success) / todouble(sessions_total)) 
| project timestamp, successRate 
| render timechart

Liczba nieudanych sesji według przyczyny

To zapytanie pokaże liczbę nieudanych sesji według przyczyny/błędu. Może to służyć do debugowania błędów otwierania aplikacji lub oceny trendów problemów, które mogą napotkać użytkownicy.

customEvents 
| where name == "PowerAppsClient.PublishedApp.SessionLoadSummary" 
| extend cd = parse_json(customDimensions) 
| extend sessionSummary = parse_json(tostring(cd["ms-sessionSummary"])) 
| extend successfulAppLaunch = tobool(sessionSummary["successfulAppLaunch"]) 
| extend unsuccessfulReason = tostring(sessionSummary["unsuccessfulReason"]) 
| where successfulAppLaunch == false 
| summarize 
count() 
by unsuccessfulReason, bin(timestamp, 1d) 
| render timechart

Wynik otwarcia aplikacji

To zapytanie pokaże metryki wydajności otwierania aplikacji według dnia. Można to wykorzystać do oceny trendów wydajności w czasie lub po wprowadzeniu zmian. Zalecamy:

  1. Użycie 75. percentyla pól timeToAppInteractive i timeToAppFullLoad w celu uniknięcia szumu powodowanego przez wartości odstające.
  2. Filtrowanie tylko do optymalnych sesji, aby uniknąć szumu w danych spowodowanego oczekiwanymi przypadkami, takimi jak sesje z interakcją użytkownika, sesje, w których aplikacja została załadowana na karcie w tle itp.
customEvents 
| where name == "PowerAppsClient.PublishedApp.SessionLoadSummary" 
| extend cd = parse_json(customDimensions) 
| extend sessionSummary = parse_json(tostring(cd["ms-sessionSummary"])) 
| extend appLoadResult = tostring(sessionSummary["appLoadResult"]) 
| extend timeToAppInteractive = todouble(sessionSummary["timeToAppInteractive"]) 
| extend timeToAppFullLoad = todouble(sessionSummary["timeToAppFullLoad"]) 
| where appLoadResult == "optimal" 
| summarize 
percentile(timeToAppInteractive, 75), 
percentile(timeToAppFullLoad, 75) 
by bin(timestamp, 1d) 
| render timechart

Stan ładowania aplikacji podczas wywołań HTTP

Istnieje nowy nagłówek żądania x-ms-app-load-state, który wskazuje, czy wywołanie HTTP przyczyniło się do uruchomienia aplikacji. W szczególności można to wykorzystać do określenia, które wywołania HTTP wpłynęły na timeToAppFullLoad powyżej.

Nagłówek może mieć jedną z dwóch wartości:

Wartość Podpis
TTFL Wskazuje, że żądanie przyczyniło się do timeToAppFullLoad
Po TTFL Wskazuje, że żądanie nie przyczyniło się do timeToAppFullLoad

Oto przykładowe zapytanie pokazujące, jak uzyskać dostęp do wartości nagłówka i rzutować ją w kolumnie appLoadState:

dependencies 
| extend cd = parse_json(customDimensions) 
| extend requestHeaders = parse_json(tostring(cd["requestHeaders"])) 
| extend appLoadState = tostring(requestHeaders["x-ms-app-load-state"]) 
| project timestamp, session_Id, appLoadState, name, duration 
| limit 5

Liczba wywołań HTTP przyczyniających się do pełnego obciążenia

To zapytanie pokaże średnią liczbę wywołań HTTP, które przyczyniają się do czasu do pełnego załadowania aplikacji w ciągu dnia. Można to wykorzystać do oceny liczby wywołań wykonywanych przez aplikację podczas uruchamiania, które mogą przyczyniać się do niskiej wydajności.

dependencies 
| extend cd = parse_json(customDimensions) 
| extend requestHeaders = parse_json(tostring(cd["requestHeaders"])) 
| extend appLoadState = tostring(requestHeaders["x-ms-app-load-state"]) 
| where appLoadState == "TTFL" 
| summarize httpCalls = count() by session_Id, bin(timestamp, 1d) 
| summarize avg(httpCalls) by timestamp 
| render timechart

Czas trwania wywołań HTTP przyczyniających się do pełnego obciążenia

To zapytanie pokaże całkowity czas trwania HTTP, które przyczyniają się do czasu do pełnego załadowania aplikacji w ciągu dnia. Można to wykorzystać do oceny ogólnego wpływu wywołań HTTP na wydajność uruchamiania aplikacji.

dependencies 
| extend cd = parse_json(customDimensions) 
| extend requestHeaders = parse_json(tostring(cd["requestHeaders"])) 
| extend appLoadState = tostring(requestHeaders["x-ms-app-load-state"]) 
| where appLoadState == "TTFL" 
| summarize httpCallDuration = sum(duration) by session_Id, bin(timestamp, 1d) 
| summarize percentile(httpCallDuration, 80) by timestamp 
| render timechart

Czas trwania wywołań HTTP przyczyniających się do pełnego ładowania według adresu URL

Podobnie jak powyżej, to zapytanie pokaże liczbę i czas trwania wywołań HTTP przyczyniających się do timeToAppFulLoad według adresu URL. Można to wykorzystać do zidentyfikowania określonych powolnych wywołań HTTP, które mają wpływ na wydajność uruchamiania aplikacji.

dependencies 
| extend cd = parse_json(customDimensions) 
| extend requestHeaders = parse_json(tostring(cd["requestHeaders"])) 
| extend appLoadState = tostring(requestHeaders["x-ms-app-load-state"]) 
| where appLoadState == "TTFL" 
| summarize 
count(), percentile(duration, 80) by name

Monitoruj nieobsłużone błędy (eksperymentalne)

[Ta sekcja zawiera dokumentację przedpremierową i może ulec zmianie.]

Ważne

  • To jest funkcja objęta programem eksperymentalnym.
  • Funkcje w wersji eksperymentalnej nie są przeznaczone do użytku w środowiskach produkcyjnych i mogą mieć ograniczoną funkcjonalność. Te funkcje są udostępniane przed oficjalnym wydaniem, dzięki czemu klienci mogą szybciej uzyskać do nich dostęp i przekazać opinie na ich temat.

Nie zawsze można przewidzieć lub zaplanować każdy błąd, który może wystąpić podczas działania aplikacji. Nieobsługiwane błędy formuł Power Fx są raportowane użytkownikom jako komunikaty banneru. Można je też zgłaszać, aby Application Insights pokazać ich częstotliwość i wagę bez konieczności zgłaszania problemów przez użytkowników aplikacji. Można również skonfigurować alerty w czasie rzeczywistym gdy wystąpią błędy w czasie wykonywania, aby zająć się bardziej aktywnym podejściem.

Włącz przekazywanie błędów do Application Insights

Włącz ustawienie, które pozwala Power Apps przekazywać nieobsługiwane błędy środowiska uruchomieniowego do Azure Application Insights.

Ostrzeżenie

Włączenie ustawienia Przekaż błędy do Azure Application Insights może wiązać się z dodatkowymi kosztami przechowywania Application Insights dzienników.

  1. Otwórz do edycji aplikację kanwy.
  2. Wybierz pozycję Ustawienia>Aktualizacje>eksperymentalne i włącz opcję Przekaż błędy do Azure Application Insights.
  3. Zapisz i opublikuj swoją aplikację.

Błędy wydarzeń w Application Insights

Nieobsłużone Power Fx błędy, które użytkownicy napotykają w czasie wykonywania aplikacji, są zgłaszane do tabeli traces . Nieobsłużone błędy można zidentyfikować i odróżnić od innych zdarzeń błędu za pomocą komunikatu o zdarzeniu "Nieobsłużony błąd". Wymiar "severityLevel" tych zdarzeń to 3 (TraceSeverity.Error).

Szczegółowe komunikaty o błędach są dostępne w wymiarze „błędy” właściwości customDimension. W sytuacjach, gdy podczas tej samej operacji wystąpiło wiele błędów, błędy te są skonsolidowane jako liczba „błędów” pojedynczego zdarzenia śledzenia. Komunikaty o błędach są zgodne z komunikatami zgłaszanymi w monitorze podczas sesji debugowania na żywo.

To przykładowe zapytanie identyfikuje nieobsługiwane błędy i rozwija wszystkie komunikaty o błędach w zdarzeniu śledzenia:

traces
    | where message == "Unhandled error"
    | extend customdims = parse_json(customDimensions)
    | extend errors = parse_json(tostring(customdims.['errors']))
    | mv-expand errors
    | project timestamp
        , itemId //unique identifier for the trace event
        , AppName = customdims.['ms-appName']
        , AppId = customdims.['ms-appId']
        , errors = errors.['Message']
    | order by timestamp desc

Zrzut ekranu przedstawiający przykładowe dane wyjściowe dla przykładowego zapytania.

Śledzenie korelacji (eksperymentalne)

[Ta sekcja zawiera dokumentację przedpremierową i może ulec zmianie.]

Ważne

  • To jest funkcja objęta programem eksperymentalnym.
  • Funkcje w wersji eksperymentalnej nie są przeznaczone do użytku w środowiskach produkcyjnych i mogą mieć ograniczoną funkcjonalność. Te funkcje są udostępniane przed oficjalnym wydaniem, dzięki czemu klienci mogą szybciej uzyskać do nich dostęp i przekazać opinie na ich temat.

Połączenie z zewnętrznymi danymi i usługami jest niezbędne w przypadku większości aplikacji. Śledzenie korelacji generuje i propaguje informacje kontekstowe w celu połączenia dzienników generowanych przez system w usłudze aplikacja kanwy i jej połączeniach , z zastrzeżeniem pewnychograniczeń. Na przykład aplikacja może wywołać łącznik niestandardowy, który następnie wywołuje funkcję Azure lub inny interfejs API REST. Śledzenie korelacji umożliwia korelowanie akcji podjętych w aplikacji z podstawowymi wywołaniami interfejsów API w poszczególnych warstwach. Jest to przydatne do rozwiązywania problemów.

Aplikacja kanwy śledzenie korelacji implementuje śledzenie kontekstu i jest zgodne ze specyfikacją W3C.

Włącz śledzenie korelacji

Ostrzeżenie

Włączenie tego ustawienia może wiązać się z dodatkowymi kosztami związanymi z przechowywaniem Application Insights dzienników.

  1. Aby włączyć śledzenie korelacji, otwórz aplikację canvas do edycji.
  2. Wybierz Ustawienia>Aktualizacje>Experimental> i włącz opcję Włącz śledzenie Application Insights korelacji Azure.
  3. Zapisywanie i publikowanie aplikacji.

Zrzut ekranu przedstawiający ustawienie umożliwiające śledzenie korelacji Azure Application Insights .

Ograniczenia

  • Śledzenie korelacji działa tylko z łącznikami niestandardowymi. Inne typy łączników nie są obsługiwane.
  • Żądania protokołu HTTP są przechwytywane w Application Insights tylko wtedy, gdy usługa połączona jest również połączona z Application Insights.

Korzystanie ze śledzenia korelacji

Po włączeniu śledzenia korelacji powoduje dodanie nowego dziennika zdarzeń wygenerowanego przez system w tabeli zależności wystąpienia Application Insights aplikacji kanwy. To zdarzenie jest rejestrowane w momencie otrzymania odpowiedzi z rozmowy sieciowej. Zdarzenia zależności przechwytują szczegóły połączenia sieciowego, w tym nagłówki żądania i odpowiedzi, kod stanu odpowiedzi oraz czas trwania połączenia.

Przykładowe zdarzenie zarejestrowane w tabeli zależności.

Jeśli usługa połączona jest także połączona z Application Insights, jest generowane przez system dodatkowe zdarzenie dziennika przechwytujące żądanie generowane w tabeli żądań instancji usługi Application Insights. Niektóre usługi Azure, takie jak funkcje Azure, można połączyć bez konieczności pisania kodu z portalu Azure. Aplikację kanwy lub wiele aplikacji oraz usługi połączone można połączyć z tym samym wystąpieniem Application Insights.

Przykładowe zdarzenie zarejestrowane w tabeli żądań.

Dołącz wywołania sieciowe dla obsługiwanych łączników do innych dzienników generowanych przez system w wymiarze "operation_Id". Poniższe zapytanie przedstawia wywołanie sieciowe wraz ze zdarzeniami śledzenia emitowanymi podczas sesji aplikacji.

traces | union dependencies | union requests | union pageViews | union customEvents
| project timestamp
    , itemType
    , name
    , operation_Name
    , message
    , severityLevel
    , customDimensions
    , operation_Id
    , operation_ParentId
| where operation_Id == "0a7729e3e83c4e4d93cb4f51149f73b9" //placeholder operation_Id, replace
| order by timestamp asc

Zrzut ekranu przedstawiający przykładowe dane wyjściowe dla wcześniejszego przykładowego zapytania.

Eksportuj dane do Power BI

Dane i wyniki zapytania Application Insights można eksportować do Power BI w celu przeprowadzenia analizy i prezentacji danych.

  1. Zaloguj się w Portalu Azure i otwórz zasób Application Insights utworzony wcześniej.

  2. W lewym okienku nawigacyjnym wybierz Dzienniki w obszarze Monitorowanie.

  3. W oknie zapytanie analizy dziennika wybierz menu rozwijane Eksport.

  4. Wybierz pozycję Eksportuj do Power BI (zapytanie M), aby pobrać Power BI plik zapytania.

    Zrzut ekranu przedstawiający opcję Eksportuj Power BI zapytanie w oknie zapytania usługi Log Analytics.

  5. Otwórz pobrany plik w edytorze tekstowym i skopiuj zapytanie do schowka.

  6. Otwórz Power BI.

  7. Wybierz menu Pobierz dane na wstążce Narzędzia główne, a następnie wybierz opcję Puste zapytanie:

    Zrzut ekranu przedstawiający opcję Puste zapytanie w Power BI menu Pobierz dane.

  8. W oknie zapytania wybierz pozycję Edytor zaawansowany, wklej zapytanie do okna, wybierz pozycję Gotowe, a następnie wybierz pozycję Zamknij i zastosuj.

    Zrzut ekranu przedstawiający Edytor zaawansowany z Power BI zapytaniem wklejonym do okna.

Twórz wykresy i wizualizacje w Power BI w celu reprezentowania informacji zwrotnych otrzymywanych w aplikacji, a także podejmować decyzje i działania oparte na danych.

Zrzut ekranu przedstawiający wykresy i wizualizacje w Power BI reprezentujące opinie o aplikacji.

Domyślny kontekst i wymiary zdarzenia Śledzenie

Wymiary domyślne są także dodawane do właściwości customDimensions w każdym zdarzeniu śledzenia. Te wymiary mogą służyć do identyfikowania sesji aplikacji i aplikacji, w których wystąpiły zdarzenia. W przypadku rejestrowania dodatkowych danych niestandardowych przy użyciu funkcji śledzenia będą one również wyświetlane w wymiarach niestandardowych.

Nazwa wymiaru Reprezentuje
ms-appId Identyfikator aplikacji dotyczący aplikacji, która przysłała zdarzenie.
ms-appname Nazwa aplikacji dotycząca aplikacji, która przysłała zdarzenie.
ms-appSessionId Identyfikator sesji aplikacji. W niektórych scenariuszach ta wartość może nie zostać wypełniona. Jeśli jest dostępna, ta wartość zastępuje standardowy wymiar identyfikatora sesji Application Insights.
ms-tenantID Unikatowy identyfikator dzierżawcy, w której została opublikowana aplikacja.
ms-environmentId Nazwa środowiska, w którym publikowana jest aplikacja.
Identyfikator użytkownika Unikatowy identyfikator użytkownika skojarzonego z sesją
ms-duration Wartość imputowana mierząca czas potrzebny użytkownikowi na przejście z jednego ekranu na drugi. Ta wartość zastępuje standardowy wymiar czasu wyświetlenia strony PageView w Application Insights.
sessionId Identyfikator sesji, którego można użyć do skorelowania wszystkich zdarzeń związanych z pojedynczą sesją aplikacji. Ta wartość jest zawsze obecna i jest zalecana w celu zrozumienia unikatowej liczby sesji. Ta wartość jest pobierana z identyfikatora sesji gracza i jest wyświetlana podczas przeglądania szczegółów sesji podczas grania w aplikację. Identyfikator sesji może czasami zostać wygenerowany domyślną, losową i unikatową wartość wygenerowaną Application Insights. Ta wartość domyślna nie jest niezawodna i nie jest skorelowana z żadnymi parametrami specyficznymi dla aplikacji.
Czas trwania Wartość imputowana mierząca czas potrzebny użytkownikowi na przejście z jednego ekranu na drugi. Ta wartość jest taka sama jak czas trwania zgłaszany przez rozmiar ms-czasu trwania.
ms-isTest Wskazuje, czy sesja jest skojarzona z testem w programie Test Studio.
ms-currentScreenName Nazwa strony, z której nawiguje użytkownik końcowy (obecna dla zdarzeń nawigacji na stronie).
ms-targetScreenName Nazwa strony, na którą nawiguje użytkownik (obecnie dotyczy zdarzeń nawigacji między stronami).

Nieobsługiwane scenariusze

Application Insights nie obsługuje tych scenariuszy.

  • Zdarzenia gracza offline nie są rejestrowane.
  • Zdarzenia z aplikacji mobilnych (iOS i Android) nie są rejestrowane, gdy aplikacja jest zawieszona.