Data API Builder (DAB) 支援適用於分散式追蹤和計量的 OpenTelemetry,可讓您監視和診斷應用程式在 REST、GraphQL、資料庫作業和內部中間件的行為。
數據 API 產生器追蹤
DAB 會為下列專案建立 OpenTelemetry “activities” :
- 連入 HTTP 要求 (REST 端點)
- GraphQL operations
- Database queries (per entity)
- 內部中間件步驟 (例如要求處理、錯誤追蹤)
每個活動都包含詳細的標記(元數據),例如:
-
http.method、http.url、http.querystring、status.code -
action.type(CRUD、GraphQL 作業) -
user.role、user-agent -
data-source.type、data-source.name -
api.type(REST 或 GraphQL)
錯誤和例外狀況也會以詳細資訊進行追蹤。
數據 API 產生器計量
DAB 會發出 OpenTelemetry 計量,例如:
- Total Requests: Counter, labeled by HTTP method, status, endpoint, and API type.
- Errors: Counter, labeled by error type, HTTP method, status, endpoint, and API type.
- Request Duration: Histogram (in milliseconds), labeled as above.
- Active Requests: Up/down counter for concurrent requests.
計量會使用 .NET Meter API 和 OpenTelemetry SDK。
Configuration
open-telemetry
在組態檔中新增 區runtime.telemetry段。
{
"runtime": {
"telemetry": {
"open-telemetry": {
"enabled": true,
"endpoint": "http://otel-collector:4317",
"service-name": "dab",
"exporter-protocol": "grpc"
}
}
}
}
CLI Options
Configure OpenTelemetry via CLI flags:
dab configure --otel-enabled truedab configure --otel-endpoint "http://otel-collector:4317"dab configure --otel-protocol "grpc"dab configure --otel-service-name "dab"dab configure --otel-headers
匯出和視覺效果
遙測會透過 .NET OpenTelemetry SDK 導出至您設定的後端,例如 Azure 監視器或 Jaeger。 請確定您的後端正在執行,並在指定的 endpoint可連線。
Implementation Notes
- 追蹤和計量涵蓋所有 REST、GraphQL 和 DB 作業
- 中間件和錯誤處理程式也會發出遙測
- 內容會透過要求傳播