Si vous avez suivi cette série de blogs, vous avez dû remarquer que bon nombre de sujets ont un thème commun sur l'observation de l'intégrité des logiciels et/ou de l'infrastructure sous-jacente. Cet article se focalise sur une étude de cas inhabituelle ‑ l'observabilité du pipeline de données ‑ pour expliquer comment vous pouvez utiliser des plateformes comme New Relic pour faire passer vos pratiques d'observabilité des pipelines de données au niveau supérieur.
Un peu de contexte
Ce n'est pas un secret : dans le monde de l'entreprise numérique, les données sont reines. Elles sont souvent au cœur du processus de prise de décision. Chez New Relic, un sous-ensemble de nos données est encore plus essentiel, car les factures que nous générons s'appuient dessus. En effet, en 2020, New Relic est passée d'un modèle d'achat basé sur les licences à un modèle basé sur la consommation. La tarification à la consommation n'est pas un nouveau concept, mais ce changement continue d'avoir un impact significatif sur nos propres pratiques d'observabilité des pipelines de données. C'est particulièrement vrai pour notre pipeline d'utilisation qui fait le suivi de la consommation facturable pour chaque client. Lorsqu'on regarde les données de consommation facturable de plus près, leur exactitude est cruciale. Il est primordial de facturer chaque client correctement. Nous envoyons des milliers de factures tous les mois, il nous est donc impossible de vérifier manuellement l'exactitude de la consommation sur chacune d'elles. Ci-dessous vous trouverez un framework pour réfléchir à comment bien effectuer l'observabilité du pipeline de données. Inspiré de notre propre parcours dans ce domaine, les points indiqués devraient s'appliquer à d'autres contextes.
1. Connaître ses objectifs
Pour bien approcher ce domaine, posez-vous d'abord la question suivante : que veux-je accomplir avec l'observabilité du pipeline de données ? Certains objectifs plus généraux peuvent s'appliquer à la plupart des pipelines : monitorer l'accomplissement des SLA, alerter en cas d'erreurs, surveiller des modèles de trafic spécifiques ou des valeurs hors norme, etc. Mais les objectifs d'observabilité peuvent également être spécifiques à votre entreprise. Dans notre cas, nous avons deux objectifs principaux :
- Nous assurer que nous capturons la consommation facturable de manière précise et facturer en fonction de ces données.
- Nous assurer que le pipeline de consommation a des contrôles de qualité des données automatisés.
2. Connaître vos données
Cela peut sembler évident, mais comprendre réellement vos données est une étape souvent occultée. Lorsque vous prenez le temps de les comprendre, elles peuvent vous aider à révéler les domaines où faire des investissements pour atteindre vos objectifs. Voici certaines questions à explorer :
- Quelle est la forme de vos données ? Quel est leur schéma et a-t-il tous les attributs nécessaires à la réalisation de vos objectifs ? Ou comment allez-vous l'enrichir avec d'autres sources de données ?
- Quel est le volume de données ? Combien de points de données par seconde vos systèmes traitent-ils ? Y a-t-il des pics dans ce volume ?
Si vous ne savez pas ou n'avez pas de bonnes réponses à ces questions, une manière simple de commencer est d'utiliser des événements personnalisés et/ou des métriques personnalisées pour instrumenter vos pipelines de traitement des données. Vous pouvez ainsi facilement écrire des requêtes New Relic Query Language (NRQL) qui vous aideront à obtenir des réponses de base à ces questions.
Dans notre cas, l'un des nombreux éléments dont nous faisons le suivi dans notre pipeline est le nombre d'événements d'utilisation générés par nos équipes produits. Ces événements représentent les quantités d'utilisation "brutes" récoltées par une API ou service donné. Ce sont notre principale entrée dans le pipeline. Pour faciliter la cohérence, nous avons compilé une bibliothèque interne que toutes les équipes utilisent pour produire ces événements bruts. Cette bibliothèque standardise non seulement la charge d'événements d'utilisation, mais elle fournit également la fonctionnalité nécessaire pour le reporting des métriques personnalisées sur les événements produits. Ces métriques personnalisées nous permettent d'écrire des requêtes NRQL comme celle-ci :
FROM Metric SELECT sum(usageClient.eventsEmitted) where environment = 'production' since 30 days ago TIMESERIES limit max
Cette requête spécifique génère un graphique similaire au graphique suivant qui nous donne des informations sur les déviations de niveau macro dans la tendance (nous avons également configuré des conditions d'alerte sur ces données).
Ce type de données peut être également utilisé pour la planification des capacités. En théorie, si vous savez que X millions d'événements par heure requièrent une quantité Y de brokers Kafka, vous pouvez donc prédire raisonnablement le nombre de brokers supplémentaires nécessaires lorsque le taux d'événements augmente d'une quantité donnée.
3. Commencer petit
Si vous êtes au début de la phase de création d'un pipeline de données, votre meilleure option est d'intégrer l'observabilité dès le départ. Toutefois, si votre pipeline existe déjà, commencer petit est une bonne approche.
Un pipeline de traitement des données typique peut comporter plusieurs étapes entre son entrée et sa sortie.
Plutôt que de tenter de l'instrumenter en entier d'un seul coup, concentrez-vous d'abord sur des zones plus petites et à forte valeur. Voici certains facteurs à prendre en considération pendant que vous réfléchissez aux priorités :
- Zones d'instabilité potentielle connues : par exemple, si vous savez qu'une étape spécifique peut être potentiellement instable (en raison du code, de l'infrastructure, etc.), envisagez de l'instrumenter en premier.
- Zones à impact commercial élevé : par exemple, si une étape spécifique calcule une métrique commerciale critique, il est judicieux de l'instrumenter en priorité.
Une fois que vous avez identifié où concentrer vos efforts, vous pouvez utiliser les API de métriques/événements personnalisés mentionnées plus haut ainsi que les quickstarts d'observabilité instantanée de New Relic pour donner vie à votre observabilité.
4. Chercher des victoires rapides
Bien qu'il existe des techniques avancées d'observabilité des pipelines de données (par exemple, l'intelligence artificielle [IA] et l'apprentissage machine [ML]), il ne faut pas sous-estimer la valeur qu'apporte l'implémentation de techniques plus simples qui engendrent des victoires rapides. Une technique que nous utilisons en interne est d'envoyer régulièrement un échantillon de données dans tout notre pipeline d'utilisation et d'ensuite vérifier l'exactitude de la sortie transformée. Ci-dessous vous trouverez une illustration expliquant à quoi ressemble cette technique en pratique.
En vous basant sur l'exemple de diagramme de pipeline ci-dessus, vous pouvez créer un processus qui génère une entrée (X) à un intervalle défini, puis utiliser New Relic pour comparer la sortie réelle à la valeur attendue (Y). Vous pouvez automatiser davantage ce monitoring en créant des conditions d'alerte qui avertissent différents canaux lorsque l'entrée X n'a pas la sortie Y.
Cette technique ne vous indiquera pas où un problème se trouve dans le pipeline, mais c'est un bon signal de base pour vérifier que le pipeline fonctionne correctement ou pas. Chez New Relic, nous avons un de ces contrôles de données simples et globaux pour chaque mesure que nous facturons. Si une entrée ne correspond pas à la sortie attendue, la plateforme le signale immédiatement aux équipes concernées pour qu'elles l'étudient plus avant.
Conclusion
L'observabilité des pipelines de données est un vaste domaine très complexe. Bien que chaque pipeline a son lot unique de besoins techniques et commerciaux, ils ont au moins une chose en commun : ils doivent faire l'objet d'une observation. Nous espérons que cet article vous donne un framework et des conseils pratiques pour la mise en place de vos propres pratiques d'observabilité. Nous espérons également qu'il vous montre combien les plateformes de New Relic peuvent vous aider à commencer rapidement et facilement à mettre en œuvre l'observabilité.
Étapes suivantes
Oserez-vous faire passer votre observabilité des pipelines de données au niveau supérieur ? Inscrivez-vous gratuitement auprès de New Relic et garantissez la réussite de votre programme de données d'entreprise grâce à une solide observabilité des pipelines de données.
Les opinions exprimées sur ce blog sont celles de l'auteur et ne reflètent pas nécessairement celles de New Relic. Toutes les solutions proposées par l'auteur sont spécifiques à l'environnement et ne font pas partie des solutions commerciales ou du support proposés par New Relic. Veuillez nous rejoindre exclusivement sur l'Explorers Hub (discuss.newrelic.com) pour toute question et assistance concernant cet article de blog. Ce blog peut contenir des liens vers du contenu de sites tiers. En fournissant de tels liens, New Relic n'adopte, ne garantit, n'approuve ou n'approuve pas les informations, vues ou produits disponibles sur ces sites.