Så integrerar du Azure API Management med Azure Application Insights
GÄLLER FÖR: Alla API Management-nivåer
Du kan enkelt integrera Azure Application Insights med Azure API Management. Azure Application Insights är en utökningsbar tjänst för webbutvecklare som skapar och hanterar appar på flera plattformar. I den här guiden kommer du att:
- Gå igenom Application Insights-integrering i API Management.
- Lär dig strategier för att minska prestandapåverkan på din API Management-tjänstinstans.
Förutsättningar
Du behöver en Azure API Management-instans. Skapa en först.
Om du vill använda Application Insights skapar du en instans av Application Insights-tjänsten. Information om hur du skapar en instans med hjälp av Azure-portalen finns i Arbetsytebaserade Application Insights-resurser.
Kommentar
Application Insights-resursen kan finnas i en annan prenumeration eller till och med en annan klientorganisation än API Management-resursen.
Om du planerar att konfigurera en hanterad identitet för API Management som ska användas med Application Insights måste du utföra följande steg:
Aktivera en systemtilldelad eller användartilldelad hanterad identitet för API Management i din API Management-instans.
- Om du aktiverar en användartilldelad hanterad identitet noterar du identitetens klient-ID.
Tilldela identiteten rollen Monitoring Metrics Publisher , som är begränsad till Application Insights-resursen. Om du vill tilldela rollen använder du Azure-portalen eller andra Azure-verktyg.
Scenarioöversikt
Följande är steg på hög nivå för det här scenariot.
Först skapar du en anslutning mellan Application Insights och API Management
Du kan skapa en anslutning mellan Application Insights och din API Management med hjälp av Azure-portalen, REST-API:et eller relaterade Azure-verktyg. API Management konfigurerar en loggerresurs för anslutningen.
Kommentar
Om din Application Insights-resurs finns i en annan klientorganisation måste du skapa loggaren med hjälp av REST-API:et.
Viktigt!
I portalen stöder API Management för närvarande endast anslutningar till Application Insights med hjälp av en Application Insights-instrumentationsnyckel. Om du vill använda en Application Insights-anslutningssträng eller en hanterad API Management-identitet använder du mallen REST API, Bicep eller ARM för att skapa loggaren. Läs mer om Application Insights anslutningssträng s.
För det andra aktiverar du Application Insights-loggning för dina API:er eller API:er.
I den här artikeln aktiverar du Application Insights-loggning för ditt API med hjälp av Azure-portalen. API Management konfigurerar en diagnostikresurs för API:et.
Skapa en anslutning med hjälp av Azure-portalen
Följ de här stegen om du vill använda Azure-portalen för att skapa en anslutning mellan Application Insights och API Management.
Gå till din Azure API Management-tjänstinstans i Azure-portalen.
Välj Application Insights på menyn till vänster.
Markera + Lägg till.
Välj den Application Insights-instans som du skapade tidigare och ange en kort beskrivning.
Om du vill aktivera tillgänglighetsövervakning av DIN API Management-instans i Application Insights markerar du kryssrutan Lägg till tillgänglighetsövervakare .
- Den här inställningen kontrollerar regelbundet om API Management-gatewayens slutpunkt svarar.
- Resultaten visas i fönstret Tillgänglighet i Application Insights-instansen.
Välj Skapa.
Kontrollera att den nya Application Insights-loggaren nu visas i listan.
Kommentar
I bakgrunden skapas en loggningsentitet i din API Management-instans som innehåller instrumentationsnyckeln för Application Insights-instansen.
Dricks
Om du behöver uppdatera instrumentationsnyckeln som konfigurerats i Application Insights-loggaren väljer du loggningsraden i listan (inte namnet på loggaren). Ange instrumentationsnyckeln och välj Spara.
Skapa en anslutning med hjälp av MALLEN REST API, Bicep eller ARM
Följ de här stegen för att använda REST API, Bicep eller ARM-mallen för att skapa en anslutning mellan Application Insights och API Management. Du kan konfigurera en logger som använder en anslutningssträng, systemtilldelad hanterad identitet eller användartilldelad hanterad identitet.
Loggare med anslutningssträng autentiseringsuppgifter
Application Insights-anslutningssträng visas i avsnittet Översikt för din Application Insights-resurs.
Använd API Management REST API med följande begärandetext.
{
"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/;..."
}
}
}
Loggare med systemtilldelade autentiseringsuppgifter för hanterad identitet
Se förutsättningarna för att använda en hanterad API Management-identitet.
Använd API Management REST API med följande begärandetext.
{
"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"
}
}
}
Loggare med användartilldelade autentiseringsuppgifter för hanterad identitet
Se förutsättningarna för att använda en hanterad API Management-identitet.
Använd API Management REST API med följande begärandetext.
{
"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>"
}
}
}
Aktivera Application Insights-loggning för ditt API
Använd följande steg för att aktivera Application Insights-loggning för ett API. Du kan också aktivera Application Insights-loggning för alla API:er.
Gå till din Azure API Management-tjänstinstans i Azure-portalen.
Välj API:er i menyn till vänster.
Klicka på ditt API, i det här fallet Demo Conference API. Om du har konfigurerat väljer du en version.
Dricks
Om du vill aktivera loggning för alla API:er väljer du Alla API:er.
Gå till fliken Inställningar från det övre fältet.
Rulla ned till avsnittet Diagnostikloggar .
Markera kryssrutan Aktivera .
Välj den anslutna loggaren i listrutan Mål .
Ange 100 som sampling (%) och markera kryssrutan Alltid loggfel .
Låt resten av inställningarna vara som de är. Mer information om inställningarna finns i Referens för inställningar för diagnostikloggar.
Varning
Om du åsidosätter standardvärdet Antal nyttolastbyte till loggvärdet0 kan det avsevärt minska prestandan för dina API:er.
Välj Spara.
I bakgrunden skapas en diagnostikentitet med namnet
applicationinsights
på API-nivå.
Kommentar
Begäranden lyckas när API Management skickar hela svaret till klienten.
Loggare för ett enda API eller alla API:er
Du kan ange loggare på olika nivåer:
- Enskild API-loggare
- En loggare för alla API:er
Anger båda:
- Som standard åsidosätter den enskilda API-loggaren (mer detaljerad nivå) den för alla API:er.
- Om loggarna som konfigurerats på de två nivåerna är olika och du behöver båda loggarna för att ta emot telemetri (multiplexing) kontaktar du Microsoft Support. Observera att multiplexering inte stöds om du använder samma loggning (Application Insights-mål) på nivån "Alla API:er" och den enskilda API-nivån. För att multiplexering ska fungera korrekt måste du konfigurera olika loggare på "Alla API:er" och enskild API-nivå och begära hjälp från Microsofts support för att aktivera multiplexering för din tjänst.
Vilka data läggs till i Application Insights
Application Insights tar emot:
Telemetriobjekt | beskrivning |
---|---|
Begär | För varje inkommande begäran:
|
Beroende | För varje begäran som vidarebefordras till en serverdelstjänst:
|
Undantag | För varje misslyckad begäran:
|
Spårning | Om du konfigurerar en spårningsprincip . Inställningen severity i trace principen måste vara lika med eller större än verbosity inställningen i Application Insights-loggningen. |
Kommentar
Se Application Insights-gränser för information om maximal storlek och antal mått och händelser per Application Insights-instans.
Generera anpassade mått
Du kan generera anpassade mått till Application Insights från din API Management-instans. API Management genererar anpassade mått med hjälp av principen för utsända mått .
Kommentar
Anpassade mått är en förhandsversionsfunktion i Azure Monitor och omfattas av begränsningar.
Utför följande konfigurationssteg för att generera anpassade mått.
Aktivera anpassade mått (förhandsversion) med anpassade dimensioner i Application Insights-instansen.
- Gå till Application Insights-instansen i portalen.
- I den vänstra menyn väljer du Användning och uppskattade kostnader.
- Välj Anpassade mått (förhandsversion)>Med dimensioner.
- Välj OK.
"metrics": true
Lägg till egenskapen till den diagnostikentitetapplicationInsights
som har konfigurerats i API Management. För närvarande måste du lägga till den här egenskapen med hjälp av API Management Diagnostic – Skapa eller uppdatera REST API. Till exempel: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 [...] } }
Kontrollera att Application Insights-loggaren har konfigurerats i det omfång som du tänker generera anpassade mått (antingen alla API:er eller ett enda API). Mer information finns i Aktivera Application Insights-loggning för ditt API tidigare i den här artikeln.
emit-metric
Konfigurera principen i ett omfång där Application Insights-loggning har konfigurerats (antingen alla API:er eller ett enda API) och är aktiverat för anpassade mått. Information om principer finns i principreferensenemit-metric
.
Gränser för anpassade mått
Azure Monitor inför användningsgränser för anpassade mått som kan påverka din möjlighet att generera mått från API Management. Azure Monitor anger till exempel för närvarande en gräns på 10 dimensionsnycklar per mått och en gräns på 50 000 totala aktiva tidsserier per region i en prenumeration (inom en 12-timmarsperiod).
Dessa gränser har följande konsekvenser för att konfigurera anpassade mått i API Management:
Du kan konfigurera högst 10 anpassade dimensioner per
emit-metric
princip.Antalet aktiva tidsserier som genereras av
emit-metric
principen inom en 12-timmarsperiod är produkten av antalet unika värden för varje konfigurerad dimension under perioden. Om till exempel tre anpassade dimensioner konfigurerades i principen och varje dimension hade 10 möjliga värden inom perioden,emit-metric
skulle principen bidra med 1 000 aktiva tidsserier (10 x 10 x 10).Om du konfigurerar
emit-metric
principen i flera API Management-instanser som finns i samma region i en prenumeration kan alla instanser bidra till den regionala gränsen för aktiva tidsserier.
Prestandakonsekvenser och loggsampling
Varning
Loggning av alla händelser kan ha allvarliga prestandakonsekvenser, beroende på frekvens för inkommande begäranden.
Baserat på interna belastningstester orsakade aktivering av loggningsfunktionen en minskning av dataflödet med 40–50 % när begärandefrekvensen överskred 1 000 begäranden per sekund. Application Insights är utformat för att utvärdera programprestanda med hjälp av statistisk analys. Det är inte:
- Avsett att vara ett granskningssystem.
- Passar för att logga varje enskild begäran för högvolym-API:er.
Du kan ändra antalet loggade begäranden genom att justera inställningen Sampling. Ett värde på 100 % innebär att alla begäranden loggas, medan 0 % innebär att inget loggas.
Sampling bidrar till att minska telemetrivolymen, vilket effektivt förhindrar betydande prestandaförsämring samtidigt som nyttan med loggning kvarstår.
Om du vill förbättra prestandaproblemen hoppar du över:
- Begärande- och svarsrubriker.
- Innehållsloggning.
Video
Felsökning
Åtgärda problemet med telemetridataflöde från API Management till Application Insights:
- Undersöka om det finns en länkad AZURE Monitor Private Link-omfångsresurs (AMPLS) i det virtuella nätverk där API Management-resursen är ansluten. AMPLS-resurser har ett globalt omfång mellan prenumerationer och ansvarar för att hantera datafrågor och inmatning för alla Azure Monitor-resurser. Det är möjligt att AMPLS har konfigurerats med ett privat åtkomstläge specifikt för datainmatning. I sådana fall inkluderar du Application Insights-resursen och dess associerade Log Analytics-resurs i AMPLS. När det här tillägget har gjorts matas API Management-data in i Application Insights-resursen, vilket löser problemet med telemetridataöverföring.
Nästa steg
- Läs mer om Azure Application Insights.
- Överväg att logga med Azure Event Hubs.
- Lär dig mer om att visualisera data från Application Insights med Azure Managed Grafana