Jak zintegrować usługę Azure API Management z usługą Azure Application Insights

DOTYCZY: Wszystkie warstwy usługi API Management

Możesz łatwo zintegrować aplikacja systemu Azure Szczegółowe informacje z usługą Azure API Management. Usługa Azure Application Insights jest rozszerzalną usługą dla deweloperów internetowych, którzy kompilują aplikacje i zarządzają nimi na wielu platformach. W tym przewodniku wykonasz następujące elementy:

  • Zapoznaj się z przewodnikiem Integracja Szczegółowe informacje aplikacji z usługą API Management.
  • Poznaj strategie zmniejszania wpływu na wydajność wystąpienia usługi API Management.

Wymagania wstępne

  • Potrzebujesz wystąpienia usługi Azure API Management. Najpierw utwórz jeden .

  • Aby użyć Szczegółowe informacje aplikacji, utwórz wystąpienie usługi Application Szczegółowe informacje. Aby utworzyć wystąpienie przy użyciu witryny Azure Portal, zobacz Zasoby Szczegółowe informacje aplikacji opartej na obszarze roboczym.

    Uwaga

    Zasób aplikacji Szczegółowe informacje może znajdować się w innej subskrypcji, a nawet w innej dzierżawie niż zasób usługi API Management.

  • Jeśli planujesz skonfigurować tożsamość zarządzaną dla usługi API Management do użycia z usługą Application Szczegółowe informacje, należy wykonać następujące czynności:

    1. Włącz tożsamość zarządzaną przypisaną przez system lub przypisaną przez użytkownika dla usługi API Management w wystąpieniu usługi API Management.

      • Jeśli włączysz tożsamość zarządzaną przypisaną przez użytkownika, zanotuj identyfikator klienta tożsamości.
    2. Przypisz tożsamość roli Wydawca metryk monitorowania w zakresie do zasobu Aplikacja Szczegółowe informacje. Aby przypisać rolę, użyj witryny Azure Portal lub innych narzędzi platformy Azure.

Omówienie scenariusza

Poniżej przedstawiono ogólne kroki dla tego scenariusza.

  1. Najpierw należy utworzyć połączenie między usługą Application Szczegółowe informacje i usługą API Management

    Połączenie między usługą Application Szczegółowe informacje i usługą API Management można utworzyć przy użyciu witryny Azure Portal, interfejsu API REST lub powiązanych narzędzi platformy Azure. Usługa API Management konfiguruje zasób rejestratora dla połączenia.

    Uwaga

    Jeśli zasób aplikacji Szczegółowe informacje znajduje się w innej dzierżawie, musisz utworzyć rejestrator przy użyciu interfejsu API REST.

    Ważne

    Obecnie w portalu usługa API Management obsługuje tylko połączenia z aplikacją Szczegółowe informacje przy użyciu klucza instrumentacji usługi Application Szczegółowe informacje. Aby użyć Szczegółowe informacje parametry połączenia aplikacji lub tożsamości zarządzanej usługi API Management, użyj interfejsu API REST, Bicep lub szablonu usługi ARM, aby utworzyć rejestrator. Dowiedz się więcej o Szczegółowe informacje parametry połączenia aplikacji.

  2. Po drugie włączysz rejestrowanie Szczegółowe informacje aplikacji dla interfejsów API lub interfejsów API.

    W tym artykule włączysz rejestrowanie aplikacji Szczegółowe informacje dla interfejsu API przy użyciu witryny Azure Portal. Usługa API Management konfiguruje zasób diagnostyczny dla interfejsu API.

Tworzenie połączenia przy użyciu witryny Azure Portal

Wykonaj następujące kroki, aby utworzyć połączenie między usługą Application Szczegółowe informacje i API Management za pomocą witryny Azure Portal.

  1. Przejdź do wystąpienia usługi Azure API Management w witrynie Azure Portal.

  2. Wybierz pozycję Aplikacja Szczegółowe informacje z menu po lewej stronie.

  3. Wybierz + Dodaj.
    Zrzut ekranu pokazujący, gdzie dodać nowe połączenie

  4. Wybierz utworzone wcześniej wystąpienie aplikacji Szczegółowe informacje i podaj krótki opis.

  5. Aby włączyć monitorowanie dostępności wystąpienia usługi API Management w usłudze Application Szczegółowe informacje, zaznacz pole wyboru Dodaj monitor dostępności.

    • To ustawienie regularnie sprawdza, czy punkt końcowy bramy usługi API Management odpowiada.
    • Wyniki są wyświetlane w okienku Dostępność wystąpienia aplikacji Szczegółowe informacje.
  6. Wybierz pozycję Utwórz.

  7. Sprawdź, czy nowy rejestrator aplikacji Szczegółowe informacje jest teraz wyświetlany na liście.

    Zrzut ekranu przedstawiający miejsce wyświetlania nowo utworzonego rejestratora aplikacji Szczegółowe informacje.

Uwaga

W tle jednostka rejestratora jest tworzona w wystąpieniu usługi API Management zawierającym klucz instrumentacji wystąpienia usługi Application Szczegółowe informacje.

Napiwek

Jeśli musisz zaktualizować klucz instrumentacji skonfigurowany w rejestratorze aplikacji Szczegółowe informacje, wybierz wiersz rejestratora na liście (a nie nazwę rejestratora). Wprowadź klucz instrumentacji, a następnie wybierz pozycję Zapisz.

Tworzenie połączenia przy użyciu interfejsu API REST, Bicep lub szablonu usługi ARM

Wykonaj następujące kroki, aby użyć interfejsu API REST, Bicep lub szablonu usługi ARM, aby utworzyć połączenie między aplikacją Szczegółowe informacje i usługą API Management. Można skonfigurować rejestrator, który używa parametry połączenia, tożsamości zarządzanej przypisanej przez system lub tożsamości zarządzanej przypisanej przez użytkownika.

Rejestrator z poświadczeniami parametry połączenia

Szczegółowe informacje parametry połączenia aplikacji zostanie wyświetlona w sekcji Przegląd zasobu application Szczegółowe informacje.

Użyj interfejsu API REST usługi API Management z następującą treścią żądania.

{
  "properties": {
    "loggerType": "applicationInsights",
    "description": "adding a new logger with connection string",
    "credentials": {
         "connectionString":"InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/;..."    
    }
  }
}

Rejestrator z poświadczeniami tożsamości zarządzanej przypisanej przez system

Zapoznaj się z wymaganiami wstępnymi dotyczącymi używania tożsamości zarządzanej usługi API Management.

Użyj interfejsu API REST usługi API Management z następującą treścią żądania.

{
  "properties": {
    "loggerType": "applicationInsights",
    "description": "adding a new logger with system-assigned managed identity",
    "credentials": {
         "connectionString":"InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/;...",
         "identityClientId":"SystemAssigned"
    }
  }
}

Rejestrator z poświadczeniami tożsamości zarządzanej przypisanej przez użytkownika

Zapoznaj się z wymaganiami wstępnymi dotyczącymi używania tożsamości zarządzanej usługi API Management.

Użyj interfejsu API REST usługi API Management z następującą treścią żądania.

{
  "properties": {
    "loggerType": "applicationInsights",
    "description": "adding a new logger with user-assigned managed identity",
    "credentials": {
         "connectionString":"InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/;...",
         "identityClientId":"<ClientID>"
    }
  }
}

Włączanie rejestrowania Szczegółowe informacje aplikacji dla interfejsu API

Wykonaj poniższe kroki, aby włączyć rejestrowanie Szczegółowe informacje aplikacji dla interfejsu API. Możesz również włączyć rejestrowanie aplikacji Szczegółowe informacje dla wszystkich interfejsów API.

  1. Przejdź do wystąpienia usługi Azure API Management w witrynie Azure Portal.

  2. Wybierz pozycję Interfejsy API z menu po lewej stronie.

  3. Kliknij interfejs API, w tym przypadku pokazowy interfejs API konferencji. W przypadku skonfigurowania wybierz wersję.

    Napiwek

    Aby włączyć rejestrowanie dla wszystkich interfejsów API, wybierz pozycję Wszystkie interfejsy API.

  4. Przejdź do karty Ustawienia na górnym pasku.

  5. Przewiń w dół do sekcji Dzienniki diagnostyczne.
    Rejestrator Szczegółowe informacje aplikacji

  6. Zaznacz pole wyboru Włącz.

  7. Wybierz dołączony rejestrator na liście rozwijanej Miejsce docelowe .

  8. Wprowadź 100 jako próbkowanie (%) i zaznacz pole wyboru Zawsze rejestruje błędy.

  9. Pozostaw pozostałe ustawienia w następujący sposób. Aby uzyskać szczegółowe informacje o ustawieniach, zobacz Informacje o ustawieniach dzienników diagnostycznych.

    Ostrzeżenie

    Zastąpienie domyślnej liczby bajtów ładunku w celu zarejestrowania wartości 0 może znacznie zmniejszyć wydajność interfejsów API.

  10. Wybierz pozycję Zapisz.

  11. W tle jednostka diagnostyczna o nazwie applicationinsights jest tworzona na poziomie interfejsu API.

Uwaga

Żądania są pomyślne, gdy usługa API Management wysyła całą odpowiedź do klienta.

Rejestratory dla pojedynczego interfejsu API lub wszystkich interfejsów API

Rejestratory można określić na różnych poziomach:

  • Rejestrator pojedynczego interfejsu API
  • Rejestrator dla wszystkich interfejsów API

Określanie obu:

  • Domyślnie pojedynczy rejestrator interfejsu API (bardziej szczegółowy) zastępuje ten dla wszystkich interfejsów API.
  • Jeśli rejestratory skonfigurowane na dwóch poziomach są różne i potrzebujesz obu rejestratorów do odbierania danych telemetrycznych (multipleksowania), skontaktuj się z pomoc techniczna firmy Microsoft. Należy pamiętać, że multipleksowanie nie jest obsługiwane, jeśli używasz tego samego rejestratora (miejsca docelowego aplikacji Szczegółowe informacje) na poziomie "Wszystkie interfejsy API" i na poziomie pojedynczego interfejsu API. Aby multipleksowanie działało poprawnie, należy skonfigurować różne rejestratory na poziomie "Wszystkie interfejsy API" i indywidualny poziom interfejsu API oraz poprosić o pomoc od pomocy technicznej firmy Microsoft, aby umożliwić multipleksowanie dla twojej usługi.

Jakie dane są dodawane do usługi Application Insights

Odbiera Szczegółowe informacje aplikacji:

Element telemetrii opis
Zażądaj Dla każdego żądania przychodzącego:
  • żądanie frontonu
  • odpowiedź frontonu
Zależność Dla każdego żądania przekazanego do usługi zaplecza:
  • żądanie zaplecza
  • Odpowiedź zaplecza
Wyjątek Dla każdego żądania, które zakończyło się niepowodzeniem:
  • Niepowodzenie z powodu zamkniętego połączenia klienta
  • Wyzwolono sekcję dotyczącą błędów zasad interfejsu API
  • Ma kod stanu HTTP odpowiedzi zgodny z 4xx lub 5xx
Śledzenie Jeśli skonfigurujesz zasady śledzenia .
Ustawienie severity w trace zasadach musi być równe lub większe niż verbosity ustawienie w rejestrowaniu aplikacji Szczegółowe informacje.

Uwaga

Zobacz Limity Szczegółowe informacje aplikacji, aby uzyskać informacje o maksymalnym rozmiarze i liczbie metryk i zdarzeń na wystąpienie usługi Application Szczegółowe informacje.

Emituj metryki niestandardowe

Metryki niestandardowe można emitować do usługi Application Szczegółowe informacje z wystąpienia usługi API Management. Usługa API Management emituje metryki niestandardowe przy użyciu zasad emisji metryk .

Uwaga

Metryki niestandardowe są funkcjąusługi Azure Monitor w wersji zapoznawczej i podlegają ograniczeniom.

Aby emitować metryki niestandardowe, wykonaj następujące kroki konfiguracji.

  1. Włącz metryki niestandardowe (wersja zapoznawcza) z wymiarami niestandardowymi w wystąpieniu usługi Application Szczegółowe informacje.

    1. Przejdź do wystąpienia aplikacji Szczegółowe informacje w portalu.
    2. W menu po lewej stronie wybierz pozycję Użycie i szacowane koszty.
    3. Wybierz pozycję Metryki niestandardowe (wersja zapoznawcza)>Z wymiarami.
    4. Wybierz przycisk OK.
  2. "metrics": true Dodaj właściwość do jednostki diagnostycznej skonfigurowanej applicationInsights w usłudze API Management. Obecnie należy dodać tę właściwość przy użyciu diagnostyki usługi API Management — tworzenie lub aktualizowanie interfejsu API REST. Na przykład:

    PUT https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.ApiManagement/service/{APIManagementServiceName}/diagnostics/applicationinsights
    
    {
        [...]
        {
        "properties": {
            "loggerId": "/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.ApiManagement/service/{APIManagementServiceName}/loggers/{ApplicationInsightsLoggerName}",
            "metrics": true
            [...]
        }
    }
    
  3. Upewnij się, że rejestrator aplikacji Szczegółowe informacje jest skonfigurowany w zakresie, w którym zamierzasz emitować metryki niestandardowe (wszystkie interfejsy API lub pojedynczy interfejs API). Aby uzyskać więcej informacji, zobacz Włączanie rejestrowania aplikacji Szczegółowe informacje dla interfejsu API, wcześniej w tym artykule.

  4. emit-metric Skonfiguruj zasady w zakresie, w którym skonfigurowano rejestrowanie aplikacji Szczegółowe informacje (wszystkie interfejsy API lub pojedynczy interfejs API) i włączono dla metryk niestandardowych. Aby uzyskać szczegółowe informacje o zasadach, zobacz dokumentację emit-metric zasad.

Limity metryk niestandardowych

Usługa Azure Monitor nakłada limity użycia dla metryk niestandardowych, które mogą mieć wpływ na możliwość emitowania metryk z usługi API Management. Na przykład usługa Azure Monitor obecnie ustawia limit 10 kluczy wymiarów na metrykę i limit 50 000 łącznych aktywnych szeregów czasowych na region w ramach subskrypcji (w okresie 12 godzin).

Te limity mają następujące konsekwencje dotyczące konfigurowania metryk niestandardowych w usłudze API Management:

  • Można skonfigurować maksymalnie 10 wymiarów niestandardowych na emit-metric zasady.

  • Liczba aktywnych szeregów czasowych wygenerowanych przez emit-metric zasady w okresie 12 godzin jest produktem liczby unikatowych wartości każdego skonfigurowanego wymiaru w danym okresie. Jeśli na przykład w zasadach skonfigurowano trzy wymiary niestandardowe, a każdy wymiar miał 10 możliwych wartości w danym okresie, emit-metric zasady współtworzyłyby 1000 (10 x 10 x 10) aktywnych szeregów czasowych.

  • Jeśli skonfigurujesz emit-metric zasady w wielu wystąpieniach usługi API Management, które znajdują się w tym samym regionie w ramach subskrypcji, wszystkie wystąpienia mogą współtworzyć regionalny aktywny limit szeregów czasowych.

Wpływ na wydajność i próbkowanie dzienników

Ostrzeżenie

Rejestrowanie wszystkich zdarzeń może mieć poważny wpływ na wydajność w zależności od szybkości żądań przychodzących.

Na podstawie wewnętrznych testów obciążeniowych włączenie funkcji rejestrowania spowodowało zmniejszenie przepływności o 40%-50%, gdy liczba żądań przekroczyła 1000 żądań na sekundę. Usługa Application Insights została zaprojektowana w celu oceny wydajności aplikacji przy użyciu analizy statystycznej. To nie jest:

  • Przeznaczony do systemu inspekcji.
  • Nadaje się do rejestrowania poszczególnych żądań dla interfejsów API o dużej ilości.

Możesz manipulować liczbą zarejestrowanych żądań, dostosowując ustawienie Próbkowanie. Wartość 100% oznacza, że wszystkie żądania są rejestrowane, a 0% odzwierciedla brak rejestrowania.

Próbkowanie pomaga zmniejszyć ilość danych telemetrycznych, skutecznie zapobiegając znacznemu obniżeniu wydajności przy jednoczesnym zachowaniu korzyści z rejestrowania.

Aby poprawić problemy z wydajnością, pomiń:

  • Nagłówki żądań i odpowiedzi.
  • Rejestrowanie treści.

Wideo

Rozwiązywanie problemów

Rozwiązanie problemu przepływu danych telemetrycznych z usługi API Management do usługi Application Szczegółowe informacje:

  • Sprawdź, czy istnieje połączony zasób zakresu usługi Private Link (AMPLS) usługi Azure Monitor w sieci wirtualnej, w której jest połączony zasób usługi API Management. Zasoby AMPLS mają globalny zakres w subskrypcjach i są odpowiedzialne za zarządzanie zapytaniami o dane i pozyskiwanie wszystkich zasobów usługi Azure Monitor. Możliwe, że zestaw AMPLS został skonfigurowany z trybem dostępu tylko do użytku prywatnego specjalnie na potrzeby pozyskiwania danych. W takich przypadkach uwzględnij zasób application Szczegółowe informacje i skojarzony z nim zasób usługi Log Analytics w usłudze AMPLS. Po dodaniu tego dodatku dane usługi API Management zostaną pomyślnie pozyskane do zasobu application Szczegółowe informacje, co rozwiązuje problem z przesyłaniem danych telemetrycznych.

Następne kroki