Cette rubrique décrit les métriques de Flink managé.
Notes
Écarts de données entre CloudMonitor et la console Flink
Différences dans les dimensions affichées La console Flink utilise des requêtes PromQL pour afficher uniquement la latence maximale. Dans les scénarios de calcul en temps réel, la latence moyenne peut masquer des problèmes graves tels qu'un déséquilibre de charge ou des blocages sur une seule partition. Par conséquent, seule la latence maximale fournit des informations opérationnelles pertinentes.
Écarts de valeurs CloudMonitor utilise un mécanisme de pré-agrégation pour calculer les métriques. La valeur « maximale » dans CloudMonitor peut différer légèrement de la valeur en temps réel dans la console Flink en raison de différences dans les fenêtres d'agrégation, les horodatages d'échantillonnage ou la logique de calcul. Pour le dépannage, utilisez les données de la console Flink comme référence fiable.
Latence des données et configuration du watermark
-
Logique de calcul de la latence La métrique de surveillance actuelle Emit Delay est calculée en fonction de l'heure de l'événement, selon la formule suivante :
Délai = Heure système actuelle - Champ d'heure logique dans l'enregistrement de données (par exemple, PriceData.time)
Cela signifie que la métrique reflète la fraîcheur des données, et non la vitesse de traitement du système. Cette métrique est élevée lorsque les données source sont anciennes ou lorsque le système suspend sa sortie pour aligner les watermarks.
-
Recommandations
Scénario 1 : Votre logique métier repose sur les watermarks pour garantir l'exactitude, mais les données source sont anciennes
-
Situations typiques :
La livraison des données en amont est intrinsèquement retardée (par exemple, signalement lent des événements).
Vous effectuez un remplissage rétroactif pour traiter les données d'une journée précédente.
La logique métier nécessite des watermarks pour gérer les événements hors ordre, ils ne peuvent donc pas être désactivés.
Phénomène : Les alertes de surveillance indiquent une latence élevée, mais le groupe de consommateurs Kafka n'affiche aucun retard (lag ≈ 0) et la charge CPU est faible.
-
Recommandations :
Ignorez cette métrique de latence : Dans ce cas, un délai élevé est attendu car il reflète l'ancienneté des données. Il n'indique pas une défaillance du système.
Basculez vers une autre métrique : Surveillez plutôt le retard du consommateur Kafka. Si le retard du consommateur n'augmente pas continuellement, le système dispose d'une capacité de traitement suffisante et ne nécessite aucune intervention.
Scénario 2 : Vous exigez une faible latence et pouvez tolérer des événements légèrement hors ordre ou une perte de données
-
Situations typiques :
Pour des applications telles que les tableaux de bord grand écran ou le contrôle des risques en temps réel, l'attente induite par le watermark ralentit la sortie.
La logique métier se soucie davantage du moment où les données sont reçues (heure de traitement) que de l'horodatage contenu dans l'enregistrement de données (heure de l'événement).
Phénomène : Le flux de données est en temps réel, mais parce que le watermark est configuré avec une grande fenêtre de tolérance (par exemple, une autorisation de retard de 10 secondes), la sortie est retardée de 10 secondes.
-
Recommandations :
Supprimez ou désactivez les watermarks : Basculez vers l'utilisation de l'heure de traitement pour les calculs, ou définissez le seuil d'attente du watermark à 0.
Résultat attendu : La métrique de latence diminuera considérablement, se rapprochant du temps de traitement réel. Les données sont traitées dès leur arrivée, sans attendre l'alignement.
-
Caractéristiques des métriques
Les métriques reflètent uniquement l'état actuel d'un composant et sont insuffisantes pour déterminer la cause racine d'un problème. Pour un diagnostic complet, utilisez toujours le moniteur de contre-pression de l'interface utilisateur Flink et d'autres outils.
1. Contre-pression de l'opérateur
Symptôme : Les opérateurs en aval ne peuvent pas traiter les données assez rapidement, ce qui pousse la source à réduire son taux d'émission.
Comment identifier : Utilisez le moniteur de contre-pression de l'interface utilisateur Flink pour identifier ce problème.
-
Caractéristiques des métriques :
sourceIdleTimeaugmente périodiquement.currentFetchEventTimeLagetcurrentEmitEventTimeLagaugmentent continuellement.Cas extrême : Si un opérateur est complètement bloqué,
sourceIdleTimeaugmentera continuellement.
2. Goulot d'étranglement des performances de la source
Symptôme : La source lit à sa vitesse maximale mais ne peut pas satisfaire les demandes de traitement des données.
Comment identifier : Aucune contre-pression n'est détectée dans la tâche.
-
Caractéristiques des métriques :
sourceIdleTimereste à une valeur très faible (indiquant que la source fonctionne à pleine capacité).currentFetchEventTimeLagetcurrentEmitEventTimeLagsont similaires et restent élevés.
3. Déséquilibre de charge ou partitions vides
Symptôme : La distribution des données est inégale entre les partitions Kafka en amont, ou certaines partitions sont vides.
Comment identifier : Comparez les métriques entre différentes sous-tâches source.
-
Caractéristiques des métriques :
Le
sourceIdleTimed'une sous-tâche source spécifique est significativement plus élevé que celui des autres, indiquant que cette instance parallèle est inactive.
4. Latence des données
Symptôme : La latence globale de la tâche est élevée. Vous devez déterminer si le goulot d'étranglement provient de la source ou d'un système externe.
Comment identifier : Analysez conjointement le temps d'inactivité, la différence entre les métriques de retard et la taille de la file d'attente.
-
Caractéristiques des métriques :
**
sourceIdleTimeélevé : Cela indique que la source est inactive, ce qui signifie généralement que le taux de production de données du système externe** est faible, et non que Flink traite lentement.-
Analyse de la différence de retard : Comparez la différence entre
currentEmitEventTimeLagetcurrentFetchEventTimeLag. Cette différence représente le temps passé par les données au sein de l'opérateur source :Faible différence (valeurs de métriques proches) : Cela indique une capacité de récupération insuffisante. Le goulot d'étranglement est généralement la bande passante des E/S réseau ou un parallélisme source insuffisant.
Forte différence : Cela indique une capacité de traitement insuffisante. Le goulot d'étranglement est généralement une analyse inefficace des données ou une contre-pression des opérateurs en aval.
**
pendingRecords(si pris en charge par le connecteur) : Cette métrique reflète directement la file d'attente externe**. Une valeur plus élevée indique une accumulation de données plus sévère dans le système externe.