Compartir vía


Operaciones de GraphQL

Cada consulta y mutación de GraphQL ejecutada a través de la API de Fabric para GraphQL genera registros de operaciones detallados que capturan métricas de rendimiento, texto de consulta, detalles de autenticación y resultados de ejecución. Estos registros se recopilan y almacenan automáticamente en la base de datos de supervisión del área de trabajo, lo que proporciona visibilidad sobre cómo se usan las API de GraphQL y cómo se realizan.

Los registros de operaciones de GraphQL forman parte de la funcionalidad de supervisión del área de trabajo de Fabric. Al habilitar la supervisión del área de trabajo, Fabric crea una base de datos de Eventhouse en el área de trabajo que recopila continuamente registros de todas las API de GraphQL. Puede consultar estos registros mediante KQL (lenguaje de consulta kusto) para solucionar problemas, optimizar el rendimiento, realizar un seguimiento de los patrones de uso y asegurarse de que las API cumplen los requisitos del Acuerdo de Nivel de Servicio.

Prerrequisitos

Para acceder a los registros de operaciones de GraphQL y consultar:

  1. Habilitación de la supervisión del área de trabajo en el área de trabajo de Fabric
  2. Acceso a la base de datos KQL del centro de eventos creada para el área de trabajo
  3. Familiaridad con el lenguaje de consulta kusto (KQL) para consultar los registros

Una vez habilitada la supervisión, las operaciones de GraphQL se registran automáticamente en dos tablas: GraphQLMetrics para métricas agregadas y GraphQLLog para registros de operaciones detallados.

Quién usa los registros de operaciones de GraphQL

Los registros de operaciones y la supervisión son esenciales para:

  • Administradores del área de trabajo de Fabric que supervisan el uso, el rendimiento y el consumo de capacidad de GraphQL API
  • Ingenieros de datos que rastrean los patrones de acceso a datos y optimizan las consultas de almacenamiento y lakehouse de Fabric
  • Los equipos de DevOps garantizan que las aplicaciones de producción que consumen datos de Fabric cumplen los requisitos del Acuerdo de Nivel de Servicio
  • Administradores de capacidad de Fabric que comprenden las métricas de consumo de API para el planeamiento de la capacidad y la administración de costos

Use los registros de operaciones cuando necesite supervisar, solucionar problemas o analizar el rendimiento y el uso de las API de GraphQL de Fabric.

Registros de operaciones de GraphQL

Un evento de registro para cada consulta ejecutada por fabric API for GraphQL en sus orígenes de datos conectados se almacena en dos tablas complementarias:

  • GraphQLMetrics: contiene datos de métricas agregados con resúmenes específicos del tiempo, ideales para la supervisión del rendimiento y el análisis de tendencias.
  • GraphQLLog: contiene registros de operaciones detallados con detalles de ejecución y texto de consulta completo, ideal para solucionar problemas de consultas específicas.

Use estos registros para:

  • Identificación de los cambios de comportamiento y posible degradación de la API
  • Detección de consultas inusuales o intensivas en recursos
  • Identificar usuarios y aplicaciones con el mayor número de consultas
  • Análisis del rendimiento y las tendencias de las consultas
  • Solución de problemas de consultas lentas
  • Diagnóstico de problemas con consultas de GraphQL específicas

Tabla GraphQLMetrics

La GraphQLMetrics tabla almacena métricas agregadas para las operaciones de GraphQL. Use esta tabla para la supervisión del rendimiento, el planeamiento de la capacidad y la identificación de tendencias a lo largo del tiempo.

Esta tabla contiene las columnas siguientes:

Nombre de la columna Tipo Descripción
Marca de tiempo datetime Marca de tiempo (UTC) de cuándo se generó la entrada de registro cuando el origen de datos creó el registro.
ItemId string Identificador único del recurso que registra los datos.
ItemKind string Tipo de artefacto que registra la operación.
ItemName string Nombre del artefacto de Fabric que registra esta operación.
WorkspaceId string Identificador único del área de trabajo de Fabric que contiene el artefacto en el que se está operando
WorkspaceName string Nombre del área de trabajo de Fabric que contiene el artefacto.
CapacityId string Identificador único de la capacidad en la que se hospeda el artefacto en el que se está operando.
CustomerTenantId string Id. de inquilino del cliente, donde se realizó la operación.
PlatformMonitoringTableName string El nombre de la tabla a los registros que pertenece (o al tipo de evento certificado del registro). El formato es <WorkloadName> + [OperationType>]+ <TelemetryType>
Region string La región del recurso que emite el evento, por ejemplo, "Este de EE. UU." o "Sur de Francia".
MetricTimeGrain string Intervalo de tiempo de la métrica (duración ISO 8601).
MetricUnitName string Unidad de la métrica.
MetricSumValue long Valor de suma agregado de una métrica durante un solo minuto.
DatasourceTypes dinámico Matriz de tipos DataSource que usa el modelo.
ResultCode string Código de error de las actividades con errores, que se usa para ampliar el uso a la confiabilidad.
Estado string Estado de la operación. La consulta se ejecutó correctamente o correctamente con errores o errores.

Tabla GraphQLLog

La GraphQLLog tabla almacena registros de operaciones detallados para cada ejecución de consulta de GraphQL. Use esta tabla para solucionar problemas específicos de consultas, analizar texto de consulta e investigar errores o problemas de rendimiento.

Para obtener más información sobre los eventos y una exploración en profundidad del evento ExecutionMetrics, consulte Eventos y esquema.

Esta tabla contiene las columnas siguientes:

Nombre de la columna Tipo Descripción
Marca de tiempo datetime Marca de tiempo (UTC) de cuándo se generó la entrada de registro cuando el origen de datos creó el registro.
OperationName string Nombre de la operación.
ItemId string Identificador único del recurso que registra los datos.
ItemKind string Tipo de artefacto que registra la operación.
ItemName string Nombre del artefacto de Fabric que registra esta operación.
WorkspaceId string Identificador único del área de trabajo de Fabric que contiene el artefacto en el que se está operando.
WorkspaceName string Nombre del área de trabajo de Fabric que contiene el artefacto.
CapacityId string Identificador único de la capacidad en la que se hospeda el artefacto en el que se está operando.
CorrelationId string Id. de actividad raíz.
OperationId string Identificador único de la operación que se registra.
Identidad dinámico Detalles de usuario y notificación. Usuario asociado a la operación que se está notificando.
CustomerTenantId string Id. de inquilino del cliente, donde se realizó la operación.
DurationMs long Tiempo de CPU transcurrido que ha pasado mientras se han procesado todas las operaciones necesarias. La unidad está en milisegundos.
Estado string Estado de la operación. La consulta se ejecutó correctamente o correctamente con errores o errores.
Nivel string Metadatos requeridos por el equipo de supervisión de la plataforma.
Region string La región del recurso que emite el evento, por ejemplo, "Este de EE. UU." o "Sur de Francia".
PlatformMonitoringTableName string El nombre de la tabla a los registros que pertenece (o al tipo de evento certificado del registro). El formato es <WorkloadName> + [OperationType>]+ <TelemetryType>
QueryText string Texto de la consulta.
GraphQLOverheadDurationMs long Sobrecarga de GraphQL en ms para una solicitud de plano de datos.
ProcessedBytes long Volumen de datos procesado en byte.
TransportProtocol string Protocolo de transporte para una solicitud.
QueryResultMessage string Esta dimensión se usa para proporcionar contexto adicional al resultado de una operación de consulta.

Consultas de ejemplo

Use estas consultas de KQL para analizar los registros de operaciones de GraphQL. Puede ejecutar estas consultas directamente en el editor de consultas de Eventhouse dentro del área de trabajo.

Búsqueda de consultas lentas

Identifique las consultas de GraphQL que tardan más de 5 segundos en ejecutarse:

GraphQLLog
| where DurationMs > 5000
| project Timestamp, ItemName, DurationMs, QueryText, Status, Identity
| order by DurationMs desc
| take 20

Principales usuarios por recuento de consultas

Busque qué usuarios o aplicaciones realizan más solicitudes de GraphQL:

GraphQLLog
| summarize QueryCount = count() by Identity
| order by QueryCount desc
| take 10

Análisis de la tasa de errores

Calcule la tasa de errores para las operaciones de GraphQL a lo largo del tiempo:

GraphQLLog
| summarize 
    TotalQueries = count(),
    FailedQueries = countif(Status == "failed"),
    ErrorRate = (countif(Status == "failed") * 100.0) / count()
    by bin(Timestamp, 1h)
| order by Timestamp desc

La mayoría de las consultas que consumen muchos recursos

Identifique las consultas que procesan la mayor cantidad de datos:

GraphQLLog
| where ProcessedBytes > 0
| project Timestamp, ItemName, ProcessedBytes, QueryText, DurationMs
| order by ProcessedBytes desc
| take 20

Analice el rendimiento medio de las consultas en las últimas 24 horas:

GraphQLMetrics
| where Timestamp > ago(24h)
| summarize 
    AvgDuration = avg(MetricSumValue),
    MaxDuration = max(MetricSumValue),
    QueryCount = count()
    by bin(Timestamp, 1h), ItemName
| order by Timestamp desc

Para obtener más ejemplos de supervisión del área de trabajo, visite la supervisión del área de trabajo en el repositorio de GitHub de ejemplos de Fabric.