Så integrerar du Azure API Management med Azure Application Insights
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 varje steg i 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.
Skapa en application Insights instans
Om du vill Insights programtjänst skapar du en instans av application Insights tjänsten. Information om hur du skapar en instans med Azure Portal finns i Arbetsytebaserad programhantering Insights resurser.
Skapa en anslutning mellan Insights och API Management
- Gå till din Azure API Management-tjänstinstans i Azure Portal.
- Välj Program Insights på menyn till vänster.
- Välj + Lägg till.
- Välj den programinstans Insights du skapade tidigare och ange en kort beskrivning.
- Om du vill aktivera tillgänglighetsövervakning API Management instansen i Application Insights markerar du kryssrutan Lägg till tillgänglighetsövervakare.
- Den här inställningen verifierar regelbundet API Management tjänstslutpunkten svarar.
- Resultaten visas i fönstret Tillgänglighet för programinstansen Insights instansen.
- Välj Skapa.
- Kontrollera att den nya Insights loggaren med en instrumentationsnyckel nu visas i listan.
Anteckning
I bakgrunden skapas en loggningsentitet i din API Management instans som innehåller instrumenteringsnyckeln för Application Insights-instansen.
Aktivera loggning Insights application-program för ditt API
Gå till din Azure API Management-tjänstinstans i Azure Portal.
Välj API:er i menyn till vänster.
Klicka på ditt API, i det här fallet Demo Conference API. Om det är konfigurerat väljer du en version.
Gå till Inställningar från det översta 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 Logga alltid fel.
Lämna resten av inställningarna som de är.
Varning
Om du åsidosätter standardvärdet Antal nyttolastbyte till loggvärdet 0 kan prestandan för dina API:er försämras avsevärt.
Välj Spara.
I bakgrunden skapas en diagnostikentitet
applicationinsightsmed namnet på API-nivå.
Anteckning
Begäranden lyckas när API Management skickar hela svaret till klienten.
| Inställningsnamn | Värdetyp | Description |
|---|---|---|
| Aktivera | boolean | Anger om loggning av det här API:et är aktiverat. |
| Mål | Azure Application Insights loggare | Anger Azure Application Insights loggare som ska användas. |
| Sampling (%) | decimal | Värden från 0 till 100 (procent). Anger procentandelen begäranden som ska loggas till Application Insights. 0 % sampling innebär att noll begäranden loggas, medan 100 % sampling innebär att alla begäranden loggas. Använd den här inställningen för att minska effekten på prestanda vid loggning av begäranden till Application Insights. Se Prestandakonsekvenser och loggsampling. |
| Logga alltid fel | boolean | Om den här inställningen är markerad loggas alla fel i Application Insights, oavsett inställningen Sampling. |
| Loggklientens IP-adress | Om den här inställningen är vald loggas klientens IP-adress för API-begäranden till Application Insights. | |
| Utförlighet | Anger den utförliga nivån. Endast anpassade spårningar med högre allvarlighetsgrad loggas. Standard: Information. | |
| Korrelationsprotokoll | Välj protokoll som används för att korrelera telemetri som skickas av flera komponenter. Standard: Äldre Mer information finns i Telemetrikorrelation i Application Insights. |
|
| Grundläggande alternativ: Rubriker att logga | lista | Anger de huvuden som ska loggas till Application Insights för begäranden och svar. Standard: Inga huvuden loggas. |
| Grundläggande alternativ: Antal nyttolastbyte som ska loggas | heltal | Anger hur många första byte i brödtexten som loggas till Application Insights för begäranden och svar. Standard: 0. |
| Avancerade alternativ: Begäran i frontend | Anger om och hur begäranden i frontend ska loggas på Application Insights. Frontend-begäran är en begäran som inkommande till Azure API Management-tjänsten. | |
| Avancerade alternativ: Svar från frontend | Anger om och hur frontend-svar ska loggas till Application Insights. Frontend-svaret är ett svar som är utgående från Azure API Management tjänsten. | |
| Avancerade alternativ: Begäran från backend | Anger om och hur backend-begäranden loggas till Application Insights. Serverbegäran är en begäran som är utgående från Azure API Management-tjänsten. | |
| Avancerade alternativ: Svar från backend | Anger om och hur backend-svar ska loggas till Application Insights. Serversvar är ett svar som inkommande till Azure API Management tjänsten. |
Anteckning
Du kan ange loggare på olika nivåer:
- Enskild API-loggning.
- En loggning för alla API:er.
Ange båda:
- Om de är olika loggare används båda (multiplexeringsloggar).
- Om de är samma loggare med olika inställningar åsidosätter den enskilda API-loggaren (mer detaljerad nivå) den för alla API:er.
Vilka data läggs till i Application Insights
Program Insights tar emot:
| Telemetriobjekt | Description |
|---|---|
| Förfrågan | För varje inkommande begäran:
|
| Beroende | För varje begäran som vidarebefordras till en backend-tjänst:
|
| Undantag | För varje misslyckad begäran:
|
| Spårning | Om du konfigurerar en spårningsprincip. Inställningen severity i principen måste vara lika med eller större än inställningen i Application Insights trace verbosity logging. |
Generera anpassade mått
Du kan generera anpassade mått genom att konfigurera emit-metric principen.
Om du Insights tillgängliga föraggregeringsmått i API Management måste du manuellt aktivera anpassade mått i tjänsten.
- Använd principen
emit-metricmed API:et För att skapa eller uppdatera. - Lägg
"metrics":truetill i nyttolasten, tillsammans med andra egenskaper.
Anteckning
Se Programbegränsningar Insights information om maximal storlek och antal mått och händelser per program Insights instans.
Prestandakonsekvenser och loggsampling
Varning
Loggning av alla händelser kan ha allvarliga prestandaeffekter, beroende på frekvensen för inkommande begäranden.
Baserat på interna belastningstester orsakade aktivering av loggningsfunktionen en minskning av dataflödet på 40–50 % när förfrågningsfrekvensen överskred 1 000 begäranden per sekund. Program Insights har utformats för att utvärdera programprestanda med hjälp av statistisk analys. Det är inte:
- Avsett att vara ett granskningssystem.
- Passar för loggning av varje enskild begäran för API:er med stora volymer.
Du kan ändra antalet loggade begäranden genom att justera inställningen Sampling. Värdet 100 % innebär att alla begäranden loggas, medan 0 % inte återspeglar någon loggning.
Sampling bidrar till att minska telemetrivolymen, vilket effektivt förhindrar betydande prestandaförsämring samtidigt som fördelarna med loggning fortfarande finns.
Om du vill förbättra prestandaproblem kan du hoppa över:
- Begärande- och svarshuvuden.
- Loggning av brödtext.
Video
Nästa steg
- Läs mer om Azure Application Insights.
- Överväg att logga med Azure Event Hubs.