You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过命令行修改Log Analytics的dataFlows并配置多streams?

Azure DCR修改:命令行更新dataFlows及多streams配置

我创建了Log Analytics工作区,想给Application Insights传入的遥测数据加自定义列/属性(比如system_CF)。最初通过Azure门户的「Log Analytics工作区 | 表」视图,右键点特定Application Insights表选「编辑转换」配置,结果ARM模板/JSON里生成了多个dataFlows条目,只有streams属性不一样,示例如下:

{
  "properties": {
    "dataFlows": [{
        "destinations": ["dc...d1"],
        "streams": ["Microsoft-Table-AppDependencies"],
        "transformKql": "source \n| extend system_CF=case(...))\n"
      },
      {
        "destinations": ["dc...d1"],
        "streams": ["Microsoft-Table-AppRequests"],
        "transformKql": "source \n| extend system_CF=case(...))\n"
      },
      ...
    ]
  }
}

后来尝试用REST API(借助az rest工具,按照编辑DCR的教程流程)更新数据收集规则,请求返回200状态码,但PATCH操作根本没生效——哪怕改transformKql内容也没用。现在问两个问题:

  1. 怎么用命令行修改dataFlows属性?
  2. 怎么设置多个streams?

问题1:命令行修改dataFlows属性

步骤1:导出当前DCR完整配置

用az rest调用GET接口,把当前DCR的JSON配置导出到本地文件:

az rest --method get --uri "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/dataCollectionRules/{dcrName}?api-version=2021-09-01-preview" > dcr-config.json

把命令里的{subscriptionId}、{resourceGroupName}、{dcrName}换成你自己的实际值。

步骤2:编辑本地JSON文件

打开dcr-config.json,找到properties.dataFlows节点,直接修改:

  • 要改现有dataFlow的transformKql,直接更新对应字段内容就行
  • 要新增dataFlow条目,就在数组里加新的对象
  • 要把多streams合并到同一个dataFlow,参考问题2的配置方式

步骤3:提交完整更新(用PUT替代PATCH)

PATCH操作容易出现字段匹配问题,推荐用PUT提交完整配置,确保修改生效:

az rest --method put --uri "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/dataCollectionRules/{dcrName}?api-version=2021-09-01-preview" --body @dcr-config.json --headers Content-Type=application/json

PUT会覆盖整个DCR配置,能保证你修改的内容完全应用上去。


问题2:设置多个streams

不用创建多个dataFlows条目,直接在单个条目的streams数组里加多个流名称就行,示例如下:

{
  "properties": {
    "dataFlows": [{
        "destinations": ["dc...d1"],
        "streams": [
          "Microsoft-Table-AppDependencies",
          "Microsoft-Table-AppRequests",
          "Microsoft-Table-Exceptions"
        ],
        "transformKql": "source \n| extend system_CF=case(...))\n"
      }
    ]
  }
}

这样同一个转换逻辑会自动应用到所有指定的streams上,不用重复写相同的transformKql。

注意点

  • 确保你加的所有streams属于同一数据源类型,而且转换逻辑对所有流都适用
  • 提交PUT请求前,检查JSON格式有没有语法错误
  • 操作完可以去Azure门户的DCR页面看配置是否生效,或者再用GET接口验证返回的配置内容

内容的提问来源于stack exchange,提问作者sschmeck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 09:20:35