遙測通道
ahp-otlp: 通道的參考資料 — 無狀態通道,以 OTLP/JSON 有效負載的形式,將 OpenTelemetry 的日誌、追蹤與指標從代理主機傳遞給已訂閱的用戶端。線路層級的概觀(包含 URI 範本與嚴重性篩選)請參閱遙測通道規格。
JSON Schema: state.schema.json
狀態類型
ahp-otlp: 通道為無狀態;唯一的狀態類型是主機在 InitializeResult.telemetry 上公告的能力描述元。
TelemetryCapabilities
代理主機發出的 OTLP 遙測通道。
每個欄位出現時,不是字面通道 URI,就是 RFC 6570 URI 範本, 由用戶端展開後訂閱。缺少的欄位表示主機不發出該信號。
通道 URI 使用 ahp-otlp: 方案。此方案識別協定 (AHP 上的 OpenTelemetry),讓用戶端能單憑 URI 識別通道類型; 主機可自由選擇對其實作有意義的任何授權/路徑。用戶端 MUST 將 URI 視為不透明(除了展開下方定義的任何已知範本變數外), 並以產生的具體 URI 訂閱。
這些通道上傳遞的有效負載為 OTLP/JSON 值—— 線路形狀(ExportLogsServiceRequest、 ExportTraceServiceRequest、ExportMetricsServiceRequest)詳見 opentelemetry-proto。
| 欄位 | 類型 | 必要 | 說明 |
|---|---|---|---|
logs | URI | 否 | OTLP 日誌記錄(otlp/exportLogs 通知)的通道 URI (或 RFC 6570 URI 範本)。下列範本變數由此協定定義;任何其他變數名稱 MUST 被用戶端 忽略(沒有協定定義的方式可取得未知變數的值): | 範本中的變數 | 意義 | | --------------------- | ------------------------------------------------------------------------------------------------------- | | (無) | 主機不支援訂閱者端的嚴重性過濾。範本本身即為可訂閱的 URI。 | | {level} | 要傳遞的最小 OTLP 嚴重性。展開為其中一個 OTLP SeverityNumber 簡短名稱(不區分大小寫):trace、debug、info、warn、error、fatal。伺服器傳遞 severityNumber 落在對應頻帶或以上的日誌記錄。 |主機 SHOULD 遵守展開後的 {level};用戶端 MUST 仍防禦性地 過濾,以防主機忽略該參數。未公告 {level} 的主機會傳遞所有 嚴重性。未來的協定版本 MAY 新增新的已知變數(例如範圍或屬性過濾器)。 |
traces | URI | 否 | OTLP 追蹤(otlp/exportTraces 通知)的通道 URI。此協定 版本未定義任何範本變數。 |
metrics | URI | 否 | OTLP 指標資料點(otlp/exportMetrics 通知)的通道 URI。 此協定版本未定義任何範本變數。 |
通知
JSON Schema: notifications.schema.json
otlp/exportLogs
將一批 OTLP 日誌記錄傳遞給已訂閱主機日誌通道(公告於 TelemetryCapabilities.logs)的用戶端。
payload 欄位是原樣的 OTLP/JSON ExportLogsServiceRequest 值 ——即形狀為 { resourceLogs: ResourceLogs[] } 的物件,如 opentelemetry-proto 所定義。AHP 不重新宣告 OTLP 類型系統;用戶端 SHOULD 使用 OpenTelemetry SDK 或 schema 來解析它。
如同所有無狀態通道通知,這是短暫的:重新連線時不會重播。 訂閱者只會收到其 subscribe 成功後發出的批次。
| 屬性 | 值 |
|---|---|
| 方向 | 伺服器 → 用戶端 |
| 類型 | 通知 |
參數:
| 欄位 | 類型 | 說明 |
|---|---|---|
channel | URI | 此通知所屬的通道 URI(公告於 TelemetryCapabilities.logs 的 ahp-otlp: URI)。 |
payload | Record<string, unknown> | OTLP/JSON ExportLogsServiceRequest 值。頂層欄位為 resourceLogs: ResourceLogs[];巢狀形狀由 opentelemetry-proto 定義,此處不重新宣告。 |
範例:
{
"jsonrpc": "2.0",
"method": "otlp/exportLogs",
"params": {
"channel": "ahp-otlp://logs",
"payload": { "resourceLogs": [ /* OTLP/JSON ResourceLogs * / ] }
}
}otlp/exportTraces
將一批 OTLP 追蹤傳遞給已訂閱主機追蹤通道(公告於 TelemetryCapabilities.traces)的用戶端。
payload 欄位是原樣的 OTLP/JSON ExportTraceServiceRequest 值 ——即形狀為 { resourceSpans: ResourceSpans[] } 的物件,如 opentelemetry-proto 所定義。
| 屬性 | 值 |
|---|---|
| 方向 | 伺服器 → 用戶端 |
| 類型 | 通知 |
參數:
| 欄位 | 類型 | 說明 |
|---|---|---|
channel | URI | 此通知所屬的通道 URI(公告於 TelemetryCapabilities.traces 的 ahp-otlp: URI)。 |
payload | Record<string, unknown> | OTLP/JSON ExportTraceServiceRequest 值。頂層欄位為 resourceSpans: ResourceSpans[];巢狀形狀由 opentelemetry-proto 定義,此處不重新宣告。 |
範例:
{
"jsonrpc": "2.0",
"method": "otlp/exportTraces",
"params": {
"channel": "ahp-otlp://traces",
"payload": { "resourceSpans": [ /* OTLP/JSON ResourceSpans * / ] }
}
}otlp/exportMetrics
將一批 OTLP 指標資料點傳遞給已訂閱主機指標通道(公告於 TelemetryCapabilities.metrics)的用戶端。
payload 欄位是原樣的 OTLP/JSON ExportMetricsServiceRequest 值 ——即形狀為 { resourceMetrics: ResourceMetrics[] } 的物件,如 opentelemetry-proto 所定義。
| 屬性 | 值 |
|---|---|
| 方向 | 伺服器 → 用戶端 |
| 類型 | 通知 |
參數:
| 欄位 | 類型 | 說明 |
|---|---|---|
channel | URI | 此通知所屬的通道 URI(公告於 TelemetryCapabilities.metrics 的 ahp-otlp: URI)。 |
payload | Record<string, unknown> | OTLP/JSON ExportMetricsServiceRequest 值。頂層欄位為 resourceMetrics: ResourceMetrics[];巢狀形狀由 opentelemetry-proto 定義,此處不重新宣告。 |
範例:
{
"jsonrpc": "2.0",
"method": "otlp/exportMetrics",
"params": {
"channel": "ahp-otlp://metrics",
"payload": { "resourceMetrics": [ /* OTLP/JSON ResourceMetrics * / ] }
}
}