Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Há duas maneiras de consultar dados de vários espaços de trabalho, aplicativos e recursos:
- Explícito - direcione o espaço de trabalho, aplicativo ou recurso usando as expressões workspace(), app() ou resource(), conforme descrito neste artigo.
- Implícito - use consultas de contexto de recursos. Quando você consulta no contexto de um recurso específico, grupo de recursos ou uma assinatura, a consulta recupera dados relevantes de todos os espaços de trabalho que contêm dados para esses recursos. As consultas de contexto de recursos não recuperam dados de recursos clássicos do Application Insights.
Este artigo explica como usar as expressões explícitas workspace()
, app()
e resource()
para consultar dados de vários espaços de trabalho, aplicações e recursos do Log Analytics.
Quando você gerencia assinaturas em outros locatários do Microsoft Entra com o Azure Lighthouse, os espaços de trabalho do Log Analytics criados nesses locatários de clientes estão disponíveis para uso em suas consultas entre espaços de trabalho.
Importante
Se você estiver usando um recurso do Application Insights baseado em espaço de trabalho, a telemetria será armazenada em um espaço de trabalho do Log Analytics com todos os outros dados de log. Use a workspace()
expressão para consultar dados de aplicativos em vários espaços de trabalho. Você não precisa de uma consulta entre espaços de trabalho para consultar dados de vários aplicativos no mesmo espaço de trabalho.
Permissões necessárias
Ação | Permissões necessárias |
---|---|
Verificar o estado do espaço de trabalho |
Microsoft.OperationalInsights/workspaces/query/*/read permissões para os espaços de trabalho do Log Analytics consultados, conforme fornecido pela função interna Log Analytics Reader, por exemplo. |
Guardar uma consulta |
microsoft.operationalinsights/querypacks/queries/action permissões para o pacote de consultas onde pretendes guardar a consulta, conforme fornecido pela função interna Colaborador do Log Analytics, por exemplo. |
Considerações
- As consultas entre recursos e entre serviços não suportam funções parametrizadas e funções cuja definição inclui outras expressões entre espaços de trabalho ou entre serviços, incluindo
adx()
,arg()
,resource()
,workspace()
eapp()
. - Você pode incluir até 100 espaços de trabalho do Log Analytics ou recursos clássicos do Application Insights em uma única consulta.
- Consultar um grande número de recursos pode tornar a consulta substancialmente mais lenta.
- As consultas entre recursos em alertas de pesquisa de log só são suportadas na API scheduledQueryRules atual. Se estiver a utilizar a API de Alertas do Log Analytics herdada, terá de mudar para a API atual.
- As referências a um recurso cruzado, como outro espaço de trabalho, devem ser explícitas e não podem ser parametrizadas.
Usar funções para simplificar consultas
Esta seção explica como consultar espaços de trabalho, aplicativos e recursos com e sem o uso de uma função.
Consultar sem usar uma função
Você sempre pode usar expressões explícitas diretamente para consultar vários recursos. Esses recursos podem ser espaços de trabalho e aplicativos combinados.
Exemplo de uma consulta em três espaços de trabalho:
union
Update,
workspace("00000000-0000-0000-0000-000000000001").Update,
workspace("00000000-0000-0000-0000-000000000002").Update
| where TimeGenerated >= ago(1h)
| where UpdateState == "Needed"
| summarize dcount(Computer) by Classification
Para obter mais informações, consulte o operador de união, o operador onde e o operador de sumarização.
Consulta usando uma função
Quando você usa consultas entre recursos para correlacionar dados de vários espaços de trabalho do Log Analytics e componentes do Application Insights, a consulta pode se tornar complexa e difícil de manter. Você deve usar funções nas consultas de log do Azure Monitor para separar a lógica da consulta do escopo dos recursos de consulta. Esse método simplifica a estrutura da consulta. O exemplo a seguir demonstra como você pode monitorar vários componentes do Application Insights e visualizar a contagem de solicitações com falha por nome do aplicativo.
Crie uma consulta como o exemplo a seguir que faz referência ao escopo dos componentes do Application Insights. O withsource= SourceApp
comando adiciona uma coluna que designa o nome do aplicativo que enviou o log.
Salve a consulta como uma função com o alias applicationsScoping
.
// crossResource function that scopes my Application Insights components
union withsource= SourceApp
app('00000000-0000-0000-0000-000000000000').requests,
app('00000000-0000-0000-0000-000000000001').requests,
app('00000000-0000-0000-0000-000000000002').requests,
app('00000000-0000-0000-0000-000000000003').requests,
app('00000000-0000-0000-0000-000000000004').requests
Agora você pode usar essa função em uma consulta entre recursos, como o exemplo a seguir. O alias de função applicationsScoping
retorna a união da tabela de pedidos de todas as aplicações definidas. Em seguida, a consulta filtra solicitações com falha e visualiza as tendências por aplicativo. O parse
operador é opcional neste exemplo. Ele extrai o nome da aplicação da propriedade SourceApp
.
applicationsScoping
| where timestamp > ago(12h)
| where success == 'False'
| parse SourceApp with * '(' applicationId ')' *
| summarize count() by applicationId, bin(timestamp, 1h)
| render timechart
Nota
Esse método não pode ser usado com alertas de pesquisa de log porque a validação de acesso dos recursos da regra de alerta, incluindo espaços de trabalho e aplicativos, é executada no momento da criação do alerta. Não há suporte para a adição de novos recursos à função após a criação do alerta. Se preferir usar uma função para definir o escopo de recursos em alertas de pesquisa de registos, deve editar a regra de alerta no portal ou com um modelo do Azure Resource Manager para atualizar os recursos abrangidos pelo escopo. Como alternativa, inclua a lista de recursos na consulta de alerta de pesquisa de log.
Consultar espaços de trabalho do Log Analytics usando workspace()
Use a workspace()
expressão para recuperar dados de um espaço de trabalho específico no mesmo grupo de recursos, outro grupo de recursos ou outra assinatura. Você pode usar essa expressão para incluir dados de log em uma consulta do Application Insights e para consultar dados em vários espaços de trabalho em uma consulta de log.
Sintaxe
workspace(
Identificador)
Argumentos
Identifier
: Os formatos de identificador explícito na tabela a seguir são a melhor maneira de consultar espaços de trabalho, pois são os mais eficientes.
Identificador | Descrição | Exemplo |
---|---|---|
ID | GUID da área de trabalho | espaço de trabalho("00000000-0000-0000-0000-000000000000") |
ID do Recurso do Azure | Identificador do recurso do Azure | workspace("/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Contoso/providers/Microsoft.OperationalInsights/workspaces/contosoretail") |
Outros identificadores de espaço de trabalho que usam apenas o nome do espaço de trabalho ou o nome do recurso do espaço de trabalho não são recomendados, pois resultam em desempenho reduzido e possíveis erros ao consultar espaços de trabalho.
Exemplos
workspace("00000000-0000-0000-0000-000000000000").Update | count
workspace("/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Contoso/providers/Microsoft.OperationalInsights/workspaces/contosoretail").Event | count
union
( workspace("00000000-0000-0000-0000-000000000000").Heartbeat | where Computer == "myComputer"),
(app("00000000-0000-0000-0000-000000000000").requests | where cloud_RoleInstance == "myRoleInstance")
| count
union
(workspace("00000000-0000-0000-0000-000000000000").Heartbeat), (app("00000000-0000-0000-0000-000000000000").requests) | where TimeGenerated between(todatetime("2023-03-08 15:00:00") .. todatetime("2023-04-08 15:05:00"))
Consulta em aplicativos clássicos do Application Insights usando app()
Use a app
expressão para recuperar dados de um recurso clássico específico do Application Insights no mesmo grupo de recursos, outro grupo de recursos ou outra assinatura. Se você estiver usando um recurso do Application Insights baseado em espaço de trabalho, a telemetria será armazenada em um espaço de trabalho do Log Analytics com todos os outros dados de log. Use a workspace()
expressão para consultar dados de aplicativos em vários espaços de trabalho. Você não precisa de uma consulta entre espaços de trabalho para consultar dados de vários aplicativos no mesmo espaço de trabalho.
Sintaxe
app(
Identificador)
Argumentos
Identifier
: Os formatos de identificador explícito na tabela a seguir são a melhor maneira de consultar aplicativos, pois são os mais eficientes..
Identificador | Descrição | Exemplo |
---|---|---|
ID | GUID do aplicativo | aplicação("00000000-0000-0000-0000-000000000000") |
ID do Recurso do Azure | Identificador do recurso do Azure | app("/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Fabrikam/providers/microsoft.insights/components/fabrikamapp") |
Exemplos
app("00000000-0000-0000-0000-000000000000").requests | count
app("/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Fabrikam/providers/microsoft.insights/components/fabrikamapp").requests | count
union
(workspace("00000000-0000-0000-0000-000000000000").Heartbeat | where Computer == "myComputer"),
(app("00000000-0000-0000-0000-000000000000").requests | where cloud_RoleInstance == "myColumnInstance")
| count
union
(workspace("00000000-0000-0000-0000-000000000000").Heartbeat), (app("00000000-0000-0000-0000-000000000000").requests)
| where TimeGenerated between(todatetime("2023-03-08 15:00:00") .. todatetime("2023-04-08 15:05:00"))
Correlacione dados entre recursos usando resource()
A resource
expressão é usada em uma consulta do Azure Monitor com escopo para um recurso para recuperar dados de outros recursos.
Sintaxe
resource(
Identificador)
Argumentos
Identifier
: Identifica o recurso, grupo de recursos ou assinatura a partir do qual correlacionar dados.
Identificador | Descrição | Exemplo |
---|---|---|
Recurso | Inclui dados para o recurso. | resource("/subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myresourcegroup/providers/microsoft.compute/virtualmachines/myvm") |
Grupo de Recursos ou Subscrição | Inclui dados para o recurso e todos os recursos que ele contém. | resource("/subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myresourcegroup) |
Exemplos
union (Heartbeat),(resource("/subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcesgroups/myresourcegroup/providers/microsoft.compute/virtualmachines/myvm").Heartbeat) | summarize count() by _ResourceId, TenantId
union (Heartbeat),(resource("/subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcesgroups/myresourcegroup").Heartbeat) | summarize count() by _ResourceId, TenantId
Conteúdo relacionado
Consulte Analisar dados de log no Azure Monitor para obter uma visão geral das consultas de log e como os dados de log do Azure Monitor são estruturados.