Postup při integraci služby Azure API Management s Azure Application Insights

PLATÍ PRO: Všechny úrovně služby API Management

Můžete snadno integrovat Aplikace Azure Přehledy se službou Azure API Management. Azure Application Insights je rozšiřitelná služba pro vývojáře webů, kteří sestavují a spravují aplikace na více platformách. V této příručce:

  • Projděte si integraci Přehledy aplikací do služby API Management.
  • Seznamte se se strategiemi pro snížení dopadu výkonu na instanci služby API Management.

Požadavky

  • Potřebujete instanci služby Azure API Management. Nejprve vytvořte jednu .

  • Pokud chcete použít Přehledy aplikace, vytvořte instanci služby Application Přehledy. Pokud chcete vytvořit instanci pomocí webu Azure Portal, přečtěte si téma Aplikace založené na pracovním prostoru Přehledy prostředky.

    Poznámka:

    Prostředek Přehledy aplikace může být v jiném předplatném nebo dokonce v jiném tenantovi než prostředek služby API Management.

  • Pokud plánujete nakonfigurovat spravovanou identitu pro službu API Management tak, aby používala s aplikačními Přehledy, musíte provést následující kroky:

    1. Povolte spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem pro službu API Management ve vaší instanci služby API Management.

      • Pokud povolíte spravovanou identitu přiřazenou uživatelem, poznamenejte si ID klienta identity.
    2. Přiřaďte identitu roli Vydavatele metrik monitorování s vymezeným oborem prostředku Přehledy aplikace. K přiřazení role použijte Azure Portal nebo jiné nástroje Azure.

Přehled scénáře

V tomto scénáři jsou uvedené základní kroky.

  1. Nejprve vytvoříte připojení mezi aplikačními Přehledy a službou API Management.

    Připojení mezi aplikačními Přehledy a službou API Management můžete vytvořit pomocí webu Azure Portal, rozhraní REST API nebo souvisejících nástrojů Azure. Služba API Management nakonfiguruje pro připojení prostředek protokolovacího nástroje .

    Poznámka:

    Pokud je prostředek aplikace Přehledy v jiném tenantovi, musíte vytvořit protokolovací nástroj pomocí rozhraní REST API.

    Důležité

    V současné době služba API Management na portálu podporuje připojení k aplikačním Přehledy pomocí klíče instrumentace Přehledy aplikace. Pokud chcete použít aplikaci Přehledy připojovací řetězec nebo spravovanou identitu služby API Management, vytvořte protokolovací nástroj pomocí rozhraní REST API, Bicep nebo šablony ARM. Přečtěte si další informace o Přehledy připojovací řetězec aplikací.

  2. Za druhé povolíte protokolování aplikačních Přehledy pro vaše rozhraní API nebo rozhraní API.

    V tomto článku povolíte protokolování Přehledy aplikace pro vaše rozhraní API pomocí webu Azure Portal. Služba API Management nakonfiguruje diagnostický prostředek pro rozhraní API.

Vytvoření připojení pomocí webu Azure Portal

Pomocí tohoto postupu pomocí webu Azure Portal vytvoříte připojení mezi aplikačními Přehledy a službou API Management.

  1. Na webu Azure Portal přejděte k vaší instanci služby Azure API Management.

  2. V nabídce na levé straně vyberte Přehledy Aplikace.

  3. Vyberte + Přidat.
    Snímek obrazovky, který ukazuje, kam přidat nové připojení

  4. Vyberte instanci aplikace Přehledy, kterou jste vytvořili dříve, a zadejte krátký popis.

  5. Pokud chcete povolit monitorování dostupnosti vaší instance služby API Management v Přehledy aplikace, zaškrtněte políčko Přidat monitorování dostupnosti.

    • Toto nastavení pravidelně ověřuje, jestli koncový bod brány služby API Management reaguje.
    • Výsledky se zobrazí v podokně Dostupnost instance Přehledy aplikace.
  6. Vyberte Vytvořit.

  7. Zkontrolujte, jestli se v seznamu nyní zobrazí nový protokolovací nástroj Přehledy aplikace.

    Snímek obrazovky znázorňující, kde se má zobrazit nově vytvořený protokolovací Přehledy aplikace

Poznámka:

Na pozadí se ve vaší instanci služby API Management vytvoří entita loggeru obsahující instrumentační klíč instance Přehledy aplikace.

Tip

Pokud potřebujete aktualizovat instrumentační klíč nakonfigurovaný v nástroji Application Přehledy logger, vyberte v seznamu řádek protokolovacího nástroje (ne název protokolovacího nástroje). Zadejte instrumentační klíč a vyberte Uložit.

Vytvoření připojení pomocí rozhraní REST API, Bicep nebo šablony ARM

Pomocí těchto kroků můžete pomocí rozhraní REST API, Bicep nebo šablony ARM vytvořit připojení mezi Přehledy aplikací a službou API Management. Můžete nakonfigurovat protokolovací nástroj, který používá připojovací řetězec, spravovanou identitu přiřazenou systémem nebo spravovanou identitu přiřazenou uživatelem.

Protokolovací nástroj s přihlašovacími údaji připojovací řetězec

Přehledy připojovací řetězec aplikace se zobrazí v části Přehled prostředku Přehledy aplikace.

Rozhraní REST API služby API Management použijte s následujícím textem požadavku.

{
  "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/;..."    
    }
  }
}

Protokolovací nástroj s přihlašovacími údaji spravované identity přiřazené systémem

Prohlédněte si předpoklady pro použití spravované identity služby API Management.

Rozhraní REST API služby API Management použijte s následujícím textem požadavku.

{
  "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"
    }
  }
}

Protokolovací nástroj s přihlašovacími údaji spravované identity přiřazené uživatelem

Prohlédněte si předpoklady pro použití spravované identity služby API Management.

Rozhraní REST API služby API Management použijte s následujícím textem požadavku.

{
  "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>"
    }
  }
}

Povolení protokolování Přehledy aplikací pro vaše rozhraní API

Pomocí následujícího postupu povolte protokolování Přehledy aplikace pro rozhraní API. Můžete také povolit protokolování Přehledy aplikací pro všechna rozhraní API.

  1. Na webu Azure Portal přejděte k vaší instanci služby Azure API Management.

  2. V nabídce na levé straně vyberte Rozhraní API.

  3. Klikněte na své rozhraní API, v tomto případě ukázkové konferenční rozhraní API. Pokud je nakonfigurovaná, vyberte verzi.

    Tip

    Pokud chcete povolit protokolování pro všechna rozhraní API, vyberte Všechna rozhraní API.

  4. V horním panelu přejděte na kartu Nastavení.

  5. Posuňte se dolů do části Diagnostické protokoly .
    Protokolovací nástroj Přehledy aplikace

  6. Zaškrtněte políčko Povolit .

  7. V rozevíracím seznamu Cíl vyberte připojený protokolovací nástroj.

  8. Zadejte 100 jako vzorkování (%) a zaškrtněte políčko Vždy protokolovat chyby.

  9. Zbytek nastavení ponechte tak, jak je. Podrobnosti o nastavení najdete v referenčních informacích k nastavení diagnostických protokolů.

    Upozorňující

    Přepsání výchozího počtu bajtů datové části na hodnotu 0 protokolu může výrazně snížit výkon vašich rozhraní API.

  10. Zvolte Uložit.

  11. Na pozadí se vytvoří diagnostická entita s názvem applicationinsights na úrovni rozhraní API.

Poznámka:

Požadavky jsou úspěšné, jakmile služba API Management odešle klientovi celou odpověď.

Protokolovací nástroje pro jedno rozhraní API nebo všechna rozhraní API

Protokolovací nástroje můžete zadat na různých úrovních:

  • Protokolovací služba s jedním rozhraním API
  • Protokolovací nástroje pro všechna rozhraní API

Určení obou:

  • Ve výchozím nastavení přepíše jeden protokolovací protokol rozhraní API (podrobnější úroveň) ten pro všechna rozhraní API.
  • Pokud jsou protokolovací nástroje nakonfigurované na těchto dvou úrovních odlišné a potřebujete, aby protokolovací moduly přijímaly telemetrii (multiplexing), obraťte se na podpora Microsoftu. Upozorňujeme, že multiplexování není podporováno, pokud používáte stejný protokolovací metodu (cíl aplikace Přehledy cíl) na úrovni "Všechna rozhraní API" a jednu úroveň rozhraní API. Aby multiplexování fungovalo správně, musíte nakonfigurovat různé protokolovací nástroje na úrovni všech rozhraní API a jednotlivých rozhraní API a požádat o pomoc od podpory Microsoftu, aby bylo možné povolit multiplexing pro vaši službu.

Jaká data se přidávají do Application Insights

Aplikační Přehledy přijímá:

Položka telemetrie Popis
Požádat Pro každý příchozí požadavek:
  • front-endový požadavek
  • front-endová odpověď
Závislost Pro každou žádost přeposlanou do back-endové služby:
  • back-endový požadavek
  • back-endová odpověď
Výjimka Pro každý neúspěšný požadavek:
  • Selhalo kvůli uzavřenému připojení klienta
  • Aktivovali jsme část o chybách zásad rozhraní API.
  • Má odpověď http stavový kód odpovídající 4xx nebo 5xx.
Trasování Pokud nakonfigurujete zásadu trasování .
Nastavení severity v zásadách trace musí být stejné nebo větší než verbosity nastavení v protokolování Přehledy aplikace.

Generování vlastních metrik

Vlastní metriky můžete generovat do aplikačních Přehledy z instance služby API Management. Služba API Management generuje vlastní metriky pomocí zásad generování metrik .

Poznámka:

Vlastní metriky jsou funkce služby Azure Monitor ve verzi Preview a podléhají omezením.

Pokud chcete vygenerovat vlastní metriky, proveďte následující kroky konfigurace.

  1. Povolte vlastní metriky (Preview) s vlastními dimenzemi v instanci Přehledy aplikace.

    1. Přejděte na instanci Přehledy aplikace na portálu.
    2. V nabídce vlevo vyberte Využití a odhadované náklady.
    3. Vyberte Vlastní metriky (Preview)> S dimenzemi.
    4. Vyberte OK.
  2. "metrics": true Přidejte vlastnost do applicationInsights diagnostické entity, která je nakonfigurovaná ve službě API Management. V současné době musíte tuto vlastnost přidat pomocí diagnostiky služby API Management – Vytvoření nebo aktualizace rozhraní REST API. Příklad:

    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. Ujistěte se, že je protokolovací nástroj Přehledy aplikace nakonfigurovaný v oboru, který chcete generovat vlastní metriky (buď všechna rozhraní API, nebo jedno rozhraní API). Další informace najdete v tématu Povolení protokolování Přehledy aplikace pro vaše rozhraní API výše v tomto článku.

  4. Nakonfigurujte zásadu emit-metric v oboru, kde je nakonfigurované protokolování Přehledy aplikace (buď všechna rozhraní API, nebo jedno rozhraní API), a je povolené pro vlastní metriky. Podrobnosti o zásadách najdete v referenčních informacích k zásadám emit-metric .

Omezení pro vlastní metriky

Azure Monitor ukládá limity využití pro vlastní metriky, které můžou ovlivnit vaši schopnost generovat metriky ze služby API Management. Azure Monitor například v současné době nastavuje limit 10 klíčů dimenzí na metriku a limit 50 000 celkového počtu aktivních časových řad na oblast v předplatném (v rámci 12hodinového období).

Tato omezení mají následující důsledky pro konfiguraci vlastních metrik ve službě API Management:

  • Pro každou emit-metric zásadu můžete nakonfigurovat maximálně 10 vlastních dimenzí.

  • Počet aktivních časových řad vygenerovaných zásadou emit-metric během 12hodinového období je součinem počtu jedinečných hodnot jednotlivých nakonfigurovaných dimenzí během období. Pokud byly například v zásadách nakonfigurovány tři vlastní dimenze a každá dimenze měla v daném období 10 možných hodnot, emit-metric zásada by přispěla 1 000 (10 x 10 x 10) aktivních časových řad.

  • Pokud zásadu emit-metric nakonfigurujete v několika instancích služby API Management, které jsou ve stejné oblasti v předplatném, můžou všechny instance přispívat k limitu regionálních aktivních časových řad.

Vliv na výkon a vzorkování protokolů

Upozorňující

Protokolování všech událostí může mít v závislosti na frekvenci příchozích požadavků vážný dopad na výkon.

Povolení funkce protokolování na základě interních zátěžových testů způsobilo snížení propustnosti o 40 až 50 %, když frekvence požadavků překročila 1 000 požadavků za sekundu. Služba Application Insights je navržená tak, aby vyhodnocovala výkon aplikací pomocí statistické analýzy. Není:

  • Zamýšlena jako systém auditu.
  • Vhodná pro protokolování každého jednotlivého požadavku pro vysokoobjemová rozhraní API.

Počet protokolovaných požadavků můžete manipulovat úpravou nastavení vzorkování. Hodnota 100 % znamená, že se protokolují všechny požadavky, zatímco 0 % znamená žádné protokolování.

Vzorkování pomáhá snižovat objem telemetrických dat, což účinně zabraňuje výraznému snížení výkonu a zároveň přináší výhody protokolování.

Pokud chcete zlepšit problémy s výkonem, přeskočte:

  • Hlavičky žádostí a odpovědí.
  • Protokolování obsahu.

Video

Řešení problému

Řešení problému s tokem telemetrických dat ze služby API Management do služby Application Přehledy:

  • Prozkoumejte, jestli v rámci virtuální sítě, ve které je připojený prostředek služby API Management, existuje propojený prostředek oboru služby Azure Monitor Private Link (AMPLS). Prostředky AMPLS mají globální rozsah napříč předplatnými a zodpovídají za správu dotazů na data a příjem dat pro všechny prostředky služby Azure Monitor. Je možné, že jsou amply nakonfigurované s režimem přístupu jen pro privátní přístup speciálně pro příjem dat. V takových případech zahrnout prostředek Přehledy aplikace a přidružený prostředek Log Analytics do ampls. Po dokončení tohoto přidání se data služby API Management úspěšně ingestují do prostředku aplikace Přehledy a vyřeší problém s přenosem telemetrických dat.

Další kroky