0

我在使用 Azure 工作簿(用于 Application Insights)时遇到问题,试图同时以不同的可视化方式显示相同的数据

我可能有一个简单的查询,例如:

requests 
 | where timestamp > ago(24h) 
 | summarize count() by client_CountryOrRegion
 | top 10 by count_ 
 | render piechart

但是现在我还想在table不复制/粘贴“算法”的情况下渲染相同的数据(实际上这显然比这个示例更复杂)。所以我想有效地做到这一点:

let data = requests 
 | where timestamp > ago(24h) 
 | summarize count() by client_CountryOrRegion
 | top 10 by count_ ;

 data | render table;
 data | render piechart;

但这只是呈现第一个可视化。

我已经尝试了我能想到的一切:

  • 只是把第二个可视化放在一个新的步骤中,但是我找不到引用这个data参数的方法。

  • 创建一个从查询提供的多值参数,然后尝试在后续步骤中使用它。那没有用。

    {数据} | 渲染饼图

  • 创建一个全局参数并尝试从一个步骤中设置它。似乎不是一种从查询步骤显式设置参数值的方法。

  • 尝试在高级选项卡下命名该步骤,但尽管有此消息,但我找不到任何示例说明如何在以后的步骤中引用该步骤。

在此处输入图像描述

必须有一种方法不必维护查询的两个副本,但我找不到任何东西。

4

1 回答 1

1

工作簿步骤不了解fork可以返回许多数据表的运算符之类的东西,它只知道如何可视化第一个表。

获得所需内容的最简单方法是使用 [merge数据源] 复制查询结果(https://github.com/microsoft/Application-Insights-Workbooks/blob/master/Documentation/DataSources/DataSources.md#合并来自不同来源的数据

  1. 创建您的查询,返回您想要的所有列,以您想要的方式可视化。给它一个有用的名称,就像你在屏幕截图中显示的那样。

  2. 添加另一个查询步骤,这次在数据源下拉列表中,选择merge

  3. 在合并步骤的设置中,使用“添加合并”选项,并在出现的弹出窗口中,选择合并类型“复制表”,然后选择步骤 1 中命名的步骤

  4. 合并步骤还允许您添加计算列,如果您需要对其他 2 个列进行数学运算,例如计算百分比/比率等,请使用合并步骤工具栏中的“添加新项目”项。您还可以重命名、重新排序、删除数据列

  5. 然后运行合并步骤并选择其他可视化

合并步骤也可以在不同的源之间进行其他类型的合并/联合/连接。因此,您可以将 Azure Resource Graph 中的数据(如属性/标签)与指标中的数据以及日志中的数据合并到一个网格中。并且合并步骤可以在一个合并步骤中完成所有这些工作,您不需要添加多个合并步骤(x = a union b,然后是 y = x union c 的另一个步骤,您可以将其作为多个 join /unions 在一个合并步骤中。),

如果您使用这种方式合并来连接/联合数据源,您可以隐藏原始源,合并仍然有效。但是,合并还不能依赖于隐藏的合并,因此我建议人们使用一个合并步骤来执行多个连接,而不是多个合并步骤,每个步骤都执行一个。

于 2021-04-28T19:27:39.603 回答