在 Resource Graph Explorer 中使用 kusto 按类型仅显示特定资源

display only specific resources by type with kusto in Resource Graph Explorer

我在使用 azure kusto 查询显示特定资源时遇到问题。

我想要的是编写一个仅在 azure 中显示数据库资源和服务器资源的 kusto 查询。

我写了以下关于 数据库 的查询:

resources
| where type in ("microsoft.sql/servers/databases","microsoft.dbforpostgresql/servers","microsoft.azuredata/postgresinstances","microsoft.dbformariadb/servers","microsoft.dbformysql/flexibleservers","microsoft.dbformysql/servers","microsoft.dbforpostgresql/flexibleservers","microsoft.dbforpostgresql/servergroups","microsoft.kusto/clusters/databases","microsoft.sql/managedinstances/databases","microsoft.synapse/workspaces/sqldatabases","ravenhq.db/databases","microsoft.documentdb/databaseaccounts")
| summarize Amount=count() by type

但是当我执行查询时,它显示了两个数据库,即使我只创建了一个,额外的一个是“主”,不应包括在内,因为资源组中只有一个资源

我也尝试过以下查询:

resources
| where type contains "database" | distinct type
| summarize Amount=count() by type

但问题是它不包括类型名称中没有单词“数据库”的所有数据库,例如“microsoft.azuredata/postgresinstances”

所以问题是,我如何编写一个查询来在我的仪表板上显示所有数据库。

问题的第二部分与之前的数据库类似,是我如何显示所有服务器。 我尝试过以下查询:

resources
| where split(type,"/")[array_length(split(type,"/"))] contains "servers"

即使我有服务器,它也没有给我任何结果。 然后我试了:

resources
| where type contains "/server" | distinct type
| summarize Amount=count() by type

那没有用,因为它还返回了包含工作“服务器”的所有数据库资源

我已尝试查看 Microsoft 文档,但不知道该怎么做。

如果您不想要主数据库(即在 SQL 数据库中存储系统级数据的数据库,您可以简单地过滤掉它们:

resources
| where type in ("microsoft.sql/servers/databases","microsoft.dbforpostgresql/servers","microsoft.azuredata/postgresinstances","microsoft.dbformariadb/servers","microsoft.dbformysql/flexibleservers","microsoft.dbformysql/servers","microsoft.dbforpostgresql/flexibleservers","microsoft.dbforpostgresql/servergroups","microsoft.kusto/clusters/databases","microsoft.sql/managedinstances/databases","microsoft.synapse/workspaces/sqldatabases","ravenhq.db/databases","microsoft.documentdb/databaseaccounts")
| where name type != "microsoft.sql/servers/databases" or name != "master"
| summarize Amount=count() by type

关于第二个问题,这应该有效,因为 has 运算符将只匹配整个标记(并且斜线分隔标记):

resources | where type has "servers"