Partager via


Heure croisée

S’applique à : ✅Microsoft Fabric

La visualisation de tableau croisé dynamique de temps est une navigation interactive sur l’axe horaire des événements.

Remarque

  • Cette visualisation ne peut être utilisée que dans le contexte de l’opérateur de rendu.
  • Cette visualisation peut être utilisée dans Kusto.Explorer, mais n’est pas disponible dans l’interface utilisateur web d’Azure Data Explorer.

Syntaxe

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

En savoir plus sur les conventions de syntaxe.

Paramètres

Nom Catégorie Requise Descriptif
T string ✔️ Nom de la table d’entrée.
propertyName, propertyValue string Liste séparée par des virgules de paires de propriétés clé-valeur. Consultez les propriétés prises en charge.

Propriétés prises en charge

Toutes les propriétés sont facultatives.

PropertyName Valeur de propriété
series Liste de colonnes (délimitées par des virgules) dont les valeurs par enregistrement combinées définissent la série à laquelle l’enregistrement appartient.

Affichage interactif

Une fois que vous avez rendu le pivot temporel, vous pouvez approfondir l’examen et l’interaction avec les données en ajoutant des niveaux de tranche et en explorant des tranches temporelles spécifiques. Les données de la table sont mises à jour de manière interactive en fonction des options de tranche que vous configurez. Les options de tranche disponibles sont les suivantes :

  • Modifier, ajouter et supprimer plusieurs niveaux de tranche
  • Développez les rangées pour afficher les détails de chaque niveau
  • Basculer pour afficher par heure de début ou par heure de fin
  • Sélectionnez des lignes spécifiques ou des tranches de temps spécifiques et affichez leurs données dans le tableau.

Remarque

  • Les pivots temporels prennent en charge le schéma OpenTelemetry, une norme ouverte multiplateforme pour la collecte et l’émission de données de télémétrie. Le format standardisé et structuré des données OpenTelemetry facilite le pivotement et l’analyse efficaces des données. Lors de l’interaction avec le premier niveau des options de tranche, les étendues OpenTelemtry et leur hiérarchie imbriquée s’affichent dans la liste.

Exemples

Les exemples de cette section montrent comment utiliser la syntaxe pour vous aider à commencer.

Visualisez les inondations par État

Cette requête génère une visualisation des événements d’inondation dans les états du Midwestern spécifiés, affichée sous la forme d’un graphique croisé dynamique de temps.

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 sortie

Capture d’écran du pivot temporel dans Kusto.Explorer.

Vous pouvez interagir davantage avec le pivot temporel, par exemple :

  • Sélectionnez une nouvelle option de tranche pour modifier les données affichées dans le pivot temporel. Les données du tableau sous le pivot temporel sont mises à jour pour refléter la nouvelle série.

    Capture d’écran des options de tranche de pivot temporel dans Kusto.Explorer.

  • Ajoutez des niveaux d’option de tranche pour approfondir l’analyse et l’interaction avec les données. Développez chaque ligne pour voir les niveaux ajoutés.

    Capture d’écran du pivot temporel avec plusieurs niveaux développés dans Kusto.Explorer.

  • Pour afficher les données pertinentes pour une tranche spécifique, sélectionnez une ou plusieurs tranches de temps dans une ligne du pivot temporel.

    Capture d’écran d’une tranche de temps spécifique dans Kusto.Explorer.

Affichage et découpage des données OpenTelemetry hiérarchiques

Les options de tranche de données OpenTelemetry reflètent sa hiérarchie imbriquée.

Dans cet exemple, un pivot temporel est rendu en fonction d’un TraceID spécifique dans la table de données. La requête présentée dans cet exemple contient les deux premières lignes de données d’une grande table.

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 sortie

Dans le pivot temporel, les options Slice sont automatiquement définies sur SpanKind en tant que colonne à pivoter.

Capture d’écran du pivot temporel rendu avec une source de données OpenTelemetry.

Vous pouvez afficher la hiérarchie des spans individuelles dans la même trace OpenTelemetry, en remplaçant les options Slice par (SpanID). La hiérarchie peut être développée pour afficher les spans qui composent l’ensemble de la trace. Pour chaque plage, vous pouvez voir le type de span, le nom et l’ID de span comme en-tête de span.

Capture d’écran du pivot temporel rendu avec les options de tranche de télémétrie affichées.

L’en-tête de la première ligne est [SPAN_KIND_CLIENT/POST] : 3275d2b91035ce2e et est développé pour afficher la hiérarchie.

Capture d’écran du pivot temporel avec la hiérarchie étendue.