Сводка времени

Переключайте службы с помощью раскрывающегося списка Версия. Дополнительные сведения о навигации.
Область применения: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

Визуализация сводных данных времени — это интерактивная навигация по осью времени событий.

Примечание.

  • Эта визуализация может использоваться только в контексте оператора отрисовки.
  • Эту визуализацию можно использовать в Kusto. Обозреватель, но недоступен в веб-интерфейсе Azure Data Explorer.

Синтаксис

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

Дополнительные сведения о соглашениях синтаксиса.

Параметры

Имя (название) Тип Обязательно Описание
T string ✔️ Имя входной таблицы.
propertyName, propertyValue string Разделенный запятыми список пар свойств "ключ-значение". См . поддерживаемые свойства.

Поддерживаемые свойства

Все свойства являются необязательными.

PropertyName (ИмяСвойства) PropertyValue (Значение)
series Разделенный запятыми список столбцов — его объединенные значения отдельных записей определяют ряд, к которому принадлежит запись.

Интерактивный дисплей

После отрисовки точки привязки по времени можно продолжить исследование данных и взаимодействовать с ними, добавляя уровни среза и детализируя определенные временные срезы. Данные в таблице обновляются в интерактивном режиме в соответствии с настроенными параметрами среза. Доступны следующие варианты срезов:

  • Изменение, добавление и удаление нескольких уровней срезов
  • Разверните строки, чтобы просмотреть сведения о каждом уровне
  • Переключиться на просмотр по времени начала или по времени окончания
  • Выберите определенные строки или определенные временные срезы и просмотрите их данные в таблице.

Примечание.

  • Временные сводки имеют встроенную поддержку схемы OpenTelemetry, кроссплатформенного открытого стандарта для сбора и передачи данных телеметрии. Стандартизированный и структурированный формат данных OpenTelemetry обеспечивает эффективную сводку и анализ данных. При взаимодействии с первым уровнем параметров среза диапазоны OpenTelemtry и их вложенная иерархия отображаются в списке.

Примеры

В примерах этого раздела показано, как использовать синтаксис для начала работы.

Визуализация событий flood для каждого штата

Этот запрос выводит визуализацию событий наводнения в указанных состояниях Midwestern, отображаемых в виде сводной диаграммы времени.

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)

выходных

Скриншот поворота во времени в Kusto.Explorer.

Вы можете дополнительно взаимодействовать с временным циклом, например:

  • Выберите параметр нового среза, чтобы изменить данные, отображаемые в сводке по времени. Данные в таблице под временной привязкой обновляются в соответствии с новым рядом.

    Скриншот опций слайса Time Pivot в Kusto.Explorer.

  • Добавьте уровни параметров среза для дальнейшего изучения и взаимодействия с данными. Разверните каждую строку, чтобы увидеть добавленные уровни.

    Скриншот развернутого во времени с несколькими уровнями в Kusto.Explorer.

  • Чтобы отобразить данные, относящиеся к определенному срезу, выберите один или несколько временных срезов в строке точки привязки по времени.

    Скриншот конкретного временного среза в Kusto.Explorer.

Просмотр и срез иерархических данных OpenTelemetry

Параметры среза данных OpenTelemetry отражают его вложенную иерархию.

В этом примере сводка по времени отображается в соответствии с определенным идентификатором TraceID в таблице данных. Запрос, показанный в этом примере, содержит первые две строки данных из большой таблицы.

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":"aaaabbbb-0000-cccc-1111-dddd2222eeee","k8s.pod.name":"opentelemetry-demo-frontend-59bccd8fdb-j9xxf","service.instance.id":"aaaabbbb-0000-cccc-1111-dddd2222eeee","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 

выходных

В сводке по времени для параметров среза автоматически устанавливается значение SpanKind в качестве столбца для сводки.

Снимок экрана опорной точки по времени, отрисованной с помощью источника данных OpenTelemetry.

Вы можете отобразить иерархию отдельных диапазонов в одной и той же трассировке OpenTelemetry, изменив параметры среза на (SpanID). Иерархия может быть развернута для отображения диапазонов, составляющих всю трассировку. Для каждого диапазона вы можете увидеть тип диапазона, имя диапазона и идентификатор диапазона в качестве заголовка диапазона.

Снимок экрана круговой привязки по времени, отрисованный с отображением параметров среза телеметрии.

Заголовок в первой строке — [SPAN_KIND_CLIENT/POST]: 3275d2b91035ce2e и развернут для отображения иерархии.

Снимок экрана: сводка времени с развернутой иерархией.