跳至內容

遙測通道

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 值—— 線路形狀(ExportLogsServiceRequestExportTraceServiceRequestExportMetricsServiceRequest)詳見 opentelemetry-proto

欄位類型必要說明
logsURIOTLP 日誌記錄(otlp/exportLogs 通知)的通道 URI (或 RFC 6570 URI 範本)。

下列範本變數由此協定定義;任何其他變數名稱 MUST 被用戶端 忽略(沒有協定定義的方式可取得未知變數的值):

| 範本中的變數 | 意義 | | --------------------- | ------------------------------------------------------------------------------------------------------- | | (無) | 主機不支援訂閱者端的嚴重性過濾。範本本身即為可訂閱的 URI。 | | {level} | 要傳遞的最小 OTLP 嚴重性。展開為其中一個 OTLP SeverityNumber 簡短名稱(不區分大小寫):tracedebuginfowarnerrorfatal。伺服器傳遞 severityNumber 落在對應頻帶或以上的日誌記錄。 |

主機 SHOULD 遵守展開後的 {level};用戶端 MUST 仍防禦性地 過濾,以防主機忽略該參數。未公告 {level} 的主機會傳遞所有 嚴重性。

未來的協定版本 MAY 新增新的已知變數(例如範圍或屬性過濾器)。
tracesURIOTLP 追蹤(otlp/exportTraces 通知)的通道 URI。此協定 版本未定義任何範本變數。
metricsURIOTLP 指標資料點(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 成功後發出的批次。

屬性
方向伺服器 → 用戶端
類型通知

參數:

欄位類型說明
channelURI此通知所屬的通道 URI(公告於 TelemetryCapabilities.logsahp-otlp: URI)。
payloadRecord<string, unknown>OTLP/JSON ExportLogsServiceRequest 值。頂層欄位為 resourceLogs: ResourceLogs[];巢狀形狀由 opentelemetry-proto 定義,此處不重新宣告。

範例:

json
{
  "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 所定義。

屬性
方向伺服器 → 用戶端
類型通知

參數:

欄位類型說明
channelURI此通知所屬的通道 URI(公告於 TelemetryCapabilities.tracesahp-otlp: URI)。
payloadRecord<string, unknown>OTLP/JSON ExportTraceServiceRequest 值。頂層欄位為 resourceSpans: ResourceSpans[];巢狀形狀由 opentelemetry-proto 定義,此處不重新宣告。

範例:

json
{
  "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 所定義。

屬性
方向伺服器 → 用戶端
類型通知

參數:

欄位類型說明
channelURI此通知所屬的通道 URI(公告於 TelemetryCapabilities.metricsahp-otlp: URI)。
payloadRecord<string, unknown>OTLP/JSON ExportMetricsServiceRequest 值。頂層欄位為 resourceMetrics: ResourceMetrics[];巢狀形狀由 opentelemetry-proto 定義,此處不重新宣告。

範例:

json
{
  "jsonrpc": "2.0",
  "method": "otlp/exportMetrics",
  "params": {
    "channel": "ahp-otlp://metrics",
    "payload": { "resourceMetrics": [ /* OTLP/JSON ResourceMetrics * / ] }
  }
}

以 MIT 授權發布。