你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure Monitor 中的转换
Azure Monitor 中的转换允许你在传入数据发送到 Log Analytics 工作区之前对其进行筛选或修改。 在数据源传递数据之后且在将数据发送到目标之前,在云管道中执行转换。 转换在数据收集规则 (DCR) 中定义,并使用单独应用于传入数据中的每个条目的 Kusto 查询语言 (KQL) 语句。
下图演示了传入数据的转换过程,并显示了可能使用的示例查询。 在此示例中,我们仅会收集 message
列包含单词 error
的记录。
受支持的表
在 Log Analytics 工作区中,以下表支持转换。
- Azure Monitor 日志中支持转换的表中列出的任何 Azure 表。 还可以使用Azure Monitor 数据引用,其中列出了每个表的属性,包括它是否支持转换。
- 为 Azure Monitor 代理创建的任意自定义表。
创建转换
某些数据收集方案允许使用 Azure 门户添加转换,但大多数方案都需要使用其 JSON 定义创建新的 DCR,或向现有 DCR 添加转换。 请参阅在 Azure Monitor 中创建转换了解不同选项的信息,以及 Azure Monitor 中转换的最佳实践和示例了解常见方案的转换示例。
工作区转换 DCR
转换在数据收集规则 (DCR) 中定义,但 Azure Monitor 中仍有尚未使用 DCR 来收集数据的情况。 示例包括由诊断设置收集的资源日志和由 Application Insights 收集的应用程序数据。
工作区转换数据收集规则 (DCR)是直接应用于 Log Analytics 工作区的特殊DCR。 此 DCR 的目的是对尚未对其数据收集使用 DCR 的数据执行转换,因此无法定义转换。
每个工作区只能有一个工作区 DCR,但可以为支持转换的任意数量表添加转换。 这些转换应用于发送到这些表的任何数据,除非该数据来自另一 DCR。
例如,事件表用于存储来自 Windows 虚拟机的事件。 如果在工作区转换 DCR 中为事件表创建转换,转换将应用于运行 Log Analytics 代理1 的虚拟机收集的事件,因为此代理不使用 DCR。 但从 Azure Monitor 代理 (AMA) 发送的任何数据都会忽略转换,因为此代理使用 DCR 来定义数据收集。 你仍然可以将转换与 Azure Monitor 代理配合使用,但应将转换添加到与此代理关联的 DCR 中,而不是工作区转换 DCR。
1 Log Analytics 代理已弃用,但部分环境仍可能在使用。 这只是一个不使用 DCR 的数据源示例。
转换的成本
虽然转换本身不会产生直接成本,但以下情况可能会导致额外费用:
- 如果转换增加了传入数据的大小(例如通过添加计算列),则需要为额外数据支付标准引入费。
- 如果转换将传入数据减少了 50% 以上,则需要为超过 50% 的筛选数据量付费。
若要计算转换产生的数据处理费用,请使用以下公式:
[通过转换筛选掉的 GB] -([引入的总 GB] / 2)。 下表显示了示例。
管道引入的数据 | 转换删除的数据 | Log Analytics 工作区引入的数据 | 数据处理费用 | 引入费用 |
---|---|---|---|---|
20 GB | 12 GB | 8 GB | 2 GB 1 | 8 GB |
20 GB | 8 GB | 12 GB | 0 GB | 12 GB |
1 此费用不包括 Log Analytics 工作区引入的数据的费用。
为了避免产生此费用,应在应用转换之前使用替代方法筛选引入的数据。 通过这样做,可以减少转换处理的数据量,从而最大限度地减少任何额外的成本。
请参阅 Azure Monitor 定价,了解当前在 Azure Monitor 中引入和保留日志数据的费用。
重要
如果为 Log Analytics 工作区启用了 Azure Sentinel,则无论转换筛选的数据量如何,都不会产生筛选引入费用。