Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
La visualización de pivote de tiempo es una navegación interactiva sobre los eventos de dinamización de línea de tiempo en el eje de tiempo.
Nota:
- Esta visualización solo se puede usar en el contexto del operador render.
- Esta visualización se puede usar en Kusto.Explorer, pero no está disponible en la interfaz de usuario web de Azure Data Explorer.
Sintaxis
T|rendertimepivot [with( propertyName=propertyValue [, ...]])
Obtenga más información sobre las convenciones de sintaxis.
Parámetros
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| T | string |
✔️ | Nombre de la tabla de entrada. |
| propertyName, propertyValue | string |
Lista separada por comas de pares de propiedades clave-valor. Consulte las propiedades admitidas. |
Propiedades admitidas
Todas las propiedades son opcionales.
| PropertyName (Nombre de la propiedad) | PropertyValue (Valor de la propiedad) |
|---|---|
series |
Lista delimitada por comas de columnas cuyos valores por registro combinados definen la serie a la que pertenece el registro. |
Pantalla interactiva
Después de representar la tabla dinámica de tiempo, puede investigar más a fondo los datos e interactuar con ellos agregando niveles de segmento y explorando en intervalos de tiempo específicos. Los datos de la tabla se actualizan de forma interactiva en función de las opciones de segmento que configure. Las opciones de sector que están disponibles son:
- Cambiar, agregar y eliminar varios niveles de sector
- Expanda las filas para ver los detalles de cada nivel
- Alternar para ver por hora de inicio o por hora de finalización
- Seleccione filas específicas, o intervalos de tiempo específicos, y vea sus datos en la tabla.
Nota:
- Los pivotes de tiempo tienen compatibilidad integrada con el esquema OpenTelemetry, un estándar abierto multiplataforma para recopilar y emitir datos de telemetría. El formato estandarizado y estructurado de los datos de OpenTelemetry facilita el pivote y el análisis eficientes de los datos. Al interactuar con el primer nivel de las opciones de segmento, los intervalos de OpenTelemtry y su jerarquía anidada se muestran en la lista.
Ejemplos
Los ejemplos de esta sección muestran cómo usar la sintaxis para ayudarle a empezar.
Visualice los eventos de inundación por estado
Esta consulta genera una visualización de eventos de inundación en los estados de Midwestern especificados, que se muestran como un gráfico dinámico de tiempo.
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 salida
Puede interactuar aún más con el pivote de tiempo, por ejemplo:
Seleccione una nueva opción de segmento para cambiar los datos que se muestran en el pivote de tiempo. Los datos de la tabla debajo de la tabla temporal se actualizan para reflejar la nueva serie.
Agregue niveles de opción de división para investigar más a fondo e interactuar con los datos. Expanda cada fila para ver los niveles agregados.
Para mostrar los datos relevantes para un intervalo específico, seleccione uno o más intervalos de tiempo en una fila del pivote de tiempo.
Visualización y segmentación de datos jerárquicos de OpenTelemetry
Las opciones de segmento de datos de OpenTelemetry reflejan su jerarquía anidada.
En este ejemplo, una tabla dinámica de tiempo se representa de acuerdo con un TraceID específico en la tabla de datos. La consulta que se muestra en este ejemplo contiene las dos primeras filas de datos de una tabla 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 salida
En la tabla dinámica de tiempo, las opciones de División se establecen automáticamente en SpanKind como la columna por la que se va a pivotar.
Puede mostrar la jerarquía de los intervalos individuales en el mismo seguimiento de OpenTelemetry, cambiando las opciones de Slice a (SpanID). La jerarquía se puede expandir para mostrar los intervalos que componen todo el trazado. Para cada intervalo, puede ver el tipo de intervalo, el nombre del intervalo y el ID del intervalo como encabezado del intervalo.
El encabezado de la primera línea es [SPAN_KIND_CLIENT/POST]: 3275d2b91035ce2e y se expande para mostrar la jerarquía.