培训
认证
Microsoft Certified:Dynamics 365 Customer Insights(数据)专业 - Certifications
使用 Microsoft Dynamics 365 Customer Insights 实现解决方案来提供对客户个人资料的见解并跟踪互动活动。
你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:所有 API 管理层级
可以轻松地将 Azure Application Insights 与 Azure API 管理集成。 Azure Application Insights 是一项可扩展的服务,可让 Web 开发人员在多个平台上生成和管理应用。 在本指南中,你将:
备注
在 API 管理工作区中,工作区所有者可以独立集成 Application Insights,并为工作区的 API 启用 Application Insights 日志记录。 将工作区与 Application Insights 集成的一般指导与针对 API 管理实例的指导类似;但是,配置范围限定于工作区。 目前,必须通过配置连接字符串(推荐)或检测密钥将 Application Insights 集成到工作区中。
需要一个 Azure API 管理实例。 首先创建一个实例。
若要使用 Application Insights,请创建 Application Insights 服务实例。 若要使用 Azure 门户创建实例,请参阅基于工作区的 Application Insights 资源。
备注
Application Insights 资源可以位于不同的订阅中,甚至可以位于不同于 API 管理资源的租户。
如果计划配置托管标识凭据以用于 Application Insights,请完成以下步骤:
为标识分配监视指标发布者角色,范围限定为 Application Insights 资源。 若要分配角色,请使用 Azure 门户或其他 Azure 工具。
下面是此方案的高级步骤。
首先,在 Application Insights 和 API 管理之间创建连接
可以使用 Azure 门户、REST API 或相关的 Azure 工具在 Application Insights 与 API 管理之间建立连接。 API 管理为连接配置记录器资源。
重要
目前,在门户中,API 管理仅支持使用 Application Insights 检测密钥连接到 Application Insights。 为了增强安全性,建议使用具有 API 管理托管标识的 Application Insights 连接字符串。 若要使用托管身份凭据配置连接字符串,请使用 REST API 或相关工具,如本文后面部分所示。 详细了解 Application Insights 连接字符串。
然后,为 API 启用 Application Insights 日志记录。
在本文中,将使用 Azure 门户为 API 启用 Application Insights 日志记录。 API 管理会为 API 配置诊断资源。
按照以下步骤使用 Azure 门户在 Application Insights 和 API 管理之间创建连接。
在 Azure 门户中导航到自己的 Azure API 管理服务实例。
在左侧菜单中选择“Application Insights”。
选择“+ 添加”。
选择前面创建的 Application Insights 实例并提供一个简短的说明。
如要启用 Application Insights 中的 API 管理实例的可用性监视,请选择“添加可用性监视”复选框。
选择“创建”。
检查新 Application Insights 记录器现在是否显示在列表中。
备注
在后台,将在 API 管理实例中创建一个记录器实体,其中包含 Application Insights 实例的检测密钥。
提示
如果需要更新 Application Insights 记录器中配置的检测密钥,请在列表中选择记录器行(而不是记录器的名称)。 输入检测密钥,然后选择“保存”。
按照以下步骤使用 REST API、Bicep 或 ARM 模板为 API 管理实例创建 Application Insights 记录器。 可以配置一个使用具有托管标识凭据的连接字符串的记录器(推荐),或者一个仅使用连接字符串的记录器。
请参阅先决条件,了解如何使用 API 管理托管标识。
Application Insights 连接字符串显示在 Application Insights 资源的“概述”部分。
使用包含以下请求正文的 API 管理记录器 - 创建或更新 REST API。
{
"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"
}
}
}
使用包含以下请求正文的 API 管理记录器 - 创建或更新 REST API。
{
"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>"
}
}
}
Application Insights 连接字符串显示在 Application Insights 资源的“概述”部分。
使用包含以下请求正文的 API 管理记录器 - 创建或更新 REST API。
如果要为工作区配置记录器,请使用工作区记录器 - 创建或更新 REST API。
{
"properties": {
"loggerType": "applicationInsights",
"description": "Application Insights logger with connection string",
"credentials": {
"connectionString":"InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/;..."
}
}
}
使用以下步骤为 API 启用 Application Insights 日志记录。 还可以为所有 API 启用 Application Insights 日志记录。
在 Azure 门户中导航到自己的 Azure API 管理服务实例。
在左侧菜单中选择“API” 。
单击你的 API(在本例中为“演示会议 API”)。 选择一个版本(如果已配置)。
提示
若要为所有 API 启用日志记录,请选择所有 API。
从顶部栏转到“设置”选项卡。
向下滚动到“诊断日志”部分。
选中“启用”框。
在“目标”下拉列表中选择附加的记录器。
输入 100 作为“采样率”,并选中“始终记录错误”复选框。
将其余设置保留不变。 有关设置的详细信息,请参阅诊断日志设置参考。
警告
替代“要记录的有效负载字节数”的默认值 0 可能会显著降低 API 的性能。
选择“保存”。
在后台,将在 API 级别创建一个名为 applicationinsights
的 Diagnostic 实体。
备注
一旦 API 管理将整个响应发送到客户端,请求将成功。
可以在不同的级别指定记录器:
同时指定:
Application Insights 接收:
遥测项 | 说明 |
---|---|
请求 | 对于每个传入请求:
|
依赖项 | 对于每个转发到后端服务的请求:
|
Exception | 对于每个失败的请求:
|
Trace | 如果配置跟踪策略。 trace 策略中的设置 severity 必须等于或大于 Application Insights 日志记录中的 verbosity 设置。 |
备注
有关每个 Application Insights 实例的指标和事件的最大大小与数量的信息,请参阅 Application Insights 限制。
可以从 API 管理实例向 Application Insights 发出自定义指标。 API 管理使用 emit-metric 和 azure-openai-emit-token-metric 等策略发出自定义指标。 以下部分使用 emit-metric
策略作为示例。
若要发出自定义指标,请执行以下配置步骤。
在 Application Insights 实例中使用自定义维度启用自定义指标(预览)。
将 "metrics": true
属性添加到在 API 管理中配置的 applicationInsights
诊断实体。 目前必须使用 API 管理诊断 - 创建或更新 REST API 添加此属性。 例如:
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
[...]
}
}
确保在要发出自定义指标(所有 API 或单个 API)的范围内配置 Application Insights 记录器。 有关详细信息,请参阅本文前面的为 API 启用 Application Insights 日志记录。
在配置 Application Insights 日志记录(所有 API 或单个 API)并启用自定义指标的范围内配置 emit-metric
策略。 有关策略详细信息,请参阅 emit-metric
策略参考。
Azure Monitor 对可能影响从 API 管理发出指标能力的自定义指标实施使用限制。 例如,Azure Monitor 当前为每个指标设置 10 个维度键的限制,并为订阅中每个区域设置 50,000 个总活动时序数的限制(期限为 12 小时)。
这些限制对在 API 管理策略(例如 emit-metric
或 azure-openai-emit-token-metric
)中配置自定义指标具有以下影响:
每个 策略最多可以配置 10 个自定义维度。
策略在 12 小时期限内生成的活动时序数是该期限内每个已配置维度的唯一值数的乘积。 例如,如果在策略中配置了三个自定义维度,并且每个维度在该期限内有 10 个可能的值,则 策略将生成 1,000 (10 x 10 x 10) 个活动时序。
如果在订阅的同一区域中的多个 API 管理实例中配置 策略,则所有实例都可能导致区域活动时序限制。
详细了解 Azure Monitor 中自定义指标的设计限制和注意事项。
警告
记录所有事件可能会产生严重的性能影响,具体取决于传入请求的速率。
根据内部负载测试,当请求速率超过每秒 1,000 个请求时,启用日志记录功能会导致吞吐量下降 40%-50%。 Application Insights 旨在使用统计分析来评估应用程序性能。 而不是:
可以通过调整“采样率”设置来操控所记录的请求数。 值 100% 表示记录所有请求,0% 表示不进行日志记录。
“采样率”有助于减少遥测量,可有效防止性能出现明显下降,同时仍可保持日志记录的优势。
若要改进性能问题,请跳过:
解决从 API Management 到 Application Insights 的遥测数据流问题:
培训
认证
Microsoft Certified:Dynamics 365 Customer Insights(数据)专业 - Certifications
使用 Microsoft Dynamics 365 Customer Insights 实现解决方案来提供对客户个人资料的见解并跟踪互动活动。