代码之家  ›  专栏  ›  技术社区  ›  Zack ISSOIR

是否有一种方法可以将所有最后插入的性能计数器按机器分组为一行?

  •  0
  • Zack ISSOIR  · 技术社区  · 6 年前

    我正在尝试查询日志分析性能表。此表具有有关计算机的性能计数器。

    我想在一行中获取机器的所有性能计数器。

    我写了这个库斯托查询,但它带来了他自己排的每一个计数器。

    Perf  
    | where Computer in ('aks-nodepool1-85388480-3', 'aks-agentpool-40719753-2') 
    | summarize arg_max(TimeGenerated, *) by CounterName, Computer
    | project   Computer, CounterName, TimeGenerated, CounterValue
    

    我想要一个能产生以下结果的查询:

    (computer1,timegenerated,countername1,countername1value,countername2,countername2value,…)

    (计算机2,生成时间,计数器名称1,计数器名称1值,计数器名称2,计数器名称2值,…)

    (计算机3、TimeGenerated、Countername1、Countername1Value、Countername2、Countername2Value…)

    如有任何帮助或建议,我们将不胜感激。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Yoni L.    6 年前

    datatable(Computer:string, CounterName:string, CounterValue:double, TimeGenerated:datetime)
    [
        "comp1", "counter1", 1.0, datetime(2019-02-07 16:31:15),
        "comp2", "counter1", 1.1, datetime(2019-02-07 16:31:15),
        "comp3", "counter1", 1.2, datetime(2019-02-07 16:31:15),
        "comp4", "counter1", 1.3, datetime(2019-02-07 16:31:16),
        "comp2", "counter2", 1.4, datetime(2019-02-07 16:31:16),
        "comp3", "counter3", 1.5, datetime(2019-02-07 16:31:16),
        "comp4", "counter2", 1.6, datetime(2019-02-07 16:31:14),
    ]
    | summarize TimeGenerated = any(TimeGenerated), d = make_dictionary(pack(CounterName, CounterValue)) by Computer
    | evaluate bag_unpack(d)
    

    | Computer | TimeGenerated               | counter1 | counter2 | counter3 |
    |----------|-----------------------------|----------|----------|----------|
    | comp1    | 2019-02-07 16:31:15.0000000 | 1        |          |          |
    | comp2    | 2019-02-07 16:31:15.0000000 | 1.1      | 1.4      |          |
    | comp3    | 2019-02-07 16:31:15.0000000 | 1.2      |          | 1.5      |
    | comp4    | 2019-02-07 16:31:16.0000000 | 1.3      | 1.6      |          |
    

    datatable(Computer:string, CounterName:string, CounterValue:double, TimeGenerated:datetime)
    [
        "comp1", "counter1", 1.0, datetime(2019-02-07 16:31:15),
        "comp2", "counter1", 1.1, datetime(2019-02-07 16:31:15),
        "comp3", "counter1", 1.2, datetime(2019-02-07 16:31:15),
        "comp4", "counter1", 1.3, datetime(2019-02-07 16:31:16),
        "comp2", "counter2", 1.4, datetime(2019-02-07 16:31:16),
        "comp3", "counter3", 1.5, datetime(2019-02-07 16:31:16),
        "comp4", "counter2", 1.6, datetime(2019-02-07 16:31:14),
    ]
    | summarize arg_max(TimeGenerated, *) by Computer, CounterName
    | summarize d = make_dictionary(pack(CounterName, CounterValue, "TimeGenerated", TimeGenerated)) by Computer
    | evaluate bag_unpack(d)