Condividi tramite


Pivot temporale

Si applica a: ✅Microsoft Fabric✅

La visualizzazione pivot temporale è uno spostamento interattivo sugli eventi che ruotano sulla linea temporale sull'asse temporale.

Nota

  • Questa visualizzazione può essere usata solo nel contesto dell'operatore di rendering.
  • Questa visualizzazione può essere usata in Kusto.Explorer, ma non è disponibile nell'interfaccia utente Web di Esplora dati di Azure.

Sintassi

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

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Digita Obbligatorio Descrizione
T string ✔️ Nome tabella di input.
propertyName, propertyValue string Elenco delimitato da virgole di coppie di proprietà chiave-valore. Vedere le proprietà supportate.

Proprietà supportate

Tutte le proprietà sono facoltative.

NomeProprietà PropertyValue
series Elenco delimitato da virgole di colonne i cui valori per record combinati definiscono la serie a cui appartiene il record.

Display interattivo

Dopo aver eseguito il rendering del pivot temporale, è possibile analizzare ulteriormente e interagire con i dati aggiungendo livelli di sezione e analizzando in modo approfondito intervalli di tempo specifici. I dati nella tabella vengono aggiornati in modo interattivo in base alle opzioni di sezione configurate. Le opzioni di sezione disponibili sono:

  • Modificare, aggiungere e rimuovere più livelli di sezione
  • Espandi le righe per visualizzare i dettagli di ogni livello
  • Passa alla visualizzazione in base all'ora di inizio o all'ora di fine
  • Selezionare righe specifiche o intervalli di tempo specifici e visualizzarne i dati nella tabella.

Nota

  • I pivot temporali includono il supporto predefinito per lo schema OpenTelemetry, uno standard aperto multipiattaforma per la raccolta e la generazione di dati di telemetria. Il formato standardizzato e strutturato dei dati OpenTelemetry facilita il pivoting e l'analisi efficienti dei dati. Quando si interagisce con il primo livello delle opzioni della sezione, le estensioni OpenTelemtry e la relativa gerarchia nidificata vengono visualizzate nell'elenco.

Esempi

Negli esempi di questa sezione viene illustrato come usare la sintassi per iniziare.

Visualizzare gli eventi di inondazione per stato

Questa query restituisce una visualizzazione degli eventi flood negli stati midwestern specificati, visualizzati come grafico pivot temporale.

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)

output

Screenshot del pivot temporale in Kusto.Explorer.

È possibile interagire ulteriormente con il pivot temporale, ad esempio:

  • Selezionare una nuova opzione di sezione per modificare i dati visualizzati nel pivot temporale. I dati nella tabella sotto il pivot temporale vengono aggiornati per riflettere la nuova serie.

    Screenshot delle opzioni di sezione pivot temporale in Kusto.Explorer.

  • Aggiungere livelli di opzioni di sezione per analizzare ulteriormente e interagire con i dati. Espandi ogni riga per vedere i livelli aggiunti.

    Screenshot del pivot temporale con più livelli espansi in Kusto.Explorer.

  • Per visualizzare i dati rilevanti per una sezione specifica, selezionare uno o più intervalli di tempo in una riga del pivot temporale.

    Screenshot di un intervallo di tempo specifico in Kusto.Explorer.

Visualizzare e sezionare i dati OpenTelemetry gerarchici

Le opzioni della sezione di dati OpenTelemetry riflettono la gerarchia annidata.

In questo esempio, viene eseguito il rendering di un pivot temporale in base a un TraceID specifico nella tabella dati. La query illustrata in questo esempio contiene le prime due righe di dati di una tabella di grandi dimensioni.

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 

output

Nel pivot temporale, le opzioni Slice vengono impostate automaticamente su SpanKind come colonna in base alla quale eseguire il pivot.

Screenshot del pivot temporale di cui è stato eseguito il rendering con un'origine dati OpenTelemetry.

È possibile visualizzare la gerarchia dei singoli intervalli nella stessa traccia OpenTelemetry, modificando le opzioni Slice in (SpanID). La gerarchia è espandibile per visualizzare gli intervalli che costituiscono l'intera traccia. Per ogni intervallo è possibile visualizzare il tipo di intervallo, il nome dell'intervallo e l'ID dell'intervallo come intestazione dell'intervallo.

Screenshot del pivot temporale di cui è stato eseguito il rendering con le opzioni della sezione di telemetria visualizzate.

L'intestazione nella prima riga è [SPAN_KIND_CLIENT/POST]: 3275d2b91035ce2e ed è espansa per mostrare la gerarchia.

Screenshot del pivot temporale con gerarchia ampliata.