Sdílet prostřednictvím


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

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

Přehledy Aplikace Azure lication můžete snadno integrovat 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 Application Insights do služby API Management.
  • Seznamte se se strategiemi pro snížení dopadu výkonu na instanci služby API Management.

Poznámka:

V pracovním prostoru služby API Management může vlastník pracovního prostoru nezávisle integrovat Application Insights a povolit protokolování Application Insights pro rozhraní API pracovního prostoru. Obecné pokyny k integraci pracovního prostoru s Application Insights jsou podobné pokynům pro instanci služby API Management. Konfigurace je však vymezena pouze na pracovní prostor. V současné době je nutné integrovat Application Insights do pracovního prostoru konfigurací připojovací řetězec (doporučeno) nebo instrumentačního klíče.

Upozorňující

Při použití naší brány v místním prostředí nezaručujeme, že se veškerá telemetrie odešle do Aplikace Azure lication Insights, protože spoléhá na ukládání do vyrovnávací paměti application Insights.

Požadavky

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

  • Pokud chcete použít Application Insights, vytvořte instanci služby Application Insights. Pokud chcete vytvořit instanci pomocí webu Azure Portal, přečtěte si téma Prostředky Application Insights založené na pracovních prostorech.

    Poznámka:

    Prostředek Application Insights 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 přihlašovací údaje spravované identity pro použití s Application Insights, proveďte následující kroky:

    1. Povolte spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem pro 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 Application Insights. 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 propojení mezi Application Insights a API Management.

    Připojení mezi Application Insights 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 .

    Důležité

    V současné době služba API Management na portálu podporuje pouze připojení k Application Insights pomocí instrumentačního klíče Application Insights. Pokud chcete zvýšit zabezpečení, doporučujeme použít službu Application Insights připojovací řetězec se spravovanou identitou služby API Management. Ke konfiguraci připojovací řetězec s přihlašovacími údaji spravované identity použijte rozhraní REST API nebo související nástroje, jak je znázorněno v další části tohoto článku. Přečtěte si další informace o připojovací řetězec Application Insights.

    Poznámka:

    Pokud je váš prostředek Application Insights v jiném tenantovi, musíte protokolovací nástroj vytvořit pomocí rozhraní REST API nebo souvisejících nástrojů, jak je znázorněno v další části tohoto článku.

  2. Za druhé povolte protokolování Application Insights pro vaše rozhraní API nebo rozhraní API.

    V tomto článku povolíte protokolování Application Insights 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 Application Insights a API Management.

Poznámka:

Pokud je to možné, Microsoft doporučuje používat připojovací řetězec s přihlašovacími údaji spravované identity pro lepší zabezpečení. Ke konfiguraci těchto přihlašovacích údajů použijte rozhraní REST API nebo související nástroje, jak je znázorněno v další části tohoto článku.

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

  2. V nabídce vlevo vyberte Application Insights .

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

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

  5. Pokud chcete povolit monitorování dostupnosti vaší instance služby API Management ve službě Application Insights, 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 Application Insights.
  6. Vyberte Vytvořit.

  7. Zkontrolujte, že nový protokolovací nástroj Application Insights se teď zobrazí v seznamu.

    Snímek obrazovky znázorňující, kde se má zobrazit nově vytvořený protokolovací objekt Application Insights

Poznámka:

Na pozadí se ve vaší instanci služby API Management vytvoří entita protokolovacího modulu, která obsahuje instrumentační klíč instance Application Insights.

Tip

Pokud potřebujete aktualizovat instrumentační klíč nakonfigurovaný v protokolovacím nástroji Application Insights, 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ů pomocí rozhraní REST API, Bicep nebo šablony ARM vytvořte protokolovací nástroj Application Insights pro vaši instanci služby API Management. Můžete nakonfigurovat protokolovací nástroj, který používá připojovací řetězec s přihlašovacími údaji spravované identity (doporučeno) nebo protokolovacím nástrojem, který používá pouze připojovací řetězec.

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

Připojovací řetězec Application Insights se zobrazí v části Přehled vašeho prostředku Application Insights.

Připojovací řetězec se spravovanou identitou přiřazenou systémem

Použijte protokolovací nástroj API Management – Vytvoření nebo aktualizace rozhraní REST API s následujícím textem požadavku.

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

Připojovací řetězec se spravovanou identitou přiřazenou uživatelem

Použijte protokolovací nástroj API Management – Vytvoření nebo aktualizace rozhraní REST API s následujícím textem požadavku.

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

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

Připojovací řetězec Application Insights se zobrazí v části Přehled vašeho prostředku Application Insights.

Použijte protokolovací nástroj API Management – Vytvoření nebo aktualizace rozhraní REST API s následujícím textem požadavku.

Pokud konfigurujete protokolovací nástroj pro pracovní prostor, použijte protokolovací nástroj pracovního prostoru – Vytvoření nebo aktualizace rozhraní REST API.

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

Povolení protokolování Application Insights pro vaše rozhraní API

Pomocí následujícího postupu povolte protokolování Application Insights pro rozhraní API. Protokolování Application Insights můžete povolit také 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. Vyberte rozhraní API, například Swagger Petstore. 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 .
    Snímek obrazovky s konfigurací diagnostických protokolů na portálu

  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í se nepodporuje, pokud používáte stejný protokolovací metodu (cíl Application Insights) 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

Application Insights 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í Application Insights.

Generování vlastních metrik

Vlastní metriky můžete generovat do Application Insights z instance služby API Management. Služba API Management generuje vlastní metriky pomocí zásad, jako jsou metriky emit-metric a azure-openai-emit-token-metric. Následující část používá zásadu emit-metric jako příklad.

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 Application Insights.

    1. Na portálu přejděte k vaší instanci Application Insights.
    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 Application Insights 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í Application Insights pro vaše rozhraní API výše v tomto článku.

  4. Nakonfigurujte zásadu emit-metric v oboru, kde je nakonfigurované protokolování Application Insights (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 v zásadách služby API Management, například emit-metric azure-openai-emit-token-metric:

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

  • Počet aktivních časových řad vygenerovaných zásadou 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, zásada by přispěla 1 000 (10 x 10 x 10) aktivních časových řad.

  • Pokud zásadu 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.

Přečtěte si další informace o omezeních a aspektech návrhu pro vlastní metriky ve službě Azure Monitor.

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 Application Insights:

  • 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 Application Insights a jeho 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 Application Insights a vyřeší problém s přenosem telemetrických dat.