отображать только определенные ресурсы по типу с помощью kusto в Resource Graph Explorer
У меня проблема с отображением определенных ресурсов с помощью запроса azure kusto.
я хочу написать запрос 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
это не сработало, потому что оно также вернуло все ресурсы базы данных, связанные с рабочим "сервером"
Я пытался просмотреть документацию микрософтов, но не могу понять, что делать.
1 ответ
Если вам не нужны основные базы данных (которые хранят данные системного уровня в базах данных 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"