Delen via


Tijddraai

Van toepassing op: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel-

De time pivot-visualisatie is een interactieve navigatie over de gebeurtenissen die op de tijdsas draaien.

Notitie

  • Deze visualisatie kan alleen worden gebruikt in de context van de renderoperator.
  • Deze visualisatie kan worden gebruikt in Kusto.Explorer, maar is niet beschikbaar in de webgebruikersinterface van Azure Data Explorer.

Syntaxis

T|rendertimepivot [with(eigenschapNaam=eigenschapWaarde [, ...])]

Meer informatie over syntaxisconventies.

Parameterwaarden

Naam Typologie Vereist Beschrijving
T- string ✔️ Naam van invoertabel.
propertyName, propertyValue string Een door komma's gescheiden lijst met sleutel-waarde-eigenschapsparen. Zie ondersteunde eigenschappen.

Ondersteunde eigenschappen

Alle eigenschappen zijn optioneel.

PropertyName- PropertyValue-
series Door komma's gescheiden lijst met kolommen waarvan de gecombineerde waarden per record de reeks bepalen waartoe de record behoort.

Interactief display

Nadat u de tijddraai hebt gerenderd, kunt u de gegevens verder onderzoeken en bewerken door segmentniveaus toe te voegen en door in te zoomen op specifieke tijdsegmenten. De gegevens in de tabel worden interactief bijgewerkt op basis van de segmentopties die u configureert. De slice-opties die beschikbaar zijn, zijn:

  • Meerdere segmentniveaus wijzigen, toevoegen en verwijderen
  • Vouw rijen uit om de details van elk niveau te bekijken
  • Schakel over naar weergave op begintijd of op eindtijd
  • Selecteer specifieke rijen of specifieke tijdsegmenten en bekijk de bijbehorende gegevens in de tabel.

Notitie

  • Tijddraaipunten hebben ingebouwde ondersteuning voor het OpenTelemetry-schema, een platformonafhankelijke, open standaard voor het verzamelen en verzenden van telemetriegegevens. Het gestandaardiseerde en gestructureerde formaat van OpenTelemetry-gegevens maakt het mogelijk om gegevens efficiënt te draaien en te analyseren. Bij interactie met het eerste niveau van de segmentopties worden de OpenTelemtry-reeksen en hun geneste hiërarchie weergegeven in de lijst.

Voorbeelden

In de voorbeelden in deze sectie ziet u hoe u de syntaxis kunt gebruiken om aan de slag te gaan.

Visualiseer overstromingsgebeurtenissen per staat

Deze query voert een visualisatie uit van overstromingsgebeurtenissen in de opgegeven Midwestern-toestanden, die worden weergegeven als een tijddraaigrafiek.

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)

uitvoer

Screenshot van de tijdspil in Kusto.Explorer.

U kunt verder communiceren met de tijdspil, bijvoorbeeld:

  • Selecteer een nieuwe segmentoptie om de gegevens te wijzigen die in de tijdsdraai worden weergegeven. De gegevens in de tabel onder de tijddraai worden bijgewerkt om de nieuwe reeks weer te geven.

    Screenshot van de opties voor tijdpivot-segmenten in Kusto.Explorer.

  • Voeg segmentoptieniveaus toe om de gegevens verder te onderzoeken en te gebruiken. Vouw elke rij uit om de toegevoegde niveaus te zien.

    Screenshot van tijdspil met meerdere niveaus uitgevouwen in Kusto.Explorer.

  • Als u de gegevens wilt weergeven die relevant zijn voor een specifieke segment, selecteert u een of meer tijdsegmenten in een rij van de tijddraai.

    Screenshot van specifieke tijdsegmenten in Kusto.Explorer.

Hiërarchische OpenTelemetrie-gegevens weergeven en segmenteren

De opties voor OpenTelemetry-gegevenssegmenten weerspiegelen de geneste hiërarchie.

In dit voorbeeld wordt een tijddraai weergegeven op basis van een specifieke TraceID in de gegevenstabel. De query die in dit voorbeeld wordt weergegeven, bevat de eerste twee rijen met gegevens uit een grote tabel.

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 

uitvoer

In de tijdsdraai worden de Slice-opties automatisch ingesteld op SpanKind als de kolom om op te draaien.

Schermafbeelding van de tijddraai die wordt weergegeven met een OpenTelemetry-gegevensbron.

U kunt de hiërarchie van de afzonderlijke spans in dezelfde OpenTelemetry-tracering weergeven door de segmentopties te wijzigen in (SpanID). De hiërarchie kan worden uitgevouwen om de overspanningen weer te geven die samen het hele spoor vormen. Voor elke span kunt u de span type, de span naam en de span ID zien als de span header.

Schermafbeelding van de tijddraai die wordt weergegeven met de opties voor telemetriesegmenten.

De kop in de eerste regel is [SPAN_KIND_CLIENT/POST]: 3275d2b91035ce2e en is uitgevouwen om de hiërarchie weer te geven.

Screenshot van de tijdspil met uitgebreide hiërarchie.