我正在尝试使用 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)
或者也许有某种解决方法来定义一个类似字典的结构,然后在我的查询中使用该结构
有任何想法吗 ?
我试图检查我的customDimensions对象是否具有属性,然后仅对具有该属性设置为某种值的查询进行计数。它计算SupportedLanguage的customDimensions对象中没有该属性的查询。
这是我当前的查询:
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日志分析编写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 转换为可用于与其他表连接的内容。
任何帮助将不胜感激。
我们可以从 Log Analytics Workspace 访问 Pod 相关日志,但没有应用程序日志(与我们在 中看到的类似kubectl get events)。
我指的是 Azure 文档,但我仍然无法从 Azure 门户访问应用程序 Pod 日志
如何创建使用两列或更多列的联接查询?
我试图做这样的事情,但我找不到任何关于如何加入多列的示例
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,但它们似乎都不起作用。
在应用服务的 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
有了下表和 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)
结果 …
我有以下查询:
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_Id,count但我想做的是添加两列,第一列用于特定的 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”。详细信息:行集必须序列化
我有一个查询,该查询取自 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/结果中的内容?
提前致谢