Streaming des métriques AWS avec Kinesis firehose.

Dans les architectures, de nos jours, on utilise beaucoup de composants techniques pour faire fonctionner un use case, et assurer l’observabilité des ces composants devient très difficile à anticiper, d’où le besoin croissant d’adopter des outils de centralisation des traces et métriques tel que Splunk, Elasticsearch, Datadog ou autres.

Historiser et superviser les métriques des composants est indispensable pour assurer une bonne observabilité.

Sur AWS, Cloud Watch Metrics assure nativement la gestion des métriques des autres services, on peut même en ajouter des métriques spécifiques via une API fournie (put-metric-data https://aws.amazon.com/fr/premiumsupport/knowledge-center/cloudwatch-custom-metrics/). Les consoles de base assurent le monitoring et la création des alertes sur la base de ces métriques.

Mais parfois, on a le besoin de les exporter vers d’autres outils pour des besoins de centralisation et/ou d’analyses poussées.

AWS fournit désormais un moyen pour récupérer les métriques en mode streaming, ce qui offre un avantage considérable par rapport à des appels API initiées par les collecteurs. Le streaming utilise le service Kinesis ce qui permet de configurer des pipelines d’acheminement et de traitement de données à la volée.

Ci-dessous un exemple de base de streaming des métriques Cloud Watch vers un Bucket S3 :

 

Avec Kinesis firehose, on peut exporter les métriques vers de nombreuses destinations autres que S3, comme Elasticsearch ou Splunk.