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:
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.
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.
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.
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.
Na webu Azure Portal přejděte k vaší instanci služby Azure API Management.
V nabídce vlevo vyberte Application Insights .
Vyberte + Přidat.
Vyberte instanci Application Insights, kterou jste vytvořili dříve, a zadejte krátký popis.
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.
Vyberte Vytvořit.
Zkontrolujte, že nový protokolovací nástroj Application Insights se teď zobrazí v seznamu.
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.
Protokolovací nástroj s připojovací řetězec s přihlašovacími údaji spravované identity (doporučeno)
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.
Na webu Azure Portal přejděte k vaší instanci služby Azure API Management.
V nabídce na levé straně vyberte rozhraní API.>
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.
V horním panelu přejděte na kartu Nastavení .
Posuňte se dolů do části Diagnostické protokoly .
Zaškrtněte políčko Povolit .
V rozevíracím seznamu Cíl vyberte připojený protokolovací nástroj.
Zadejte 100 jako vzorkování (%) a zaškrtněte políčko Vždy protokolovat chyby.
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.
Zvolte Uložit.
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:
|
Závislost | Pro každou žádost přeposlanou do back-endové služby:
|
Výjimka | Pro každý neúspěšný požadavek:
|
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. |
Poznámka:
Informace o maximální velikosti a počtu metrik a událostech na instanci Application Insights najdete v limitech 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.
Pokud chcete vygenerovat vlastní metriky, proveďte následující kroky konfigurace.
Povolte vlastní metriky (Preview) s vlastními dimenzemi v instanci Application Insights.
- Na portálu přejděte k vaší instanci Application Insights.
- V nabídce vlevo vyberte Využití a odhadované náklady.
- Vyberte Vlastní metriky (Preview)> S dimenzemi.
- Vyberte OK.
"metrics": true
Přidejte vlastnost doapplicationInsights
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 [...] } }
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.
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ámemit-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.
Související obsah
- Přečtěte si další informace o Aplikace Azure lication Insights.
- Zvažte protokolování pomocí služby Azure Event Hubs.
- Informace o vizualizaci dat z Application Insights pomocí Azure Managed Grafana