标签: azure-log-analytics

Azure Log Analytics switch 语句/模式匹配

我正在尝试使用 Application Insights Analytics 和 Log Analytics Query Language处理我的Application Insights数据。我想要的是 C# 中的 switch 语句或 F# 中的模式匹配。所以伪代码是这样的:

requests
| where timestamp > now(-1d)
| project endpoint = (switch(name){ {case: "POST /api/jobs/search", then: "Jobs Search"}, {case: "POST /api/offices/search", then: "Office Search"} ...})
Run Code Online (Sandbox Code Playgroud)

或者也许有某种解决方法来定义一个类似字典的结构,然后在我的查询中使用该结构

有任何想法吗 ?

azure azure-application-insights azure-log-analytics

3
推荐指数
1
解决办法
1664
查看次数

Azure Log Analytics查询属性是否存在

我试图检查我的customDimensions对象是否具有属性,然后仅对具有该属性设置为某种值的查询进行计数。它计算SupportedLanguagecustomDimensions对象中没有该属性的查询。

这是我当前的查询:

customEvents
| where timestamp > ago(7d)
| summarize COUNT=count(customDimensions.SupportedLanguage) by lang=tostring(customDimensions.SupportedLanguage)
| render piechart
Run Code Online (Sandbox Code Playgroud)

我尝试执行以下操作,但没有成功:

customEvents
| where timestamp > ago(7d)
| where customDimensions.SupportedLanguage
| summarize COUNT=count(customDimensions.SupportedLanguage) by lang=tostring(customDimensions.SupportedLanguage)
| render piechart 
Run Code Online (Sandbox Code Playgroud)

azure azure-application-insights azure-log-analytics

3
推荐指数
1
解决办法
826
查看次数

如何编写Kusto查询以查找字段中具有相同值的两个连续行

我需要为Azure日志分析编写Kusto查询,以查找在字段中具有相同值(相同的错误代码)的连续事件。我们基本上需要确定请求是否连续两次失败。请求失败,一个成功而一个失败的情况将不返回。

azure-log-analytics kusto azure-data-explorer

3
推荐指数
1
解决办法
693
查看次数

如何将对象的 JSON 数组转换为 Kusto 表?

我有一个从服务器获取的 JSON 模式,我需要将此 JSON 转换为日志分析查询语言表,并使用该表与另一个表进行连接。

JSON 具有以下架构:

[{
   "X": "xyz",
   "Y": "xyz",
   "Z": "xyz",
   "prop1": "value1",
   "prop2": "value2",
   "prop3": "value3"
}, {
     "X": "xyz",
     "Y": "xyz",
     "Z": "xyz",
     "prop1": "value1",
     "prop2": "value2",
     "prop3": "value3"
}]
Run Code Online (Sandbox Code Playgroud)

我试过这个:

let table = todynamic('[{
  "X": "xyz",
  "Y": "xyz",
  "Z": "xyz",
  "prop1": "value1",
  "prop2": "value2", 
  "prop3": "value3"
}, {
  "X": "xyz",
  "Y": "xyz",
  "Z": "xyz",
  "prop1": "value1",
  "prop2": "value2",
  "prop3": "value3"
]');
Run Code Online (Sandbox Code Playgroud)

但这不会将 JSON 转换为可用于与其他表连接的内容。

任何帮助将不胜感激。

azure azure-log-analytics azure-data-explorer

3
推荐指数
1
解决办法
9733
查看次数

来自 Azure 门户的 Pod 中运行的应用程序的 Azure AKS 应用程序日志?

我们可以从 Log Analytics Workspace 访问 Pod 相关日志,但没有应用程序日志(与我们在 中看到的类似kubectl get events)。

我指的是 Azure 文档,但我仍然无法从 Azure 门户访问应用程序 Pod 日志

azure-log-analytics azure-aks

3
推荐指数
1
解决办法
2万
查看次数

连接 KQL (Azure) 中的多个列

如何创建使用两列或更多列的联接查询?

我试图做这样的事情,但我找不到任何关于如何加入多列的示例

let logMaster = Table1 
let logClient = Table1 
logMaster
| join kind=innerunique (logClient) on ($left.field1 == $right.field1 && $left.field2 == $right.field2) 
Run Code Online (Sandbox Code Playgroud)

我尝试过用逗号分隔(我认为文档有点暗示, and &&, and AND,但它们似乎都不起作用。

azure-log-analytics kql

3
推荐指数
1
解决办法
6530
查看次数

从 Bicep 获取 Log Analytics 工作区密钥

在应用服务的 bicep 文件中,我想从另一个 repo/bicep 文件中创建的现有日志分析工作台获取 id 和密钥。

我认为这在Terraform中是可能的,但找不到任何有关如何使用 Bicep 实现此目的的文档,这似乎有点奇怪。

我认为可能的事情应该是这样的;

// Refer to existing Log Analytics Workbench
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2022-10-01' existing = {
  name: logAnalyticsWorkspaceName
}
Run Code Online (Sandbox Code Playgroud)

然后做类似的事情;

logAnalyticsWorkspace.properties.keys.primary_shared_key
Run Code Online (Sandbox Code Playgroud)

有小费吗?

azure azure-resource-manager azure-log-analytics azure-bicep

3
推荐指数
1
解决办法
2240
查看次数

Kusto:如何从不参与 SUMMARIZE 的列中获取值?

有了下表和 Kusto 查询,如何获得包含“购买”列的结果?

let ProductsTable = datatable(Supplier: string, Fruit: string, Price: int, Purchase: datetime)
[
    'Contoso', 'Grapes', 220, datetime(2018-10-01 01:00),
    'Fabrikam', 'Lemons', 31, datetime(2018-10-01 02:00),
    'Contoso', 'Lemons', 29, datetime(2018-10-02 03:00),
    'Contoso', 'Grapes', 210, datetime(2018-10-02 04:00),
    'Fabrikam', 'Lemons', 30, datetime(2018-10-03 05:00),
    'Contoso', 'Bananas', 12, datetime(2018-10-03 06:00),
    'Contoso', 'Bananas', 12, datetime(2018-10-04 07:00),
    'Contoso', 'Lemons', 29, datetime(2018-10-04 08:00),
    'Contoso', 'Grapes', 200, datetime(2018-10-05 09:00),
];
ProductsTable
    | summarize Price = min(Price) by Supplier, Fruit
    | order by Supplier asc, Fruit asc, Price asc
Run Code Online (Sandbox Code Playgroud)

结果 …

azure-log-analytics azure-data-explorer

2
推荐指数
1
解决办法
3816
查看次数

使用 Left Join kql 获取行数?无法在当前上下文中调用函数“row_number”。详细信息:行集必须序列化

我有以下查询:

let p1 = pageViews | where url has "xxx";
p1
| join kind=inner (pageViews 
        | where  url !has "xxx")
on session_Id
| project timestamp1, session_Id1, url1, client_CountryOrRegion1, client_StateOrProvince1, client_City1, user_Id1 
Run Code Online (Sandbox Code Playgroud)

它确实获取来自某个提供商的用户,然后查看他们将访问哪些 URL。

我现在正在尝试了解我从该提供商那里获得了多少用户。

我可以这样做distinct session_Idcount但我想做的是添加两列,第一列用于特定的 session_id,然后在它更改时增加它,另一列用于增加发出的请求数。

IE

在此输入图像描述

试过

 let p1 = pageViews | where url has "project-management";
p1
| join kind=inner (pageViews 
        | where  url !has "project-management")
on session_Id
| project timestamp1, session_Id1, url1, client_CountryOrRegion1, client_StateOrProvince1, client_City1, user_Id1 
| extend Rank=row_number(1) 
Run Code Online (Sandbox Code Playgroud)

但它给了我

无法在当前上下文中调用函数“row_number”。详细信息:行集必须序列化

row-number azure-log-analytics kql

2
推荐指数
1
解决办法
2473
查看次数

Azure Kusto 查询用于修剪完整 Azure 资源 ID 的名称

我有一个查询,该查询取自 Azure 应用服务的诊断日志输出,并推送到 Log Analytics 工作区中。

AppServiceAppLogs
| where TimeGenerated >= now(-1h) and Level == "Error"
| project TimeGenerated , _ResourceId , Source, ResultDescription
| summarize ErrorsLogged = count() by _ResourceId
| order by ErrorsLogged
| render piechart 
Run Code Online (Sandbox Code Playgroud)

当图表(任何图表)呈现时,它会显示正确的完整_ResourceId表格内容,例如...

/subscriptions/00000-000000-000000-00000000/resourcegroups/my-resource-group/providers/microsoft.web/sites/my-webapp
Run Code Online (Sandbox Code Playgroud)

这些最终会因为太长而无法显示。无论如何,有没有办法修剪/subscriptions/00000-000000-000000-00000000/resourcegroups/my-resource-group/providers/microsoft.web/sites/结果中的内容?

提前致谢

azure azure-log-analytics azure-data-explorer

2
推荐指数
1
解决办法
4026
查看次数