数据 API 生成器(DAB)支持 OpenTelemetry 进行分布式跟踪和指标,使你能够跨 REST、GraphQL、数据库作和内部中间件监视和诊断应用程序的行为。
数据 API 生成器跟踪
DAB 为:
- 传入 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 true
dab 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 Monitor 或 Jaeger。 确保后端在指定的 endpoint
位置运行并可访问。
Implementation Notes
- 跟踪和指标涵盖所有 REST、GraphQL 和 DB作
- 中间件和错误处理程序还会发出遥测
- 上下文通过请求传播