Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La visualisation de tableau croisé dynamique de temps est une navigation interactive sur l’axe horaire des événements.
Remarque
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
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.
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.
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.
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.
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.
L’en-tête de la première ligne est [SPAN_KIND_CLIENT/POST] : 3275d2b91035ce2e et est développé pour afficher la hiérarchie.