時間樞紐視覺效果是時間軸上事件時間線樞紐的互動式導覽。
注意
- 此視覺效果只能在轉譯運算符的內容中使用。
- 此視覺效果可用於 Kusto.Explorer,但無法在 Azure 數據總管 Web UI 中使用。
語法
T|rendertimepivot [with( propertyName=propertyValue [, ...]])
深入瞭解 語法慣例。
參數
| 姓名 | 類型 | 必要 | 描述 |
|---|---|---|---|
| T | string |
✔️ | 輸入數據表名稱。 |
| propertyName、 propertyValue | string |
索引鍵/值屬性組的逗號分隔清單。 請參閱 支持的屬性。 |
支援的屬性
所有屬性都是選擇性的。
| 屬性名稱 | 屬性值 |
|---|---|
series |
以逗號分隔的數據行清單,其合併每個記錄值會定義記錄所屬的數位。 |
互動式顯示
呈現時間透視后,您可以通過添加切片級別和鑽取特定時間切片來進一步調查數據並與之交互。 表中的數據將根據您配置的切片選項以交互方式更新。 可用的切片選項包括:
- 更改、添加和刪除多個切片級別
- 展開行可查看每個級別的詳細資訊
- 切換為按開始時間或結束時間查看
- 選擇特定行或特定時間片,並在表中查看其數據。
注意
- 時間透視器內置了對 OpenTelemetry 架構的支援,OpenTelemetry 架構是用於收集和發出遙測數據的跨平臺開放標準。 OpenTelemetry 數據的標準化和結構化格式有助於高效的數據透視和分析。 當與切片選項的第一級交互時,OpenTelemtry span 及其嵌套層次結構會顯示在清單中。
範例
本節中的範例示範如何使用 語法來協助您開始使用。
可視化每個州的洪水事件
此查詢會輸出指定中西部狀態的洪水事件的視覺效果,顯示為時間樞紐圖表。
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)
輸出
您可以進一步與時間軸交互,例如:
選擇新的切片選項以更改時間透視中顯示的數據。 時間透視下方表中的數據將更新以反映新序列。
添加切片選項級別以進一步調查數據並與之交互。 展開每一行以查看添加的級別。
要顯示與特定切片相關的數據,請在時間透視的行中選擇一個或多個時間切片。
查看和切片分層 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":"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
輸出
在時間透視中, Slice (切片) 選項 會自動設置為 SpanKind 作為要透視的列。
您可以通過將 Slice (切片) 選項更改為 (SpanID) 來顯示同一 OpenTelemetry 跟蹤中各個範圍的層次結構。 層次結構是可展開的,以顯示構成整個跟蹤的span。 對於每個span,您可以看到span類型、span 名稱和spanID作為span標頭。
第一行中的標題是 [SPAN_KIND_CLIENT/POST]: 3275d2b91035ce2e ,並展開以顯示層次結構。