Megosztás a következőn keresztül:


Az Azure API Management integrációja az Azure Application Insightsszal

A KÖVETKEZŐRE VONATKOZIK: Minden API Management-szint

A Azure-alkalmazás Insights egyszerűen integrálható az Azure API Managementtel. Az Azure Application Insights egy bővíthető szolgáltatás a több platformon alkalmazásokat fejlesztő és kezelő webfejlesztőknek. Ebben az útmutatóban a következőt fogja elkönyvelni:

  • Útmutató az Application Insights API Managementbe való integrálásához.
  • Megismerheti az API Management szolgáltatáspéldány teljesítményre gyakorolt hatásának csökkentésére vonatkozó stratégiákat.

Note

Egy API Management-munkaterületen a munkaterület tulajdonosa önállóan integrálhatja az Application Insightst, és engedélyezheti az Application Insights naplózását a munkaterület API-ihoz. A munkaterületnek az Application Insightsszal való integrálására vonatkozó általános útmutató hasonló az API Management-példányok útmutatóihoz; a konfiguráció azonban csak a munkaterületre terjed ki. Jelenleg egy kapcsolati sztring vagy egy eszközkulcs konfigurálásával integrálnia kell az Application Insightst egy munkaterületen.

Warning

A saját üzemeltetésű átjáró használatakor nem garantáljuk, hogy az összes telemetriát leküldjük Azure-alkalmazás Insightsba, mivel az az Application Insights memórián belüli pufferelésére támaszkodik.

Prerequisites

  • Szüksége van egy Azure API Management-példányra. Először hozzon létre egyet .

  • Az Application Insights használatához hozza létre az Application Insights szolgáltatás egy példányát. Ha az Azure Portal használatával szeretne létrehozni egy példányt, tekintse meg a munkaterület-alapú Application Insights-erőforrásokat.

    Note

    Az Application Insights-erőforrás egy másik előfizetésben vagy akár egy másik bérlőben is lehet , mint az API Management-erőforrás.

  • Ha úgy tervezi konfigurálni a felügyelt identitás hitelesítő adatait, hogy az Application Insights használatával használhassa, hajtsa végre az alábbi lépéseket:

    1. Engedélyezze a rendszer által hozzárendelt vagy felhasználó által hozzárendelt felügyelt identitást az API Managementhez.

      • Ha engedélyezi a felhasználó által hozzárendelt felügyelt identitást, jegyezze fel az identitás ügyfél-azonosítóját.
    2. Rendelje hozzá az identitást a Monitorozási metrikák közzétevője szerepkörhöz, amely az Application Insights-erőforrás hatókörébe tartozik. A szerepkör hozzárendeléséhez használja az Azure Portalt vagy más Azure-eszközöket.

Forgatókönyv áttekintése

Az alábbiakban a forgatókönyv magas szintű lépéseit követjük.

  1. Először hozzon létre kapcsolatot az Application Insights és az API Management között

    Az Application Insights és az API Management közötti kapcsolatot az Azure Portal, a REST API vagy a kapcsolódó Azure-eszközök használatával hozhatja létre. Az API Management egy naplózó erőforrást konfigurál a kapcsolathoz.

    Important

    A portálon az API Management jelenleg csak az Application Insights rendszerállapotkulcsával támogatja az Application Insights-kapcsolatok használatát. A fokozott biztonság érdekében az Application Insights kapcsolati sztring használatát javasoljuk egy API Management által felügyelt identitással. A kapcsolati sztring felügyelt identitás hitelesítő adataival való konfigurálásához használja a REST API-t vagy a kapcsolódó eszközöket a cikk egy későbbi szakaszában látható módon. További információ az Application Insights kapcsolati sztring.

    Note

    Ha az Application Insights-erőforrás egy másik bérlőben található, akkor létre kell hoznia a naplózót a REST API-val vagy a kapcsolódó eszközökkel a cikk egy későbbi szakaszában látható módon.

  2. Másodszor engedélyezze az Application Insights naplózását az API-khoz vagy API-khoz.

    Ebben a cikkben engedélyezi az Application Insights naplózását az API-hoz az Azure Portal használatával. Az API Management diagnosztikai erőforrást konfigurál az API-hoz.

Kapcsolat létrehozása az Azure Portal használatával

Kövesse az alábbi lépéseket az Azure Portallal az Application Insights és az API Management közötti kapcsolat létrehozásához.

Note

Ahol lehetséges, a Microsoft a fokozott biztonság érdekében a kapcsolati sztring használatát javasolja felügyelt identitás hitelesítő adatokkal. A hitelesítő adatok konfigurálásához használja a REST API-t vagy a kapcsolódó eszközöket a cikk egy későbbi szakaszában látható módon.

  1. Lépjen az Azure API Management szolgáltatáspéldányára az Azure Portalon.

  2. Válassza az Application Insights lehetőséget a bal oldali menüből.

  3. Válassza a + Hozzáadás lehetőséget.
    Új kapcsolat hozzáadásának helyét bemutató képernyőkép

  4. Válassza ki a korábban létrehozott Application Insights-példányt , és adjon meg egy rövid leírást.

  5. Ha engedélyezni szeretné az API Management-példány rendelkezésre állási monitorozását az Application Insightsban, jelölje be a Rendelkezésre állásfigyelő hozzáadása jelölőnégyzetet.

    • Ez a beállítás rendszeresen ellenőrzi, hogy az API Management-átjáró végpontja válaszol-e.
    • Az eredmények az Application Insights-példány Rendelkezésre állás paneljén jelennek meg.
  6. Válassza a Create gombot.

  7. Ellenőrizze, hogy az új Application Insights-naplózó megjelenik-e a listában.

    Képernyőkép az újonnan létrehozott Application Insights-naplózó helyének megtekintéséről.

Note

A háttérben létrejön egy naplózó entitás az API Management-példányban, amely tartalmazza az Application Insights-példány rendszerállapot-kulcsát.

Tip

Ha frissítenie kell az Application Insights-naplózóban konfigurált rendszerállapotkulcsot, válassza ki a naplózó sorát a listában (nem a naplózó nevét). Írja be a rendszerállapotkulcsot, és válassza a Mentés lehetőséget.

Kapcsolat létrehozása REST API-, Bicep- vagy ARM-sablon használatával

Az alábbi lépéseket követve a REST API, a Bicep vagy az ARM sablon használatával hozzon létre egy Application Insights-naplót az API Management-példányhoz. Konfigurálhat olyan naplózót, amely kapcsolati sztring használ felügyelt identitás hitelesítő adataival (ajánlott), vagy olyan naplózót, amely csak kapcsolati sztring használ.

Tekintse meg az API Management által felügyelt identitás használatának előfeltételeit .

Az Application Insights kapcsolati sztring az Application Insights-erőforrás Áttekintés szakaszában jelenik meg.

Kapcsolati sztring rendszer által hozzárendelt felügyelt identitással

Az API Management Logger használata – REST API létrehozása vagy frissítése a következő kérelemtörzsgel.

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

Kapcsolati sztring felhasználó által hozzárendelt felügyelt identitással

Az API Management Logger használata – REST API létrehozása vagy frissítése a következő kérelemtörzsgel.

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

Csak kapcsolati sztring hitelesítő adatokkal rendelkező naplózó

Az Application Insights kapcsolati sztring az Application Insights-erőforrás Áttekintés szakaszában jelenik meg.

Az API Management Logger használata – REST API létrehozása vagy frissítése a következő kérelemtörzsgel.

Ha egy munkaterülethez konfigurálja a naplózót, használja a Munkaterület-naplózót – REST API létrehozása vagy frissítése .

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

Az Application Insights naplózásának engedélyezése az API-hoz

Az alábbi lépésekkel engedélyezheti az Application Insights naplózását egy API-hoz. Az Application Insights naplózását is engedélyezheti az összes API-hoz.

  1. Lépjen az Azure API Management szolgáltatáspéldányára az Azure Portalon.

  2. Válassza ki az API-k API-kat> a bal oldali menüből.

  3. Válasszon ki egy API-t, például a Swagger Petstore-t. Ha konfigurálva van, válasszon ki egy verziót.

    Tip

    Az összes API naplózásának engedélyezéséhez válassza a Minden API lehetőséget.

  4. Lépjen a Beállítások lapra a felső sávon.

  5. Görgessen le a Diagnosztikai naplók szakaszhoz.
    Képernyőkép a diagnosztikai naplók konfigurációjáról a portálon.

  6. Jelölje be az Engedélyezés jelölőnégyzetet.

  7. Válassza ki a csatolt naplózót a Cél legördülő listában.

  8. Adja meg a 100-as értéket mintavételezésként (%) és jelölje be az Always log errors (Mindig naplóhibák) jelölőnégyzetet.

  9. Hagyja meg a többi beállítást, ahogy van. A beállításokkal kapcsolatos részletekért tekintse meg a diagnosztikai naplók beállításainak hivatkozását.

    Warning

    Ha felülbírálást ad az alapértelmezett 0-s naplóértékrea hasznos adat bájtjainak száma, az jelentősen csökkentheti az API-k teljesítményét.

  10. Válassza az Mentésgombot.

  11. A színfalak mögött egy entitás jön létre AZ API szintjén.

Note

A kérések akkor lesznek sikeresek, ha az API Management a teljes választ elküldi az ügyfélnek.

Naplózók egyetlen API-hoz vagy az összes API-hoz

A naplózókat különböző szinteken adhatja meg:

  • Egyetlen API-naplózó
  • Naplózó az összes API-hoz

Mindkettő megadása:

  • Alapértelmezés szerint az egyetlen API-naplózó (részletesebb szint) felülírja az összes API-hoz tartozót.
  • Ha a két szinten konfigurált naplózók eltérőek, és mindkét naplózóra szüksége van a telemetriai adatok (multiplexálás) fogadására, forduljon Microsoft ügyfélszolgálata. Vegye figyelembe, hogy a multiplexálás nem támogatott, ha ugyanazt a naplózót (Application Insights-célhelyet) használja a "Minden API" szinten és az egyetlen API-szinten. Ahhoz, hogy a multiplexálás megfelelően működjön, konfigurálnia kell a különböző naplózókat a "Minden API" és az egyéni API szintjén, és segítséget kell kérnie a Microsoft ügyfélszolgálatától a szolgáltatás multiplexálásának engedélyezéséhez.

Milyen adatok kerülnek az Application Insightsba?

Az Application Insights a következőt kapja:

Telemetriai elem Description
Request Minden bejövő kérés esetén:
  • előtérbeli kérés
  • előtérbeli válasz
Dependency Minden háttérszolgáltatásnak továbbított kérés esetén:
  • háttérkérelem
  • háttérrendszer válasza
Exception Minden sikertelen kérés esetén:
  • Egy lezárt ügyfélkapcsolat miatt meghiúsult
  • Aktiválta az API-szabályzatok hibaszakaszát
  • 4xx vagy 5xx válasz HTTP-állapotkóddal rendelkezik
Trace Ha nyomkövetési szabályzatot konfigurál.
A severity házirendben a trace beállításnak egyenlőnek vagy nagyobbnak kell lennie, mint az verbosity Application Insights naplózásának beállítása.

Note

Az Application Insights-példányonkénti metrikák és események maximális méretével és számával kapcsolatos információkért tekintse meg az Application Insights korlátait .

Egyéni metrikák kibocsátása

Az API Management-példányból egyéni metrikákat bocsáthat ki az Application Insightsba. Az API Management olyan szabályzatok használatával bocsát ki egyéni metrikákat, mint az emit-metric és az azure-openai-emit-token-metric. A következő szakasz a emit-metric szabályzatot használja példaként.

Note

Az egyéni metrikák az Azure Monitor előzetes verziója, és korlátozások vonatkoznak gombra.

Egyéni metrikák kibocsátásához hajtsa végre a következő konfigurációs lépéseket.

  1. Egyéni metrikák (előzetes verzió) engedélyezése egyéni dimenziókkal az Application Insights-példányban.

    1. Lépjen az Application Insights-példányra a portálon.
    2. A bal oldali menüben válassza a Használat és a becsült költségek lehetőséget.
    3. Válassza ki az egyéni metrikákat (előzetes verzió)>Dimenziókkal.
    4. Kattintson az OK gombra.
  2. Adja hozzá a "metrics": true tulajdonságot az applicationInsights API Managementben konfigurált diagnosztikai entitáshoz. Ezt a tulajdonságot jelenleg az API Management Diagnostic – REST API létrehozása vagy frissítése használatával kell hozzáadnia. Például:

    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. Győződjön meg arról, hogy az Application Insights-naplózó azon a hatókörön van konfigurálva, amelyet egyéni metrikákat kíván kibocsátani (akár az összes API-t, akár egyetlen API-t). További információ: Az Application Insights naplózásának engedélyezése az API-hoz a cikk korábbi részében.

  4. Konfigurálja a emit-metric szabályzatot egy olyan hatókörben, ahol az Application Insights naplózása konfigurálva van (vagy az összes API vagy egyetlen API), és engedélyezve van az egyéni metrikákhoz. A szabályzat részleteiért tekintse meg a szabályzatreferenciát emit-metric .

Egyéni metrikák korlátai

Az Azure Monitor használati korlátozásokat szab ki az egyéni metrikákra, amelyek befolyásolhatják a metrikák API Managementből való kibocsáthatóságát. Az Azure Monitor például jelenleg 10 dimenziókulcs-korlátot állít be metrika szerint, és egy előfizetésben régiónként 50 000 aktív idősorra vonatkozó korlátot (12 órán belül). Az API Managementben ezek közül 5 használható az alapértelmezett dimenziókhoz, beleértve a következőket:

  • Region
  • Szolgáltatásazonosító
  • Szolgáltatás neve
  • Szolgáltatás típusa

Ezek a korlátok az alábbi következményekkel járnak az egyéni metrikák API Management-szabályzatokban való konfigurálására, példáulemit-metric:azure-openai-emit-token-metric

  • Szabályzatonként legfeljebb 5 egyéni dimenziót konfigurálhat.

  • A szabályzat által 12 órán belül létrehozott aktív idősorok száma az egyes konfigurált dimenziók egyedi értékeinek szorzata az időszak során. Ha például három egyéni dimenzió van konfigurálva a szabályzatban, és minden dimenzió 10 lehetséges értékkel rendelkezik az időszakon belül, a szabályzat 1000 (10 x 10 x 10) aktív idősort adna hozzá.

  • Ha a szabályzatot több olyan API Management-példányban konfigurálja, amelyek ugyanabban a régióban vannak egy előfizetésben, minden példány hozzájárulhat a regionális aktív idősorkorláthoz.

További információ az egyéni metrikákra vonatkozó tervezési korlátozásokról és szempontokról az Azure Monitorban.

A teljesítményre gyakorolt hatás és a naplók mintavételezése

Warning

Az összes esemény naplózása komoly hatással lehet a teljesítményre a bejövő kérések gyakoriságától függően.

A belső terheléses tesztek alapján a naplózási funkció engedélyezése 40–50%-kal csökkentette az átviteli sebességet, amikor a kérések gyakorisága meghaladta a másodpercenkénti 1000 kérést. Az Application Insights célja az alkalmazások teljesítményének statisztikai elemzéssel történő felmérése. Ez nem az:

  • A naplózási rendszerként való használat.
  • Nagy mennyiségű API-k minden egyes kérésének naplózása.

A naplózott kérések számát a mintavételezési beállítás módosításával módosíthatja. A 100%-os érték azt jelenti, hogy minden kérés naplózva van, míg a 0% azt, hogy nincs naplózás.

A Mintavételezés

A teljesítményproblémák javítása érdekében hagyja ki az alábbiakat:

  • Kérés- és válaszfejlécek.
  • Testadatnaplózás.

Video

Troubleshooting

Az API Managementből az Application Insightsba irányuló telemetriai adatfolyam problémájának megoldása:

  • Vizsgálja meg, hogy létezik-e csatolt Azure Monitor Private Link Scope (AMPLS) erőforrás azon a virtuális hálózaton belül, amelyhez az API Management-erőforrás csatlakozik. Az AMPLS-erőforrások globális hatókörrel rendelkeznek az előfizetésekben, és az összes Azure Monitor-erőforrás adat lekérdezésének és betöltésének kezeléséért felelősek. Lehetséges, hogy az AMPLS privát hozzáférési móddal lett konfigurálva, kifejezetten adatbetöltéshez. Ilyen esetekben vegye fel az Application Insights-erőforrást és a hozzá tartozó Log Analytics-erőforrást az AMPLS-be. A hozzáadás után az API Management-adatok sikeresen be lesznek osztva az Application Insights-erőforrásba, megoldva a telemetriai adatátviteli problémát.
  • További információ a Azure-alkalmazás Insightsról.
  • Fontolja meg a naplózást az Azure Event Hubs használatával.
  • Tudnivalók az Application Insights adatainak az Azure Managed Grafana használatával történő vizualizációjáról