如何在 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。这可能吗?
在Azure 新的日志分析查询平台中,您可以查询性能计数器并汇总它们以最终创建一个漂亮的图表。
按照多维文档示例,它说
by 子句中的多个表达式创建多行,每个值组合对应一个行。
我想在他们的示例数据库中查询每台计算机发送和接收的网络字节数。从这个查询开始它应该是这样的
Perf
| where TimeGenerated > ago(1d)
| where (CounterName == "Bytes Received/sec" or CounterName == "Bytes Sent/sec")
| summarize avg(CounterValue) by bin(TimeGenerated, 1h), Computer, CounterName
| extend Threshold = 20
| render timechart
问题是Send 和 Received 字节在计算机级别的图形中被分组。
如何按照文档中的说明表示多个维度,以便我将Computer X Bytes Send和Computer X Bytes Received而不是将它们组合在一起,这没有任何意义?
更不用说在以前的版本中这是按预期工作的。
在 Azure 门户中使用“监视器”、“日志”功能时,您可以通过将列标题拖放到某个框中来对行进行分组,问题是按“保存”按钮时不会保存此内容。
如何编写生成相同结果的 KQL?按 Column_Name 进行汇总不会产生相同的结果。
我使用 Prometheus 存储性能指标并以百分位数形式查询结果(例如第 95 个百分位数响应时间)。我使用prometheus-net来发出它们。
Azure AppInsights 中的等效项是什么?
我看到 AppInsights/Kusto 中有百分位数函数,但是当我使用 GetMetric("blah").TrackValue(42) 时,它存储 Count、Min、Max、Sum 和 StdDev,这不是我使用的直方图分桶方法到《普罗米修斯》中。
for(int i=0; i < 500; i++) {
//Write some metrics
telemetryClient.GetMetric("blah").TrackValue(42); //real data isn't constant
}
Run Code Online (Sandbox Code Playgroud)
customMetrics
| where name == "blah"
//| summarize avg(value), percentiles(value, 50, 95) by bin(timestamp, 2m)
Run Code Online (Sandbox Code Playgroud)
azure azure-monitoring azure-application-insights prometheus azure-log-analytics
我有一个 kql-query,它计算自过去 24 小时以来 Azure 存储中上传的 BLOBS 数量。在 Azure 日志分析中运行时,查询打击会返回预期的数字。
StorageBlobLogs
| where TimeGenerated > ago(1d) and OperationName has "PutBlob" and StatusText contains "success" a
| distinct Uri
| summarize count()
Run Code Online (Sandbox Code Playgroud)
我现在想在时间表中可视化这些信息以获得一些详细视图。尝试将“渲染时间表”添加到查询链中,如下所示
StorageBlobLogs
| where TimeGenerated > ago(1d) and OperationName has "PutBlob" and StatusText contains "success" a
| distinct Uri
| summarize count()
| render timechart
Run Code Online (Sandbox Code Playgroud)
但是,当执行查询时,我收到错误消息;
无法创建可视化 无法创建堆叠条形图,因为您缺少以下类型之一的列:int、long、decimal 或 real
关于如何实现这一点有什么建议吗?
我发现自己通过 Azure Log Analytics 使用 Kusto 查询语言 (KQL),并且正在努力寻找一种方法来获取任何类型的详细执行报告或查询计划。
在 PostgreSQL 中,我用来EXPLAIN生成有关 DBMS 如何执行查询的报告,或者EXPLAIN ANALYZE生成有关查询实际执行情况的报告。KQL中有类似的东西吗?
搜索“kql 查询计划”、“kusto 解释查询”等基本上没有结果,但这可能只是意味着我不知道正确的术语。
Azure应用程序见解或日志分析的用例是什么?
我正在使用APIM和Azure函数,并希望对请求执行日志记录。哪一种是最合适的,应用程序见解或日志分析?
https://docs.microsoft.com/zh-CN/azure/azure-monitor/overview
更新资料
特别是,有关用于APIM的Azure应用程序见解与日志分析的任何信息?
azure azure-application-insights azure-functions azure-log-analytics
我有一些数据工厂管道,当将数据从 blob 复制到 SQL 时,有时可能会运行超过 2 小时。时间段是可变的,但我希望在任何管道运行超过 2 小时时收到通知/警报。
有哪些可能的方法可以做到这一点?
到目前为止我已经尝试过:
我们有一个基于 Azure 的系统,该系统的复杂性不断增加,我们需要监视事件链并确保它们到达我们期望的位置。
我们有一个本地 Java 应用程序,它将事件发送到 IoT 中心。IoT 中心路由到服务总线队列。我们有更新 Cosmos 数据库、触发其他函数或路由到其他队列的函数。某些函数也可以通过 API 管理实例调用。
我们的函数已经连接到 Application Insights,这里 Application Insights 实例的命名与 Function App 相同(IIRC 这个命名是通过创建 AI 资源的表单建议的)
Application Insights 中的应用程序地图让我倾向于每个环境一个 AI,以获得完整的系统地图。Log Analytics 在每个环境中使用一个日志分析似乎也是合乎逻辑的,以便能够在需要时关联数据。
Log Analytics 和 Application Insights 的正确路径分别是什么?
如果没有我标题中所说的那么明确,那么当我开始使用这些服务时,我需要考虑哪些因素?
azure azure-monitoring azure-application-insights azure-log-analytics
我已使用 KQL 将图表和日志从 Azure Log Analytics 添加到仪表板。我正在使用make-series它,效果很好,但问题如下:
我收到的日志可能不会扩展到仪表板规定的整个时间范围。所以基本上我需要访问开始时间/结束时间(和时间粒度)以覆盖make-series整个时间范围。
例如
logs
| make-series
P90 = percentile(Elapsed, 90) default = 0,
Average = avg(Elapsed) default = 0
// ??? need start/end time to use in from/to
on TimeGenerated step 1m
Run Code Online (Sandbox Code Playgroud)