在 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"
我在使用 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"