【APIM】Azure API Management Self-Host Gateway是否可以把請求的日誌傳送到Application Insights呢?讓它和使用Azure上託管的 Gateway一樣呢?

路边两盏灯發表於2024-03-19

問題描述

Azure API Management Self-Host Gateway是否可以把請求的日誌傳送到Application Insights呢?讓它和使用Azure上託管的 Gateway一樣呢?

【APIM】Azure API Management Self-Host Gateway是否可以把請求的日誌傳送到Application Insights呢?讓它和使用Azure上託管的 Gateway一樣呢?

這是在APIM門戶上配置API,設定的Diagnostics Logs,當選擇Application Insights時,就可以把對介面請求時候所攜帶的Header/Body等資訊傳送到Applciation Insights中進行儲存並分析。

但是,在自建閘道器在K8S中,確無法傳送日誌到Applicaiton Insights,有什麼辦法呢?

問題解答

因為APIM Self-Host Gateway預設使用Application Insights的Endpoint ( https://dc.services.visualstudio.com/ ) 是Global Application Insights。而且在預設生產的YAML檔案中,初始化並沒有包含對Application Insights的設定項:

# NOTE: Before deploying to a production environment, please review the documentation -> https://aka.ms/self-hosted-gateway-production
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: testselfhost-env
  labels:
    app: testselfhost
data:
  config.service.endpoint: "xxxxxxxxxx.configuration.azure-api.cn"
  neighborhood.host: "testselfhost-instance-discovery"
  runtime.deployment.artifact.source: "Azure Portal"
  runtime.deployment.mechanism: "YAML"
  runtime.deployment.orchestrator.type: "Kubernetes"
---

所以如果需要傳送請求日誌到中國區指定的Application Insights中,需要修改YAML檔案,在configMap中新增 logs.applicationinsights.endpoint: "https://dc.applicationinsights.azure.cn/v2/track" 效果如下圖所示:

【APIM】Azure API Management Self-Host Gateway是否可以把請求的日誌傳送到Application Insights呢?讓它和使用Azure上託管的 Gateway一樣呢?

如上修改後,就能實現本地閘道器也傳送資料到Appliation Insights中。

參考資料

如何將 Azure API 管理與 Azure Application Insights 整合:https://docs.azure.cn/zh-cn/api-management/api-management-howto-app-insights?tabs=rest#enable-application-insights-logging-for-your-api

使用 YAML 將自承載閘道器部署到 Kubernetes:https://docs.azure.cn/zh-cn/api-management/how-to-deploy-self-hosted-gateway-kubernetes

相關文章