Partilhar via


Pivô de tempo

Aplica-se a: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

A visualização do pivô de tempo é uma navegação interativa sobre a linha do tempo dos eventos girando no eixo do tempo.

Observação

  • Essa visualização só pode ser usada no contexto do operador de renderização .
  • Essa visualização pode ser usada no Kusto.Explorer, mas não está disponível na interface do usuário da Web do Azure Data Explorer.

Sintaxe

T|rendertimepivot [with(propertyName=propertyValue [, ...])]

Saiba mais sobre convenções de sintaxe.

Parâmetros

Designação Tipo Necessário Descrição
T string ✔️ Nome da tabela de entrada.
propertyName, propertyValue string Uma lista separada por vírgulas de pares de propriedades chave-valor. Consulte propriedades suportadas.

Propriedades suportadas

Todas as propriedades são opcionais.

Nome da propriedade PropertyValue
series Lista delimitada por vírgulas de colunas cujos valores combinados por registro definem a série à qual o registro pertence.

Visor interativo

Depois de renderizar o pivô de tempo, você pode investigar e interagir com os dados adicionando níveis de fatia e detalhando fatias de tempo específicas. Os dados na tabela são atualizados interativamente de acordo com as opções de fatia configuradas. As opções de fatia disponíveis são:

  • Alterar, adicionar e remover vários níveis de fatia
  • Expandir linhas para ver detalhes de cada nível
  • Alternar para visualização por hora de início ou por hora de término
  • Selecione linhas específicas ou fatias de tempo específicas e exiba seus dados na tabela.

Observação

  • Os pivôs de tempo têm suporte integrado para o esquema OpenTelemetry , um padrão aberto de plataforma cruzada para coletar e emitir dados de telemetria. O formato padronizado e estruturado dos dados OpenTelemetry facilita a dinamização e análise de dados eficientes. Ao interagir com o primeiro nível das opções de fatia, as extensões OpenTelemtry e sua hierarquia aninhada são exibidas na lista.

Exemplos

Os exemplos nesta seção mostram como usar a sintaxe para ajudá-lo a começar.

Visualize eventos de inundação por estado

Esta consulta gera uma visualização de eventos de inundação nos estados especificados do Meio-Oeste, exibidos como um gráfico dinâmico de tempo.

let midwesternStates = dynamic([
  "ILLINOIS", "INDIANA", "IOWA", "KANSAS", "MICHIGAN", "MINNESOTA",
  "MISSOURI", "NEBRASKA", "NORTH DAKOTA", "OHIO", "SOUTH DAKOTA", "WISCONSIN"
]);
StormEvents
| where EventType == "Flood" and State in (midwesternStates)
| render timepivot with (series=State)

Realização

Captura de tela do pivô de tempo em Kusto.Explorer.

Você pode interagir ainda mais com o pivô de tempo, por exemplo:

  • Selecione uma nova opção de fatia para alterar os dados exibidos no pivô de tempo. Os dados na tabela abaixo do pivô de tempo são atualizados para refletir a nova série.

    Captura de tela das opções de fatia de pivô de tempo no Kusto.Explorer.

  • Adicione níveis de opção de fatia para investigar e interagir com os dados. Expanda cada linha para ver os níveis adicionados.

    Captura de tela do pivô de tempo com vários níveis expandidos no Kusto.Explorer.

  • Para exibir os dados relevantes para uma fatia específica, selecione uma ou mais fatias de tempo em uma linha do pivô de tempo.

    Captura de tela de fatia de tempo específica Kusto.Explorer.

Visualizar e fatiar dados hierárquicos do OpenTelemetry

As opções de fatia de dados OpenTelemetry refletem sua hierarquia aninhada.

Neste exemplo, um pivô de tempo é processado de acordo com um TraceID específico na tabela de dados. A consulta mostrada neste exemplo contém as duas primeiras linhas de dados de uma tabela grande.

datatable(TraceID:string, SpanID:string, ParentID:string, SpanName:string, SpanStatus:string, SpanKind:string, StartTime:datetime, EndTime:datetime, ResourceAttributes:dynamic, TraceAttributes:dynamic, Events:dynamic, Links:dynamic)
[
    "c339bbae48eb8426f9a63c4eee55284c", "d1265cecd4c291ee", "", "POST", "STATUS_CODE_UNSET", "SPAN_KIND_CLIENT", datetime(2025-04-07T04:15:52.1657810Z), datetime(2025-04-07T04:16:01.6616919Z), dynamic({"k8s.namespace.name":"otel-demo","k8s.pod.start_time":"2025-04-06T00:19:47.0000000Z","k8s.deployment.name":"opentelemetry-demo-loadgenerator","k8s.node.name":"aks-userpool-31567306-vmss000003","service.name":"loadgenerator","service.version":"1.12.0","k8s.pod.uid":"d2fbaf5d-b5c2-4dac-af08-b92d56573899","k8s.pod.name":"opentelemetry-demo-loadgenerator-6994f5db8-lq4qs","service.instance.id":"d2fbaf5d-b5c2-4dac-af08-b92d56573899","service.namespace":"opentelemetry-demo","k8s.pod.ip":"10.244.0.57","telemetry.sdk.language":"python","telemetry.sdk.version":"1.25.0","telemetry.sdk.name":"opentelemetry"}), dynamic({"http.status_code":200,"http.url":"http://opentelemetry-demo-frontendproxy:8080/api/checkout","http.method":"POST","scope.name":"opentelemetry.instrumentation.requests","scope.version":"0.46b0"}), dynamic([]), dynamic([]), 
    "c339bbae48eb8426f9a63c4eee55284c", "651aa53d2f583eca", "d488b4a32f60794f", "POST /api/checkout", "STATUS_CODE_UNSET", "SPAN_KIND_SERVER", datetime(2025-04-07T04:15:52.1680000Z), datetime(2025-04-07T04:16:01.4667420Z), dynamic({"k8s.namespace.name":"otel-demo","k8s.pod.start_time":"2025-04-06T00:19:47.0000000Z","k8s.deployment.name":"opentelemetry-demo-frontend","k8s.node.name":"aks-userpool-31567306-vmss000003","service.name":"frontend","service.version":"1.12.0","k8s.pod.uid":"b61b8875-b9ec-4144-b866-df88b8c6c67c","k8s.pod.name":"opentelemetry-demo-frontend-59bccd8fdb-j9xxf","service.instance.id":"b61b8875-b9ec-4144-b866-df88b8c6c67c","service.namespace":"opentelemetry-demo","k8s.pod.ip":"10.244.0.45","process.command_args":["/usr/local/bin/node","--require","./Instrumentation.js","/app/server.js"],"os.type":"linux","telemetry.sdk.language":"nodejs","telemetry.sdk.version":"1.25.1","process.pid":16,"telemetry.sdk.name":"opentelemetry","process.runtime.name":"nodejs","process.runtime.description":"Node.js","process.runtime.version":"20.18.0","host.name":"opentelemetry-demo-frontend-59bccd8fdb-j9xxf","host.arch":"amd64","process.executable.path":"/usr/local/bin/node","container.id":"d1763eedd13fa94f9581d9099ab481e112a8fdf95b6da831b9f01a4b8490fe60","os.version":"5.15.176.3-3.cm2","process.owner":"nextjs","process.command":"/app/server.js","process.executable.name":"node"}), dynamic({"http.status_code":200,"http.method":"POST","scope.name":"next.js","scope.version":"0.0.1","http.target":"/api/checkout","next.span_type":"BaseServer.handleRequest","next.span_name":"POST /api/checkout","next.rsc":false}), dynamic([]), dynamic([]), 
    ... 
]
| where TraceID == '081a007d3b7deaf32ca43a554c5058bd'
| render timepivot 

Realização

No pivô de tempo, as opções de Fatia são definidas automaticamente como SpanKind como a coluna pela qual pivotar.

Captura de tela do pivô de tempo renderizado com uma fonte de dados OpenTelemetry .

Você pode mostrar a hierarquia das extensões individuais no mesmo rastreamento OpenTelemetry alterando as opções Slice para (SpanID). A hierarquia é expansível para exibir as extensões que compõem todo o rastreamento. Para cada extensão, você pode ver o tipo de span, o nome da extensão e o ID da extensão como o cabeçalho da extensão.

Captura de tela do pivô de tempo renderizado com as opções de fatia de telemetria exibidas.

O cabeçalho na primeira linha é [SPAN_KIND_CLIENT/POST]: 3275d2b91035ce2e e é expandido para mostrar a hierarquia.

Captura de tela do pivô de tempo com herança expandida.