Compartilhar via


Pivô de tempo

Aplica-se a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

A visualização de pivô de tempo é uma navegação interativa sobre a linha do tempo de eventos girando no eixo de 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 as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória 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 as propriedades suportadas.

Propriedades aceitas

Todas as propriedades são opcionais.

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

Exibição interativa

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 que você configura. As opções de fatia disponíveis são:

  • Alterar, adicionar e remover vários níveis de fatia
  • Expanda as linhas para exibir detalhes de cada nível
  • Alternar para exibir por hora de início ou por hora de término
  • Selecione linhas específicas ou frações de tempo específicas e exiba seus dados na tabela.

Observação

  • Os pivôs de tempo têm suporte interno para o esquema OpenTelemetry, um padrão aberto multiplataforma para coletar e emitir dados de telemetria. O formato padronizado e estruturado dos dados do OpenTelemetry facilita a dinamização e a análise eficientes de dados. Ao interagir com o primeiro nível das opções de fatia, os intervalos do OpenTelemtry e sua hierarquia aninhada são exibidos 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

Essa consulta gera uma visualização de eventos de inundação nos estados do Centro-Oeste especificados, 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)

de saída

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

Você pode interagir ainda mais com o pivô temporal, 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ô temporal 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ô do tempo com vários níveis expandidos no Kusto.Explorer.

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

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

Exibir e dividir dados hierárquicos do OpenTelemetry

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

Neste exemplo, um pivô de tempo é renderizado 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 

de saída

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

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

Você pode mostrar a hierarquia dos intervalos individuais no mesmo rastreamento do OpenTelemetry, alterando as opções de fatia para (SpanID). A hierarquia é expansível para exibir os intervalos que compõem todo o rastreamento. Para cada intervalo, você pode ver o tipo de intervalo, o nome do intervalo e a ID do intervalo como o cabeçalho do intervalo.

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ô do tempo com hierarquia expandida.