我想在时间图上缩放数据系列,以便它与其他系列可见。前两个系列代表成功和失败requests,第三个系列代表customEvent尝试纠正自身的应用程序。所有三个系列都被绘制出来,但由于幅度的相对差异,重启系列本质上是一条在 0 处的线。操作员ysplit选项 的文档render表明这axes将提供我正在寻找的内容,但似乎没有任何值影响图表。
requests
| where timestamp > ago(3d) and name has "POST /v1/validation"
| union customEvents | where timestamp > ago(3d)
| extend Event=case(itemType == 'request' and success == "True", "Succeeded", itemType == "request" and success == "False", "Failed", "Restarted")
| summarize Count=count() by Event, bin(timestamp, 1h)
| render timechart
Run Code Online (Sandbox Code Playgroud)
这是使用 Restarted 系列渲染的时间图,但桶中的最高数字是 2,因此它本质上是原点处的一条平线。
更新 5/3
UX 客户端是 Azure 门户的 Application Insights Analytics 小部件。
当我想用extend生成一个新的列名,并且新的列名包含一个空格时,代码如下:
requests
| extend "users name" = ""
//other codes
Run Code Online (Sandbox Code Playgroud)
然后发生错误:无法在第 xxx 行的“=”处解析查询。所以问题是我们可以在扩展的新列名中使用空格吗?
我也试过用单引号,还是一样的错误。
我尝试使用 Kusto 在 Azure 应用程序见解中简单地运行子查询,以便我可以从显示为一个的两个表中获取一些信息。
我正在尝试的查询是
table1
| extend progressLog = toscalar(
table2
| where common_Id == table1.common_Id // errors saying Ensure that expression: table1.common_Id is indeed a simple name
| summarize makelist(stringColumn)
)
Run Code Online (Sandbox Code Playgroud)
我尝试给这个 id 起别名,甚至连接两个表,如下所示:
requests
| extend aliased_id = common_Id
| join traces on operation_Id, $left.operation_Id == $right.operation_Id
| extend test_id = operation_Id
| extend progressLog = toscalar(
traces
| where operation_Id == aliased_id // Failed to resolve column or scalar expression named 'aliased_id'
| summarize makelist(message) …Run Code Online (Sandbox Code Playgroud) Kusto 提供了获取一周开始日和结束日的函数。这些是通过startofweek()和调用的endofweek()。startofweek()周日返回,endofweek()周六返回。
在某些国家,周是从周一到周日,我一直无法找到如何更改。
是否可以将文化设置为 kusto,以便startofweek()和endofweek()分别在周一和周日返回?
如何在 Kusto 中执行自定义排序顺序?
查询示例:
//==================================================//
// Assign variables
//==================================================//
let varStart = ago(2d);
let varEnd = now();
let varStorageAccount = 'stgacctname';
//==================================================//
// Filter table
//==================================================//
StorageBlobLogs
| where TimeGenerated between (varStart .. varEnd)
and AccountName == varStorageAccount
| sort by OperationName
Run Code Online (Sandbox Code Playgroud)
需要:
OperationNames(GetBlob、AppendFile等)放入自定义订单中。| sort by OperationName['GetBlob'], OperationName['AppendFile'], OperationName ascasc/对剩余的进行排序desc。这可能吗?
我正在尝试编写一个 Kusto 查询,其中有一个 bool 变量,并且基于该变量我想调用不同的函数。例如:
let flag = true;
let result = iff(flag == "true", function1, function2)
// function1 will return a different table and function2 will return another table.
Run Code Online (Sandbox Code Playgroud)
上面的代码是不可能的,因为类似的方法iff() and case()只能对标量值进行操作。
那么,有什么办法可以实现这一目标吗?
我有一张看起来像这样的表:
id timestamp value1 value2
1 09:12:37 1 1
1 09:12:42 1 2
1 09:12:41 1 3
1 10:52:16 2 4
1 10:52:18 2 5
2 09:33:12 3 1
2 09:33:15 3 2
2 09:33:13 3 3
Run Code Online (Sandbox Code Playgroud)
我需要按 id 和 value1 分组。对于每个组,我想要具有最高时间戳的行。
上表的结果如下所示:
id timestamp value1 value2
1 09:12:42 1 2
2 09:33:15 3 2
Run Code Online (Sandbox Code Playgroud)
我知道有一个汇总运算符会给我这个:
mytable
| project id, timestamp, value1, value2
| summarize max(timestamp) by id, value1
Result:
id timestamp value1
1 09:12:42 1
2 09:33:15 3
Run Code Online (Sandbox Code Playgroud)
但是我也无法获得此行的 …
我有 2 个 KQL 查询,我想将它们组合起来以将两行显示为一个结果。不仅仅是第一次查询的结果,然后是第二次查询的结果:
R_CL
| where isnotempty(SrcIP_s)
| project Message
| take 1;
R_CL
| where isempty(SrcIP_s)
| project Message
| take 1
Run Code Online (Sandbox Code Playgroud)
请参阅下面的示例R_L。我想看到 2 行作为结果,一个 SrcIP_s 不为空,第二个 SrcIP_s 为空(在这种情况下,它总是相同的)
let R_CL = datatable ( SrcIP_s:string, Message:string)
["1.1.1.1" ,"one",
"" ,"two",
"2.2.2.2","three",
"3.3.3.3","four"];
R_CL
| project SrcIP_s, Message
Run Code Online (Sandbox Code Playgroud) 详细了解如何在 Kusto 中编写查询。我在两个具有不同角色的表中有一列,但列标题是角色,我想将数据合并到一个名为“角色”的列中。
我尝试添加这个,| extends Roles = strcat(RoleName, Role),但这只是组合了数据。
这是我的查询尝试,我正在连接 3 个表,其中 2 个具有角色。第三个是我验证用户别名的地方。
(cluster('****').database('****').****_****** | where Discriminator == 'Service'| where DivisionOid == '******')
| join kind = leftouter cluster('****').database('****').Release_Users on SubscriptionId
| join kind = leftouter (cluster('****').database('****').Release_AzureAccess
| where RoleId contains "****" and PrincipalType !contains "ServicePrincipal") on SubscriptionId
| join kind = leftouter cluster('****').database('****').Headtrax_PeopleHierarchyV1 on $left.PrincipalName == $right.EmailAddress and $left.LiveEmailId == $right.EmailAddress
| extend Roles = strcat (RoleName, Role)<<--this was my failed attempt at combining the Role columns. That …Run Code Online (Sandbox Code Playgroud) 我绝对可以使用“//”来注释每一行,但想知道是否有办法避免这样做。