插件 〉Azure Data Explorer 数据源


开发者

Grafana Labs

注册以接收不定期的产品新闻和更新



数据源
grafana

Azure Data Explorer 数据源

  • 概述
  • 安装
  • 更新日志
  • 相关内容

Grafana 的 Azure Data Explorer 数据源

Azure Data Explorer 是一个日志分析云平台,针对即席大数据查询进行了优化。

安装

此插件有以下最低要求

  • v4.0.0+:Grafana 8.0.0
  • v3.0.0+:Grafana 7.1.0
  • < v3.0.0 需要 Grafana 6.3.6。

有关如何在 Grafana Cloud 或本地安装插件的详细说明,请查看插件安装文档

强制执行可信 Azure Data Explorer 端点

为增加安全性,可以强制执行一个可信 ADX 端点列表,集群 URL 将对照此列表进行验证。这可以防止请求被重定向到第三方端点。

在 Grafana 配置文件的 `[plugin.grafana-azure-data-explorer-datasource]` 部分设置 `enforce_trusted_endpoints` 可以启用此功能。

[plugin.grafana-azure-data-explorer-datasource]
enforce_trusted_endpoints = true

配置 Azure Data Explorer 数据源

配置 ADX 以使用此数据源:

  1. 创建 Azure Active Directory (AAD) 应用程序和 AAD 服务主体。
  2. 在 Azure Data Explorer WebExplorer 中,将 AAD 应用程序连接到 Azure Data Explorer 数据库用户。
  3. 使用 AAD 应用程序在 Grafana 中配置数据源连接。
  4. (可选) 若要在创建查询时使用下拉集群选择器,请向包含集群的订阅授予读取者访问权限。

创建 Azure Active Directory 服务主体

有关如何设置可以访问资源的 Microsoft Entra 应用程序和服务主体的详细说明,请遵循 Microsoft 的此指南:创建可以访问资源的 Microsoft Entra 应用程序和服务主体

创建 AAD 应用程序的另一种方法是使用 Azure CLI。有关 Azure CLI 命令的更多信息,请参阅az ad sp create-for-rbac

az ad sp create-for-rbac -n "http://url.to.your.grafana:3000"

这应该返回以下内容:

{
  "appId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "displayName": "azure-cli-2018-09-20-13-42-58",
  "name": "http://url.to.your.grafana:3000",
  "password": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "tenant": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}

将读取者角色分配给服务主体并移除贡献者角色

az role assignment create --assignee <your appId> --role Reader
az role assignment delete --assignee <your appId> --role Contributor

将 AAD 连接到 Azure Data Explorer 用户

上面创建的 AAD 应用程序需要被授予对您的 Azure Data Explorer 数据库的查看者访问权限(在本例中数据库名为 Grafana)。这可以通过使用点命令 `add` 来完成。`.add` 的参数包含由分号分隔的客户端 ID 和租户 ID。

.add database Grafana viewers ('aadapp=<your client id>;<your tenantid>')

包含客户端/应用程序 ID 和租户 ID 的实际示例:

.add database Grafana viewers ('aadapp=377a87d4-2cd3-44c0-b35a-8887a12fxxx;e7f3f661-a933-4b3f-8176-51c4f982exxx')

如果命令成功,您应该会看到类似这样的结果:

Azure Data Web Explorer Add result

配置 Grafana

通过填写以下字段添加数据源

字段描述
目录(租户)ID(Azure Active Directory -> 属性 -> 目录 ID)
应用程序(客户端)ID(Azure Active Directory -> 应用注册 -> 选择您的应用 -> 应用程序 ID)
客户端密钥(Azure Active Directory -> 应用注册 -> 选择您的应用 -> 密钥)
默认集群(选项) 如果创建查询时未选择集群,将使用默认集群。

附加设置

附加设置是可选设置,可以配置以更好地控制您的数据源。通过展开数据源配置页面底部的附加设置部分可以访问附加设置。

字段描述
查询超时此值控制客户端查询超时。
使用动态缓存启用此功能后,Grafana 将按查询动态应用缓存设置,并忽略默认缓存最大有效期。时间序列查询的 bin size 将用于扩大时间范围并作为缓存最大有效期。
缓存最大有效期默认情况下,缓存是禁用的。如果需要启用查询缓存,请指定缓存的最大存活时间范围。
数据一致性查询一致性控制查询和更新如何同步。默认为强一致性 (Strong)。更多信息请参阅查询一致性
默认编辑器模式此设置决定编辑器将以何种模式打开。默认为可视化 (Visual)。
默认数据库如果未选择数据库,将使用默认数据库。选择默认数据库需要一个默认集群。要加载默认数据库选项,必须使用有效的 Azure 连接保存数据源。
使用托管 schema如果启用,表、函数和物化视图将映射到用户友好的名称。
向主机发送用户名头部启用此功能后,Grafana 在向 ADX 发送请求时,将在 `x-ms-user-id` 头部和 `x-ms-client-request-id` 头部中传递登录用户的用户名。这在 ADX 中需要进行追踪时会很有用。

配置 On-Behalf-Of 身份验证(Beta 版)

{{% admonition type="caution" */%}} 此功能为 Beta 版,可能存在破坏性变更 {{%/* /admonition %}}

有关设置和使用 OBO 流程的信息,请参阅on-behalf-of 文档

查询数据源

在查询数据源之前,选择查询头部选项:集群、数据库和格式。您可以使用查询构建器、KQL 或 OpenAI 创建查询。

查询头部

集群

选择要查询的集群。如果数据源设置中设置了默认集群,则会自动填充集群选择器。如果没有集群可供选择,请参阅配置 Azure Data Explorer 数据源

数据库

选择要查询的数据库。如果数据源设置中设置了默认数据库,则会自动填充数据库选择器。

格式化为

使用“格式化为”下拉选择器,查询可以格式化为表格 (Table)、时间序列 (Time Series)、追踪 (Trace) 或 ADX 时间序列 (ADX time series) 数据。

  • 表格 (Table) 查询主要用于表格面板 (Table panel),显示为列和行的列表。此示例查询返回具有六个指定列的行:

    AzureActivity
    | where $__timeFilter()
    | project TimeGenerated, ResourceGroup, Category, OperationName, ActivityStatus, Caller
    | order by TimeGenerated desc
    
  • 时间序列 (Time series) 查询用于图形面板 (Graph Panel)(以及像单一状态面板 (Single Stat panel) 这样的其他面板)。查询必须精确包含一个 datetime 列、一个或多个数值列,并且可选包含一个或多个字符串列作为标签。时间列也应按升序排列。这是一个示例查询,它返回按 Category 列和小时分组的聚合计数:

    AzureActivity
    | where $__timeFilter(TimeGenerated)
    | summarize count() by Category, bin(TimeGenerated, 1h)
    | order by TimeGenerated asc
    

    数值列被视为指标,可选字符串列被视为标签。对于每个值列 + 一组唯一的字符串列值,都会返回一个时间序列。每个序列的名称格式为 valueColumnName {stringColumnName=columnValue, ... }。

    例如,以下查询将生成类似 `AvgDirectDeaths {EventType=Excessive Heat, State=DELAWARE}``EventCount {EventType=Excessive Heat, State=NEW JERSEY}` 的序列。

    StormEvents
    | where $__timeFilter(StartTime)
    | summarize EventCount=count(), AvgDirectDeaths=avg(DeathsDirect) by EventType, State, bin(StartTime, $__timeInterval)
    | order by StartTime asc
    
  • 追踪 (Trace) 格式选项可用于使用内置的追踪可视化功能显示适当格式的数据。要使用此可视化功能,数据必须按照此处定义的 schema 呈现。该 schema 包含 `logs`、`serviceTags` 和 `tags` 字段,它们应为 JSON 对象。如果 ADX 中的 schema 与以下内容匹配,这些字段将被转换为期望的数据结构:

    • `logs` - 具有一个数值 `timestamp` 字段和一个键值对象 `fields` 字段的 JSON 对象数组。
    • `serviceTags` 和 `tags` - 没有嵌套对象的典型键值 JSON 对象。

    键的值应为基本类型而非复杂类型。为空时传递的正确值应为 `null`,或者对于 `serviceTags` 和 `tags` 为空 JSON 对象,对于 `logs` 为空数组。

  • ADX 时间序列 (ADX time series) 用于使用 Kusto `make-series` 运算符的查询。查询必须精确包含一个名为 `Timestamp` 的 datetime 列,以及至少一个值列。还可以选择包含作为标签的字符串列。

    示例

    let T = range Timestamp from $__timeFrom to ($__timeTo + -30m) step 1m
      | extend   Person = dynamic(["Torkel", "Daniel", "Kyle", "Sofia"])
      | extend   Place  = dynamic(["EU",     "EU",     "US",   "EU"])
      | mvexpand Person, Place
      | extend   HatInventory = rand(5)
      | project  Timestamp, tostring(Person), tostring(Place), HatInventory;
    

    T | make-series AvgHatInventory=avg(HatInventory) default=double(null) on Timestamp from $__timeFrom to $__timeTo step 1m by Person, Place | extend series_decompose_forecast(AvgHatInventory, 30) | project-away *residual, *baseline, *seasonal

查询构建器

字段描述
选择一个表。
选择列的子集以获得更快的结果。时间序列需要时间和数值;其他列呈现为维度。有关维度的更多信息,请参阅时间序列维度
过滤器(可选) 为选定的列添加过滤器。过滤器的值将限于列的数据类型。
聚合(可选) 为选定的列添加聚合。从下拉菜单中选择聚合类型,并选择要聚合的列。
分组依据(可选) 为选定的列添加分组依据。对于时间分组依据,选择一个时间范围桶。
时间偏移 (已废弃,请在查询选项中使用 grafana 时间偏移)(可选) 按预定的持续时间偏移 Grafana 宏生成的时间范围。

查询构建器中支持 `dynamic` 类型的列。这包括数组、JSON 对象以及数组中的嵌套对象。一个限制是仅查询前 50,000 行的数据,因此构建器选择器中只会列出包含在前 50,000 行中的属性作为选项。如果默认不显示其他值,可以手动写入不同的选择器中。此外,由于这些查询使用了 `mv-expand`,它们可能会消耗大量资源。

有关通过 KQL 编辑器正确处理动态列的更多详细信息,请参阅以下文档。

Kusto 数据类型 - 有关 Kusto 支持的数据类型的文档。

Dynamic 数据类型 - 有关 dynamic 数据类型的详细文档。

使用 Kusto 查询语言 (KQL) 查询

查询使用 Kusto 查询语言编写;有关更多信息,请参阅Kusto 查询语言 (KQL) 概述

OpenAI 查询生成器

{{% admonition type="note" */%}} 您必须启用 LLM 插件才能使用此功能。{{%/* /admonition %}}

LLM 插件可以在LLM 应用中安装。安装插件后,请启用它。

要使用查询生成器,请键入关于您想查看的数据的语句或问题,然后点击生成查询 (Generate query)。在生成的查询 (Generated query) 字段中查看和编辑生成的 KQL 查询。对查询满意后,点击运行查询 (Run query) 运行查询。

时间宏

为了更轻松地编写查询,可以在查询的 `where` 子句中使用一些 Grafana 宏:

  • `$__timeFilter()` - 展开为 `TimeGenerated ≥ datetime(2018-06-05T18:09:58.907Z) and TimeGenerated ≤ datetime(2018-06-05T20:09:58.907Z)`,其中起始和结束时间取自 Grafana 时间选择器。
  • `$__timeFilter(datetimeColumn)` - 展开为 `datetimeColumn ≥ datetime(2018-06-05T18:09:58.907Z) and datetimeColumn ≤ datetime(2018-06-05T20:09:58.907Z)`,其中起始和结束时间取自 Grafana 时间选择器。
  • `$__timeFrom` - 展开为 `datetime(2018-06-05T18:09:58.907Z)`,即查询的开始时间。
  • `$__timeTo` - 展开为 `datetime(2018-06-05T20:09:58.907Z)`,即查询的结束时间。
  • `$__timeInterval` - 展开为 `5000ms`,这是 Grafana 根据查询的时间范围推荐的 bin size(以毫秒为单位)。在告警中,这将始终为 `1000ms`,建议不要在告警查询中使用此宏。

模板宏

  • `$__escapeMulti($myVar)` - 用于包含非法字符的多值模板变量。如果 $myVar 的值为 `'\\grafana-vm\Network(eth0)\Total','\\hello!'`,它会展开为:`@'\\grafana-vm\Network(eth0)\Total', @'\\hello!'`。如果使用单值变量,则无需此宏,只需直接在行内转义变量即可 - `@'\$myVar'`。

  • `$__contains(colName, $myVar)` - 用于多值模板变量。如果 $myVar 的值为 `'value1','value2'`,它会展开为:`colName in ('value1','value2')`。

    如果使用“全部”(`All`) 选项,请勾选“包含全部选项”(`Include All Option`) 复选框,并在“自定义全部值”(`Custom all value`) 字段中键入以下值:`all`。如果 $myVar 的值为 `all`,则宏将展开为 `1 == 1`。对于有很多选项的模板变量,这可以通过不构建一个大的 where..in 子句来提高查询性能。

使用变量进行模板化

您可以在指标查询中使用变量,而不是硬编码服务器、应用程序和传感器名称等内容。变量在仪表盘顶部显示为下拉选择框。这些下拉菜单可以轻松更改仪表盘中显示的数据。

在仪表盘设置中创建变量。通常,您需要编写 KQL 查询来获取下拉列表的值列表。不过,也可以使用硬编码的值列表。

  1. 为您的变量填写名称。`Name` 字段是变量的名称。还有一个 `Label` 字段用于友好名称。

  2. 在查询选项 (Query Options) 部分,在数据源 (Data source) 下拉列表中选择 `Azure Data Explorer` 数据源。

  3. 在查询 (Query) 字段中编写查询。使用 `project` 指定一个列 - 结果应为字符串值列表。

    Template Query

  4. 在底部,您将看到查询返回值的预览:

    Template Query Preview

  5. 在查询中使用变量(在本例中变量名为 `level`):

    MyLogs | where Level == '$level'
    

    对于允许多个值的变量,请使用 `in` 运算符代替:

    MyLogs | where Level in ($level)
    

Grafana 文档中阅读更多关于模板化和变量的信息。

数据库变量

无法使用 Kusto 查询语言获取数据库列表。在按使用变量进行模板化部分所述创建模板变量时,请在查询 (Query) 字段中使用以下函数返回数据库列表:

databases()

此变量可以在数据库下拉菜单中使用。这使您无需编辑面板中的查询即可切换数据库。

要使用变量,请在下拉菜单中键入变量的名称。例如,如果变量名称为 `database`,则键入 `$database`。

注解

注解是叠加在图表上方的事件。查询每行最多可以有三列,其中 datetime 列是必需的。注解渲染成本较高,因此限制返回的行数非常重要。

  • datetime 类型的列。
  • 带有别名 Text 或 text 的列,用于注解文本。
  • 带有别名 Tags 或 tags 的列,用于注解标签。这应该返回一个逗号分隔的标签字符串,例如 'tag1,tag2'。

示例查询

MyLogs
| where $__timeFilter(Timestamp)
| project Timestamp, Text=Message , Tags="tag1,tag2"

了解更多

在 Grafana Cloud 上安装 Azure Data Explorer 数据源

更多信息,请访问插件安装文档

更新日志

[6.0.0]

  • 添加加载指示器 #1210
  • 提高最低 Grafana 版本到 10.4.0
  • 依赖更新

[5.1.1]

  • 修复超时 > `1m` 的查询超时格式 #1196
  • 在 KQL 编辑器中正确设置 KQL #1202
  • 依赖更新

[5.1.0]

  • 支持使用 Shift+Enter 运行查询 #971
  • 使用 grafana-azure-sdk-react 统一凭据 #1075
  • 支持在数据源配置中设置 `application` 值 #1107
  • 从 @grafana/experimental 迁移到 @grafana/plugin-ui #1168
  • 依赖更新

[5.0.7]

  • errorsource 改进 #1030
  • 修复:查询行未显示 #1001
  • 依赖更新

[5.0.6]

  • 添加 errorsource #996
  • 依赖更新

[5.0.5]

  • 修复:遵守默认编辑器模式 #972
  • 修复:改进 Kusto 错误响应 #954
  • 依赖升级

[5.0.4]

  • 修复:现在从上下文加载自定义云 #921

[5.0.3]

  • 升级依赖

[5.0.2]

  • 升级依赖
  • 修复:重新添加一些旧版端点以兼容旧版本 Grafana。
  • 修复:确保多选模板变量在查询构建器中正常工作。

[5.0.1]

  • 升级依赖
  • 修复:如果未指定,则将查询数据库设置为默认值 #863

[5.0.0]

  • 破坏性变更:旧版查询编辑器已移除。adxLegacyEditor 功能开关将不再起作用。
  • 移除对已弃用的 Grafana API 的引用。
  • 依赖更新。
  • 改进错误消息。
  • 修复:绕过集群请求的可信端点强制执行。

[4.10.0]

  • 功能:支持私有数据源连接(安全 socks 代理)。
  • 功能:为 KQL 查询添加解释功能。
  • 功能:添加日志可视化支持。

[4.9.0]

  • 新功能:添加查询集群选择支持。
  • 功能:添加通过 ESM 加载 Monaco Editor 的兼容性。

[4.8.0]

  • 新功能:OpenAI:集成 LLM 插件
  • 将 github.com/grafana/grafana-plugin-sdk-go 从 0.180.0 升级到 0.195.0

[4.7.1]

  • 升级依赖
  • 更新变量编辑器

[4.7.0]

[4.6.3]

  • 新功能:添加对在集群 URL 中仅强制执行已知 Azure Data Explorer 端点。

[4.6.2]

  • 修复:QueryEditor 组件中的无限重新渲染。

[4.6.1]

  • 修复:允许动态值在追踪中为空。

[4.6.0]

  • 新功能:添加追踪数据和追踪可视化支持。
  • 依赖更新。
  • 修复:修复了阻止切换回 ADX 数据源的错误。
  • 修复:使用生成查询功能时,现在会在尝试查询之前验证令牌。
  • 修复:布尔值可以按 ADX 允许的方式表示为数字或 bool。

[4.5.0]

  • 添加 OpenAI 集成,允许用户通过自然语言生成 KQL 查询。
  • 实验性 - 添加对当前用户授权的支持。

[4.4.1]

使用最新的 Go 版本 1.20.4 构建

[4.4.0]

更新后端依赖

[4.3.0]

此版本改进了 Azure Data Explorer 模板变量的编辑器

  • 新功能:为数据库、表和列添加了预定义查询,以简化模板变量的使用。
  • 新功能:查询构建器和 KQL 编辑器都可用于查询模板变量。
  • 新功能:Azure Data Explorer 模板变量查询现在支持宏和模板变量。

此版本还包括:

  • 修复:在使用 KQL 编辑器时,ADX 时间序列格式现已保留。
  • 修复:配置编辑器标签宽度现在一致。
  • 修复:字段聚焦现在按预期工作。
  • 重构:OBO 令牌提供程序使用可配置的中间件。
  • 重构:已移除 Grafana 中已弃用的 metricFindQuery 函数以及其他 rxjs 函数。

[4.2.0]

此版本改进了插件查询构建器

  • 新功能:现在可以在查询中过滤列,从而提高查询性能。
  • 查询预览包含 Kusto 的语法高亮。
  • 所有其他组件已重构以匹配最新的 Grafana UI。

除此之外,此版本还包括:

  • 重构:身份验证和配置已重构以匹配其他 Azure 插件。
  • 修复:配置 On-Behalf-Of 身份验证的数据源的健康检查。
  • 修复:返回空数据的告警查询。

[4.1.10]

[4.1.9]

  • 安全:构建过程中的 Go 版本升级到 1.19.2
  • 修复:Schema 映射显示宏函数

[4.1.8]

  • 在仪表盘加载时报告交互以进行功能追踪

[4.1.7]

  • 修复创建告警时崩溃的问题
  • 自动补全现在支持动态值
  • 修复包含括号的值的模板变量

[4.1.6]

  • 更改动态列的默认逻辑:如果 schema 中存在类型,则转换为 double

[4.1.5]

  • 修复:更改数据库时更新 KQL 表达式中的表。

[4.1.4]

  • 更改默认格式为表格数据,以避免意外的高内存消耗。
  • 修复:在查询构建器中引用包含空格的列。

[4.1.3]

  • 修复:在查询构建器中正确转换动态类型的列。

[4.1.2]

此版本包含多个 bug 修复

  • 修复配置中的重新加载 schema 按钮。
  • 修复查询构建器中简单类型的动态解析。
  • 修复构建器中“聚合”和“分组依据”的移除逻辑。
  • 返回配置的默认数据库,而不是第一个数据库。

[4.1.1]

可视化查询构建器的多项 bug 修复

  • 添加物化视图作为表。
  • 修复模板变量引用问题。
  • 修复具有多种类型的动态字段语法。

[4.1.0]

  • 新功能:可视化查询编辑器现在支持 `dynamic` 列。这包括包含一个或多个 `dynamic` 值数组的列。

[4.0.2]

  • Beta 功能的破坏性变更:On-Behalf-Of 流程现在默认为禁用

[4.0.1]

  • Bug 修复:移除用于 On-Behalf-Of 流程 (Beta) 的自定义令牌缓存,并依赖 Microsoft 身份验证库维护本地缓存。

[4.0.0]

  • 破坏性变更:Azure Data Explorer 插件现在需要 Grafana 8.0+ 才能运行。
  • 破坏性变更:obo_latency_seconds 指标已移除。
  • Bug 修复:包含了新的 Kusto 查询编辑器。注意:此新编辑器仅在使用 Grafana 8.5 或更高版本时可用。修复 #325。
  • Bug 修复:从 Where/Aggregate/Group by 子句中过滤动态列,以防止语法错误。
  • Bug 修复:在查询构建器中为 timespan 类型添加逻辑运算符。
  • 内部:通过 Grafana Azure SDK 进行客户端密钥身份验证。
  • 内部:通过 Go 的 MSAL 进行 OBO 身份验证。

[3.7.1]

  • Bug 修复:修复国家云的 scope

[3.7.0]

  • 杂项:添加了测试覆盖率脚本

[3.7.0-beta1]

  • 功能:添加 On-Behalf-Of 令牌授权
  • Bug 修复:消除客户端 ID Panic
  • Bug 修复:将 azure 错误附加到查询失败消息
  • Bug 修复:修复带有连字符的列上的宏正则表达式
  • 内部:更新插件依赖

[3.6.1]

  • 恢复了在 3.6.0 中所做的更改,并复用先前的代码编辑器,直到修复相关问题。

[3.6.0]

  • 将自定义查询编辑器替换为 @grafana/ui 通用编辑器,支持 Kusto。

[3.5.1]

  • Bug 修复:修复了 HTTP 超时设置未生效的问题
  • Bug 修复:修复了在配置中手动输入与复制/粘贴客户端密钥时的问题
  • Bug 修复:修复了注解查询未显示的问题

[3.5.0]

  • 添加对国家云的支持
  • 用调用资源处理程序替换插件代理路由
  • 添加实例管理器、共享 http 客户端并使用新的令牌提供程序

[3.4.1]

  • Bug 修复:修复配置页面加载 schema 时出现的错误。

[3.4.0]

注意:最低要求的 Grafana 版本现在是 7.4

  • Bug 修复:修复了查询构建器无法处理包含特殊字符的表名的问题
  • Bug 修复:修复了清除后空 WHERE 行保留在查询构建器中的问题
  • 模板变量现在可以在其他模板变量的查询中使用。

[3.3.2]

  • Bug 修复:修复了当 Grafana 从子路径提供服务时 KQL Monaco 编辑器无法加载的问题
  • Bug 修复:修复了模板查询变量不工作的问题

[3.3.1]

  • Bug 修复:在设置跟踪头部之前检查 plugincontext 用户是否为 nil

[3.3.0]

  • 通过将登录的 Grafana 用户名作为头部传递给 ADX 来添加跟踪功能
  • 使用 jsoniter 代替 encoding/json 以提高性能
  • Bug 修复:在构建查询之前展开查询模板变量
  • Bug 修复:修复确认对话框中的小拼写错误

本项目的所有重要更改都将记录在此文件中。

[3.2.1]

  • 锁定 grafana-packages 版本并升级工具包。

[3.2.0]

  • 添加了对 decimal 数据类型的支持。
  • 移除了全局查询限制,以防止数据被截断。
  • 改进了可视化查询构建器,使其更易于向查询添加聚合。
  • 添加了对处理 schema 映射的支持,以过滤掉可视化查询构建器中可用的数据库 schema 部分。
  • Bug 修复:防止创建仪表盘时触发空查询。
  • Bug 修复:修复在编辑器处于原始模式时正确选择 ADX 时间序列选项的问题。
  • Bug 修复:添加了超时设置,并确保插件正确处理长时间运行查询的超时。

[3.1.0]

  • 全局查询限制现在可在数据源设置中配置。
  • 自动补全在搜索可能的值时将包含其他过滤器。
  • 添加了 !has 和 has_any 运算符。
  • 添加数据源设置以在新创建查询时设置默认视图。
  • 添加了动态缓存,以启用按查询设置缓存。
  • 列名不会将精确匹配排序在顶部。
  • 支持自动补全的列现在会在键入之前预填充选项。
  • 添加了执行时间偏移查询的支持。
  • 为聚合添加了 dcount() 运算符。
  • Bug 修复:操作符描述现在更宽,更易读。
  • Bug 修复:将模板变量显示为选项。
  • Bug 修复:从查询中排除空/缺失的操作符。
  • Bug 修复:没有 group-by 的聚合不工作。
  • Bug 修复:时间间隔偏差 1000ms。

[3.0.5]

  • Bug 修复:在可视化编辑器中为表或数据库选择模板变量时,值未正确设置。现在应该已修复。

[3.0.4]

  • Bug 修复:可视化编辑器现在在数据库选择器中包含模板变量。

[3.0.3]

  • Bug 修复:当数据源凭据无效时显示正确的错误消息。
  • Bug 修复:可视化编辑器现在支持动态列中的时间字段。

[3.0.2]

  • Bug 修复:修复了更改数据源时 schema 未更新的问题。
  • 提高了加载表 schema 时的性能。
  • 提高了自动补全搜索时的性能。

[3.0.1]

  • 支持可视化查询编辑器中的值自动补全。
  • 支持可视化查询编辑器中的动态列。动态字段会自动从表 schema 中读取,并在构建查询时可供选择。值自动补全也适用于动态列。
  • 现有仪表盘的迁移脚本。
  • 自动补全和动态列功能的性能改进。
  • 提高了加载表 schema 时的性能。

[3.0.0]

  • 添加了对新的可视化查询编辑器的支持。
  • 将现有查询编辑器移植到 React。

[2.1.0]

  • 添加了对用于模板变量查询的 databases() 宏的支持,并且数据库变量可以在查询编辑器中的数据库下拉菜单中使用。这允许用户无需编辑查询即可切换数据库。

[2.0.6]

  • v7 的签名插件

[2.0.5]

  • Bug 修复,针对问题 #61。这是一个临时修复,因为适当的修复需要重构部分后端。

[2.0.4]

  • Bug 修复,针对问题 #73

[2.0.3]

  • Monaco 加载器的 Bug 修复

[2.0.2]

  • Bug 修复,针对问题 #60
  • 更新了软件包

[2.0.1]

  • 向插件添加键值支持(基于 mysql 插件)
  • 指标命名和别名的新功能

[2.0.0]

  • 时间序列查询现在支持告警。
  • 时间序列查询现在支持多个数值列和多个字符串列。
  • 使用 Kusto `make-series` 运算符创建的 Kusto“时间序列”类型现已支持。
  • 已添加宏,以避免与 Grafana 内置的查询宏冲突:$__timeFrom、$__timeTo 和 $__timeInterval。
  • 已移除表格和时间序列查询的缓存,直到后端插件支持缓存。
  • 查询不再在没有 ORDER by 子句时附加它,但是如果时间序列未排序,查询编辑器中会有警告。

[1.3.2] - 2019-06-19

  • Bug 修复,针对问题 #8
  • 更新了软件包
  • 添加了 circleci

v1.3.0

  • 如果查询中未指定 ORDER by 子句,则添加一个。它使用 from 子句或 summarize...bin() 中的 datetime 字段。
  • 从配置页面移除了 Subscription Id 字段,因为不再需要它。

v1.2.0

  • 添加了缓存配置选项。默认的内存缓存周期是 30 秒,新的“最小缓存周期”选项允许您更改它。

v1.1.0

  • 添加了 $__escapeMulti 宏

v1.0.0

  • Azure Data Explorer 数据源的第一个版本。