0

我想在地图中可视化一些数据,因此我使用了工作簿。我没有在查询中设置时间范围,因为时间范围应该可以在仪表板中配置。将特定图块固定到仪表板后,更改时间范围时地图不会更新。当我更改工作簿中的时间范围时,它按预期工作。

请找到我在工作簿中尝试过的 Kusto 查询:

let mainTable = union customEvents
    | extend name =replace("\n", "", name)
    | where iif('*' in ("*"), 1 == 1, name in ("*"))
    | where true;
let queryTable = mainTable;
let cohortedTable = queryTable
    | extend dimension = client_CountryOrRegion
    | extend dimension = iif(isempty(dimension), "<undefined>", dimension)
    | summarize hll = hll(itemId) by tostring(dimension)
    | extend Events = dcount_hll(hll)
    | order by Events desc
    | serialize rank = row_number()
    | extend dimension = iff(rank > 5, 'Other', dimension)
    | summarize merged = hll_merge(hll) by tostring(dimension)
    | project ['Country or region'] = dimension, Counts = dcount_hll(merged);
cohortedTable

您对此的意见非常有帮助。提前致谢

4

1 回答 1

2

为了在仪表板时间范围更新时更新查询,工作簿中的查询需要使用时间范围参数

https://docs.microsoft.com/en-us/azure/azure-monitor/visualize/workbooks-overview#dashboard-time-ranges

如果将固定项目配置为使用时间范围参数,则固定工作簿查询部分将遵循仪表板的时间范围。仪表板的时间范围值将用作时间范围参数的值,仪表板时间范围的任何更改都会导致固定项更新。如果固定部件正在使用仪表板的时间范围,您将看到固定部件的副标题更新,以在时间范围更改时显示仪表板的时间范围。

此外,使用时间范围参数的固定工作簿部件将以仪表板的时间范围确定的速率自动刷新。上次运行查询的时间将出现在固定部分的副标题中。

如果固定步骤具有明确设置的时间范围(不使用时间范围参数),则无论仪表板的设置如何,该时间范围将始终用于仪表板。固定部分的副标题不会显示仪表盘的时间范围,查询不会在仪表盘上自动刷新。副标题将显示查询最后一次执行的时间。

您需要更新工作簿以具有时间范围参数,然后更新该查询步骤以在查询文本中使用该时间范围参数,例如

let mainTable = union customEvents
    | where timestamp {TimeRange}  // reference the time range parameter in the query text
    | extend name =replace("\n", "", name)
    | where iif('*' in ("*"), 1 == 1, name in ("*"))
    | where true;
let queryTable = mainTable;
let cohortedTable = queryTable
    | extend dimension = client_CountryOrRegion
    | extend dimension = iif(isempty(dimension), "<undefined>", dimension)
    | summarize hll = hll(itemId) by tostring(dimension)
    | extend Events = dcount_hll(hll)
    | order by Events desc
    | serialize rank = row_number()
    | extend dimension = iff(rank > 5, 'Other', dimension)
    | summarize merged = hll_merge(hll) by tostring(dimension)
    | project ['Country or region'] = dimension, Counts = dcount_hll(merged);
cohortedTable

或者通过在编辑查询时从 UX 中的时间范围下拉列表中选择时间范围参数(对于基于日志的查询,如果这是对时间范围不是 ux 中的字段的 ADX 数据源的查询,您必须在查询文本中使用时间范围参数)

如果您将使用此类查询(引用时间范围参数)的查询步骤固定到仪表板,则仪表板知道如何将仪表板的时间范围“注入”到查询中。(如果没有时间范围参数,我们可以尝试多种(天真的)方法来尝试注入时间范围,但取决于查询的确切作用,查询有可能有效但不正确

有关如何使用时间范围参数的详细信息,请参阅上面的时间范围参数链接,以及可用的各种语法,有一些方法可以获取参数中时间范围的开始、结束、持续时间、分桶等内容句法。

于 2021-05-10T17:29:50.590 回答