Partager via


Opérations GraphQL

Chaque requête GraphQL et mutation exécutée par le biais de votre API Fabric pour GraphQL génère des journaux d’opérations détaillés qui capturent les métriques de performances, le texte de requête, les détails de l’authentification et les résultats d’exécution. Ces journaux sont automatiquement collectés et stockés dans la base de données de surveillance de votre espace de travail, ce qui fournit une visibilité sur l’utilisation de vos API GraphQL et leur exécution.

Les journaux des opérations GraphQL font partie de la fonctionnalité de supervision de l’espace de travail de Fabric. Lorsque vous activez l’analyse de l’espace de travail, Fabric crée une base de données Eventhouse dans votre espace de travail qui collecte en continu les journaux à partir de toutes vos API GraphQL. Vous pouvez interroger ces journaux à l’aide de KQL (Langage de requête Kusto) pour résoudre les problèmes, optimiser les performances, suivre les modèles d’utilisation et garantir que vos API répondent aux exigences du contrat SLA.

Prerequisites

Pour accéder aux journaux des opérations GraphQL et les interroger :

  1. Activer la surveillance de l’espace de travail dans votre espace de travail Fabric
  2. Accéder à la base de données Eventhouse KQL créée pour votre espace de travail
  3. Connaissance du langage de requête Kusto (KQL) pour l’interrogation des journaux

Une fois l’analyse activée, les opérations GraphQL sont automatiquement journalisées sur deux tables : GraphQLMetrics pour les métriques agrégées et GraphQLLog pour les journaux d’opérations détaillés.

Qui utilise les journaux des opérations GraphQL

Les journaux d’activité et la surveillance des opérations sont essentiels pour :

  • Administrateurs de l’espace de travail Fabric qui surveillent l’utilisation, les performances et la consommation de capacité de l’API GraphQL
  • Ingénieurs données qui suivent les modèles d’accès aux données et optimisent les requêtes fabric lakehouse et d’entrepôt
  • Équipes DevOps garantissant que les applications de production consommant des données Fabric répondent aux exigences du contrat SLA
  • Les administrateurs de capacité de structure comprennent les métriques de consommation d’API pour la planification de la capacité et la gestion des coûts

Utilisez les journaux des opérations lorsque vous devez surveiller, dépanner ou analyser les performances et l’utilisation de vos API Fabric GraphQL.

Journaux d’opérations GraphQL

Un événement de journal pour chaque requête exécutée par l’API Fabric pour GraphQL sur ses sources de données connectées est stocké dans deux tables complémentaires :

  • GraphQLMetrics : contient des données de métrique agrégées avec des résumés de grain de temps, idéales pour l’analyse des performances et l’analyse des tendances
  • GraphQLLog : contient des journaux d’opérations détaillés avec du texte de requête complet et des détails d’exécution, idéal pour résoudre les problèmes de requêtes spécifiques

Utilisez ces journaux pour :

  • Identifier les modifications de comportement et la dégradation potentielle de l’API
  • Détecter des requêtes inhabituelles ou gourmandes en ressources
  • Identifier les utilisateurs et les applications avec le plus grand nombre de requêtes
  • Analyser les performances et les tendances des requêtes
  • Résoudre le problème de requêtes lentes
  • Diagnostiquer les problèmes liés à des requêtes GraphQL spécifiques

Table GraphQLMetrics

La GraphQLMetrics table stocke les métriques agrégées pour les opérations GraphQL. Utilisez ce tableau pour la surveillance des performances, la planification de la capacité et l’identification des tendances au fil du temps.

Ce tableau contient les colonnes suivantes :

Nom de la colonne Type Description
Timestamp DATETIME L'horodatage (UTC) du moment où l'entrée du journal a été générée lorsque l'enregistrement a été créé par la source de données.
ItemId string ID unique de la ressource qui journalise les données.
ItemKind string Type d’artefact qui journalise l’opération.
ItemName string Le nom de l'artefact Fabric qui enregistre cette opération.
WorkspaceId string Identificateur unique de l’espace de travail Fabric qui contient l’artefact utilisé
WorkspaceName string Nom de l'espace de travail Fabric contenant l'artefact.
CapacityId string Identificateur unique de la capacité qui héberge l’artefact utilisé.
CustomerTenantId string Customer Tenant ID, où l'opération a été effectuée.
PlatformMonitoringTableName string Le nom de la table à laquelle appartient l'enregistrement (ou le type d'événement certifié de l'enregistrement). Format : <WorkloadName> + [OperationType>]+ <TelemetryType>
Région string Région de la ressource émettant l’événement ; par exemple, USA Est ou France Sud.
MetricTimeGrain string Fragment de temps de la mesure (durée ISO 8601).
MetricUnitName string Unité de la métrique.
MetricSumValue long La valeur totale agrégée d'une métrique pendant une minute.
DatasourceTypes dynamic Tableau des types de DataSource utilisées par le modèle.
ResultCode string Code d'erreur des activités qui ont échoué, utilisé pour étendre l'utilisation à la fiabilité.
État string État de l’opération. La requête a été exécutée avec succès, avec des erreurs ou a échoué.

Table GraphQLLog

La GraphQLLog table stocke les journaux d’opération détaillés pour chaque exécution de requête GraphQL. Utilisez ce tableau pour résoudre les problèmes de requêtes spécifiques, analyser le texte de la requête et examiner les erreurs ou les problèmes de performances.

Pour plus d’informations sur les événements et une exploration dans l’événement ExecutionMetrics, consultez Événements et schéma.

Ce tableau contient les colonnes suivantes :

Nom de la colonne Type Description
Timestamp DATETIME L'horodatage (UTC) du moment où l'entrée du journal a été générée lorsque l'enregistrement a été créé par la source de données.
NomOpération string Nom de l'opération.
ItemId string ID unique de la ressource qui journalise les données.
ItemKind string Type d’artefact qui journalise l’opération.
ItemName string Le nom de l'artefact Fabric qui enregistre cette opération.
WorkspaceId string Identificateur unique de l’espace de travail Fabric qui contient l’artefact utilisé.
WorkspaceName string Nom de l'espace de travail Fabric contenant l'artefact.
CapacityId string Identificateur unique de la capacité qui héberge l’artefact utilisé.
CorrelationId string ID activité racine.
OperationId string Identificateur unique pour l'opération enregistrée.
Identité dynamic Données relatives à l'utilisateur et à la demande d'indemnisation. Données relatives à l'utilisateur et à la demande d'indemnisation.
CustomerTenantId string Customer Tenant ID, où l'opération a été effectuée.
DurationMs long Temps processeur écoulé pendant que toutes les opérations requises ont été traitées. L'unité est en millisecondes.
État string État de l’opération. La requête a été exécutée avec succès, avec des erreurs ou a échoué.
Niveau string Métadonnées requises par l'équipe de surveillance de la plate-forme.
Région string Région de la ressource émettant l’événement ; par exemple, USA Est ou France Sud.
PlatformMonitoringTableName string Le nom de la table à laquelle appartient l'enregistrement (ou le type d'événement certifié de l'enregistrement). Format : <WorkloadName> + [OperationType>]+ <TelemetryType>
QueryText string Texte de la requête.
GraphQLOverheadDurationMs long Le traitement GraphQL en ms pour une requête de plan de données.
ProcessedBytes long Volume de données traitées en octets.
TransportProtocol string Protocole de transport pour une requête.
QueryResultMessage string Cette dimension est utilisée pour donner un contexte supplémentaire au résultat d'une opération de recherche.

Exemples de requêtes

Utilisez ces requêtes KQL pour analyser vos journaux d’opération GraphQL. Vous pouvez exécuter ces requêtes directement dans l’éditeur de requête Eventhouse au sein de votre espace de travail.

Rechercher les requêtes lentes

Identifiez les requêtes GraphQL qui prennent plus de 5 secondes pour s’exécuter :

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

Principaux utilisateurs par nombre de requêtes

Recherchez les utilisateurs ou les applications qui effectuent le plus de requêtes GraphQL :

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

Analyse du taux d’erreur

Calculez le taux d’erreur pour les opérations GraphQL au fil du temps :

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

Requêtes nécessitant beaucoup de ressources

Identifiez les requêtes qui traitent la plus grande quantité de données :

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

Analysez les performances moyennes des requêtes au cours des 24 dernières heures :

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

Pour plus d’exemples de surveillance d’espace de travail, consultez la supervision de l’espace de travail dans le référentiel GitHub d’exemples Fabric.