Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Data API Builder (DAB) admite OpenTelemetry para el seguimiento distribuido y las métricas, lo que le permite supervisar y diagnosticar el comportamiento en REST, GraphQL, operaciones de base de datos y middleware interno.
Prerrequisitos
- Archivo de configuración DAB existente.
- Ejecutar el recopilador o back-end de OpenTelemetry (por ejemplo, Azure Monitor o Jaeger).
- CLI para el generador de APIs de datos. Instalación de la CLI
Ejecutar herramienta
Use dab add-telemetry para agregar la configuración de OpenTelemetry a tu sistema.
Asegúrese de que tiene un archivo de configuración. Si necesita crear una, ejecute:
dab init \ --database-type mssql \ --connection-string "<sql-connection-string>"Agregue la configuración de OpenTelemetry al archivo de configuración.
dab add-telemetry \ -c dab-config.json \ --otel-enabled true \ --otel-endpoint "http://localhost:4317" \ --otel-protocol "grpc" \ --otel-service-name "dab"Inicie DAB.
dab start
Prueba en el back-end de telemetría
Abra la interfaz de usuario del servidor o recopilador de OpenTelemetry.
Confirme que llegan seguimientos y métricas para las llamadas a REST, GraphQL o bases de datos.
Nota:
El panel de .NET Aspire es una parte ideal del bucle para desarrolladores. Incluye vistas integradas para seguimientos y métricas de OpenTelemetry.
Seguimientos de Data API Builder
DAB crea "actividades" de OpenTelemetry para:
- Solicitudes HTTP entrantes (puntos de conexión REST)
- Operaciones de GraphQL
- Consultas de base de datos (por entidad)
- Pasos internos del middleware (por ejemplo, control de solicitudes, seguimiento de errores)
Cada actividad incluye etiquetas detalladas (metadatos), como:
-
http.method,http.url, ,http.querystring,status.code -
action.type(CRUD, operación GraphQL) -
user.role,user-agent -
data-source.type,data-source.name -
api.type(REST o GraphQL)
También se realiza un seguimiento de errores y excepciones con información detallada.
Métricas del generador de API de datos
DAB emite métricas de OpenTelemetry como:
- Total de solicitudes: contador, etiquetado por método HTTP, estado, punto de conexión y tipo de API.
- Errores: contador, etiquetado por tipo de error, método HTTP, estado, punto de conexión y tipo de API.
- Duración de la solicitud: histograma (en milisegundos), etiquetado por método HTTP, estado, punto de conexión y tipo de API.
- Solicitudes activas: contador activo/inactivo para solicitudes simultáneas.
Las métricas usan la API de .NET Meter y el SDK de OpenTelemetry.
Configuration
Agregue una open-telemetry sección en runtime.telemetry en el archivo de configuración.
{
"runtime": {
"telemetry": {
"open-telemetry": {
"enabled": true,
"endpoint": "http://otel-collector:4317",
"service-name": "dab",
"exporter-protocol": "grpc"
}
}
}
}
Command-line
Configura OpenTelemetry mediante dab add-telemetry.
--otel-enabled--otel-endpoint--otel-protocol--otel-service-name--otel-headers
Example
dab add-telemetry \
-c dab-config.json \
--otel-enabled true \
--otel-endpoint "http://localhost:4317" \
--otel-protocol "grpc" \
--otel-service-name "dab"
Configuración resultante
Nota:
Las opciones de OpenTelemetry no están disponibles en dab configure.
{
"runtime": {
"telemetry": {
"open-telemetry": {
"enabled": true,
"endpoint": "http://localhost:4317",
"service-name": "dab",
"exporter-protocol": "grpc"
}
}
}
}
Exportación y visualización
La telemetría se exporta a través del SDK de OpenTelemetry de .NET al back-end configurado, como Azure Monitor o Jaeger. Asegúrese de que el back end se esté ejecutando y sea accesible en el especificado endpoint. Puede usar cualquier back-end compatible con OpenTelemetry para su visualización.
El SDK de OpenTelemetry controla el tiempo de exportación. Exporta trazas cuando las actividades se completan. Exporta las métricas en un intervalo periódico configurado por el SDK. Si no establece un intervalo, el SDK usa su valor predeterminado.
Nota:
Los contenedores efímeros que se cierran rápidamente pueden salir antes de que se completen las exportaciones. Permita una ventana de apagado correcta y evite la terminación agresiva para que la telemetría pendiente pueda vaciarse.
Notas de implementación
- Los seguimientos y las métricas cubren todas las operaciones rest, GraphQL y base de datos
- El middleware y los controladores de errores también emiten telemetría
- El contexto se propaga a través de solicitudes