Delen via


Azure API Management integreren met Azure Application Insights

VAN TOEPASSING OP: Alle API Management-lagen

U kunt eenvoudig Azure-toepassing Insights integreren met Azure API Management. Azure Application Insights is een uitbreidbare service voor webontwikkelaars die apps bouwen en beheren op meerdere platforms. In deze handleiding gaat u het volgende doen:

  • Doorloop de integratie van Application Insights in API Management.
  • Leer strategieën voor het verminderen van de invloed op prestaties op uw API Management-service-exemplaar.

Notitie

In een API Management-werkruimte kan een eigenaar van een werkruimte onafhankelijk Application Insights integreren en Application Insights-logboekregistratie inschakelen voor de API's van de werkruimte. De algemene richtlijnen voor het integreren van een werkruimte met Application Insights zijn vergelijkbaar met de richtlijnen voor een API Management-exemplaar; De configuratie is echter alleen gericht op de werkruimte. Op dit moment moet u Application Insights integreren in een werkruimte door een verbindingsreeks (aanbevolen) of een instrumentatiesleutel te configureren.

Waarschuwing

Wanneer u onze zelf-hostende gateway gebruikt, garanderen we niet dat alle telemetrie wordt gepusht naar Azure-toepassing Insights omdat deze afhankelijk is van buffering in het geheugen van Application Insights.

Vereisten

  • U hebt een Azure API Management-exemplaar nodig. Maak er eerst een .

  • Als u Application Insights wilt gebruiken, maakt u een exemplaar van de Application Insights-service. Zie Application Insights-resources op basis van werkruimten om een exemplaar te maken met behulp van Azure Portal.

    Notitie

    De Application Insights-resource kan zich in een ander abonnement of zelfs een andere tenant bevinden dan de API Management-resource.

  • Als u van plan bent om referenties voor beheerde identiteiten te configureren voor gebruik met Application Insights, voert u de volgende stappen uit:

    1. Schakel een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit in voor API Management.

      • Als u een door de gebruiker toegewezen beheerde identiteit inschakelt, noteert u de client-id van de identiteit.
    2. Wijs de identiteit toe aan de rol Monitoring Metrics Publisher , binnen het bereik van de Application Insights-resource. Als u de rol wilt toewijzen, gebruikt u Azure Portal of andere Azure-hulpprogramma's.

Overzicht van scenario

Hieronder volgen de stappen op hoog niveau voor dit scenario.

  1. Maak eerst een verbinding tussen Application Insights en API Management

    U kunt een verbinding maken tussen Application Insights en UW API Management met behulp van Azure Portal, de REST API of gerelateerde Azure-hulpprogramma's. API Management configureert een loggerresource voor de verbinding.

    Belangrijk

    Momenteel ondersteunt API Management in de portal alleen verbindingen met Application Insights met behulp van een Application Insights-instrumentatiesleutel. Voor verbeterde beveiliging raden we u aan een Application Insights-verbindingsreeks te gebruiken met een beheerde API Management-identiteit. Als u verbindingsreeks wilt configureren met referenties voor beheerde identiteiten, gebruikt u de REST API of gerelateerde hulpprogramma's, zoals wordt weergegeven in een latere sectie van dit artikel. Meer informatie over Application Insights-verbindingsreeks s.

    Notitie

    Als uw Application Insights-resource zich in een andere tenant bevindt, moet u de logboekregistratie maken met behulp van de REST API of gerelateerde hulpprogramma's, zoals wordt weergegeven in een latere sectie van dit artikel.

  2. Schakel ten tweede Application Insights-logboekregistratie in voor uw API of API's.

    In dit artikel schakelt u Application Insights-logboekregistratie in voor uw API met behulp van Azure Portal. API Management configureert een diagnostische resource voor de API.

Een verbinding maken met behulp van Azure Portal

Volg deze stappen om Azure Portal te gebruiken om een verbinding te maken tussen Application Insights en API Management.

Notitie

Waar mogelijk raadt Microsoft aan om verbindingsreeks te gebruiken met referenties voor beheerde identiteiten voor verbeterde beveiliging. Als u deze referenties wilt configureren, gebruikt u de REST API of gerelateerde hulpprogramma's, zoals wordt weergegeven in een latere sectie van dit artikel.

  1. Navigeer naar uw Azure API Management-service-exemplaar in Azure Portal.

  2. Selecteer Application Insights in het menu aan de linkerkant.

  3. Selecteer + Toevoegen.
    Schermopname die laat zien waar een nieuwe verbinding moet worden toegevoegd

  4. Selecteer het Application Insights-exemplaar dat u eerder hebt gemaakt en geef een korte beschrijving op.

  5. Als u beschikbaarheidsbewaking van uw API Management-exemplaar in Application Insights wilt inschakelen, schakelt u het selectievakje Beschikbaarheidsmonitor toevoegen in.

    • Met deze instelling wordt regelmatig gecontroleerd of het EINDPUNT van de API Management-gateway reageert.
    • Resultaten worden weergegeven in het deelvenster Beschikbaarheid van het Application Insights-exemplaar.
  6. Selecteer Maken.

  7. Controleer of de nieuwe Application Insights-logboekregistratie nu wordt weergegeven in de lijst.

    Schermopname van waar u de zojuist gemaakte Application Insights-logboekregistratie kunt bekijken.

Notitie

Achter de schermen wordt een logboekentiteit gemaakt in uw API Management-exemplaar met de instrumentatiesleutel van het Application Insights-exemplaar.

Tip

Als u de instrumentatiesleutel moet bijwerken die is geconfigureerd in de Application Insights-logboekregistratie, selecteert u de rij van de logboekregistratie in de lijst (niet de naam van de logboekregistratie). Voer de instrumentatiesleutel in en selecteer Opslaan.

Een verbinding maken met behulp van de REST API, Bicep of ARM-sjabloon

Volg deze stappen om de REST API, Bicep of ARM-sjabloon te gebruiken om een Application Insights-logboekregistratie te maken voor uw API Management-exemplaar. U kunt een logboekregistratie configureren die gebruikmaakt van verbindingsreeks met referenties voor beheerde identiteiten (aanbevolen) of een logboekregistratie die alleen gebruikmaakt van een verbindingsreeks.

Zie de vereisten voor het gebruik van een beheerde API Management-identiteit.

De Application Insights-verbindingsreeks wordt weergegeven in de sectie Overzicht van uw Application Insights-resource.

Verbindingsreeks met door het systeem toegewezen beheerde identiteit

Gebruik de API Management Logger - REST API maken of bijwerken met de volgende aanvraagbody.

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

Verbindingsreeks met door de gebruiker toegewezen beheerde identiteit

Gebruik de API Management Logger - REST API maken of bijwerken met de volgende aanvraagbody.

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

Logboekregistratie met alleen verbindingsreeks referenties

De Application Insights-verbindingsreeks wordt weergegeven in de sectie Overzicht van uw Application Insights-resource.

Gebruik de API Management Logger - REST API maken of bijwerken met de volgende aanvraagbody.

Als u de logboekregistratie voor een werkruimte configureert, gebruikt u de Werkruimtelogger - REST API maken of bijwerken .

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

Application Insights-logboekregistratie inschakelen voor uw API

Gebruik de volgende stappen om Application Insights-logboekregistratie in te schakelen voor een API. U kunt Application Insights-logboekregistratie ook inschakelen voor alle API's.

  1. Navigeer naar uw Azure API Management-service-exemplaar in Azure Portal.

  2. Selecteer API's in het menu aan de linkerkant.

  3. Klik op uw API, in dit geval Demo Conference API. Als deze is geconfigureerd, selecteert u een versie.

    Tip

    Als u logboekregistratie voor alle API's wilt inschakelen, selecteert u Alle API's.

  4. Ga vanaf de bovenste balk naar het tabblad Instellingen .

  5. Schuif omlaag naar de sectie Diagnostische logboeken .
    App Insights-logboekregistratie

  6. Schakel het selectievakje Inschakelen in .

  7. Selecteer de gekoppelde logger in de vervolgkeuzelijst Bestemming .

  8. Voer 100 in als sampling (%) en schakel het selectievakje Altijd logboekfouten in.

  9. Laat de rest van de instellingen staan. Zie de naslaginformatie over de instellingen voor diagnostische logboeken voor meer informatie over de instellingen.

    Waarschuwing

    Als u het standaardaantal nettoladingbytes voor logboekwaarde 0 overschrijft, kunnen de prestaties van uw API's aanzienlijk afnemen.

  10. Selecteer Opslaan.

  11. Achter de schermen wordt een diagnostische entiteit met de naam applicationinsights gemaakt op API-niveau.

Notitie

Aanvragen zijn geslaagd zodra API Management het volledige antwoord naar de client verzendt.

Loggers voor één API of alle API's

U kunt logboekregistraties opgeven op verschillende niveaus:

  • Logboekregistratie voor één API
  • Een logboekregistratie voor alle API's

Geef beide op:

  • Standaard overschrijft de afzonderlijke API-logboekregistratie (meer gedetailleerd niveau) de logboekregistratie voor alle API's.
  • Als de logboekregistraties die zijn geconfigureerd op de twee niveaus verschillen en u beide loggers nodig hebt om telemetrie (multiplexing) te ontvangen, neemt u contact op met Microsoft Ondersteuning. Houd er rekening mee dat multiplexing niet wordt ondersteund als u dezelfde logboekregistratie (Application Insights-bestemming) gebruikt op het niveau Alle API's en het niveau van één API. Om multiplexing correct te laten werken, moet u verschillende logboekregistraties configureren op het niveau 'Alle API's' en afzonderlijke API's en hulp vragen van Microsoft-ondersteuning om multiplexing in te schakelen voor uw service.

Welke gegevens worden toegevoegd aan Application Insights

Application Insights ontvangt:

Telemetrie-item Beschrijving
Aanvragen Voor elke binnenkomende aanvraag:
  • front-endaanvraag
  • front-endantwoord
Afhankelijkheid Voor elke aanvraag die wordt doorgestuurd naar een back-endservice:
  • back-endaanvraag
  • back-endantwoord
Uitzondering Voor elke mislukte aanvraag:
  • Mislukt vanwege een gesloten clientverbinding
  • Er is een on-error-sectie van het API-beleid geactiveerd
  • Heeft een HTTP-antwoordstatuscode die overeenkomt met 4xx of 5xx
Trace Als u een traceringsbeleid configureert.
De severity instelling in het trace beleid moet gelijk zijn aan of groter zijn dan de verbosity instelling in de Application Insights-logboekregistratie.

Notitie

Zie Application Insights-limieten voor informatie over de maximale grootte en het aantal metrische gegevens en gebeurtenissen per Application Insights-exemplaar.

Aangepaste metrische gegevens verzenden

U kunt aangepaste metrische gegevens verzenden naar Application Insights vanuit uw API Management-exemplaar. API Management verzendt aangepaste metrische gegevens met behulp van beleid, zoals emit-metric en azure-openai-emit-token-metric. In de volgende sectie wordt het emit-metric beleid als voorbeeld gebruikt.

Notitie

Aangepaste metrische gegevens zijn een preview-functie van Azure Monitor en onderhevig aan beperkingen.

Voer de volgende configuratiestappen uit om aangepaste metrische gegevens te verzenden.

  1. Schakel aangepaste metrische gegevens (preview) in met aangepaste dimensies in uw Application Insights-exemplaar.

    1. Navigeer naar uw Application Insights-exemplaar in de portal.
    2. Selecteer In het linkermenu Gebruik en geschatte kosten.
    3. Selecteer Aangepaste metrische gegevens (preview)>met dimensies.
    4. Selecteer OK.
  2. Voeg de "metrics": true eigenschap toe aan de applicationInsights diagnostische entiteit die is geconfigureerd in API Management. Op dit moment moet u deze eigenschap toevoegen met behulp van de API Management Diagnostic - REST API maken of bijwerken . Voorbeeld:

    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. Zorg ervoor dat de Application Insights-logboekregistratie is geconfigureerd voor het bereik dat u wilt verzenden van aangepaste metrische gegevens (alle API's of één API). Zie Application Insights-logboekregistratie inschakelen voor uw API, eerder in dit artikel voor meer informatie.

  4. Configureer het emit-metric beleid in een bereik waarin Application Insights-logboekregistratie is geconfigureerd (alle API's of één API) en is ingeschakeld voor aangepaste metrische gegevens. Zie de emit-metric beleidsreferentie voor meer informatie.

Limieten voor aangepaste metrische gegevens

Azure Monitor legt gebruikslimieten op voor aangepaste metrische gegevens die van invloed kunnen zijn op uw mogelijkheid om metrische gegevens uit API Management te verzenden. Azure Monitor stelt bijvoorbeeld momenteel een limiet van 10 dimensiesleutels per metrische waarde in en een limiet van 50.000 totale actieve tijdreeksen per regio in een abonnement (binnen een periode van 12 uur).

Deze limieten hebben de volgende gevolgen voor het configureren van aangepaste metrische gegevens in een API Management-beleid, zoals emit-metric of azure-openai-emit-token-metric:

  • U kunt maximaal 10 aangepaste dimensies per beleid configureren.

  • Het aantal actieve tijdreeksen dat door het beleid binnen een periode van 12 uur wordt gegenereerd, is het product van het aantal unieke waarden van elke geconfigureerde dimensie gedurende de periode. Als er bijvoorbeeld drie aangepaste dimensies zijn geconfigureerd in het beleid en elke dimensie 10 mogelijke waarden binnen de periode had, zou het beleid 1000 (10 x 10 x 10) actieve tijdreeksen bijdragen.

  • Als u het beleid configureert in meerdere API Management-exemplaren die zich in dezelfde regio in een abonnement bevinden, kunnen alle exemplaren bijdragen aan de regionale limiet voor actieve tijdreeksen.

Meer informatie over ontwerpbeperkingen en overwegingen voor aangepaste metrische gegevens in Azure Monitor.

Gevolgen voor prestaties en steekproeven nemen uit logboeken

Waarschuwing

Het vastleggen van alle gebeurtenissen in logboeken kan ernstige gevolgen hebben voor de prestaties, afhankelijk van de hoeveelheid binnenkomende aanvragen.

Op basis van interne belastingstests is berekend dat het inschakelen van de functie voor logboekregistratie een doorvoervermindering van 40%-50% veroorzaakt wanneer de aanvraagsnelheid 1000 aanvragen per seconde overschrijdt. Application Insights is ontworpen om de prestaties van toepassingen te beoordelen met behulp van statistische analyse. Het is niet:

  • Bedoeld als controlesysteem.
  • Geschikt voor het vastleggen van elke afzonderlijke aanvraag voor API's met grote volumes.

U kunt het aantal geregistreerde aanvragen bewerken door de instelling Sampling aan te passen. Een waarde van 100% betekent dat alle aanvragen worden geregistreerd, terwijl 0% geen logboekregistratie weergeeft.

Steekproef nemen helpt het telemetrievolume te verminderen, waardoor aanzienlijke prestatievermindering effectief wordt voorkomen terwijl de voordelen van logboekregistratie blijven bestaan.

Als u de prestaties wilt verbeteren, slaat u het volgende over:

  • Aanvraag- en reactieheaders.
  • Logboekregistratie van hoofdteksten.

Video’s

Probleemoplossing

Het probleem van telemetriegegevensstroom van API Management naar Application Insights oplossen:

  • Onderzoek of een gekoppelde Azure Monitor Private Link Scope-resource (AMPLS) bestaat in het VNet waar de API Management-resource is verbonden. AMPLS-resources hebben een globaal bereik voor abonnementen en zijn verantwoordelijk voor het beheren van gegevensquery's en -opname voor alle Azure Monitor-resources. Het is mogelijk dat de AMPLS is geconfigureerd met een alleen-privétoegangsmodus die specifiek is bedoeld voor gegevensopname. Neem in dergelijke gevallen de Application Insights-resource en de bijbehorende Log Analytics-resource op in de AMPLS. Zodra deze toevoeging is gemaakt, worden de API Management-gegevens opgenomen in de Application Insights-resource, waardoor het probleem met telemetriegegevensoverdracht wordt opgelost.