Aujourd’hui nous déployons toujours plus d’applications, nous évoluons sur plusieurs environnements et gérons des serveurs On-premise et dans le Cloud (hybride).

Toute cette complexité nécessite un monitoring de qualité !

C’est dans cette optique que Datadog a fait son entrée sur le marché en 2010.

Datadog est désormais un outil complet qui propose énormément de fonctionnalités. Son principal avantage ? Ses intégrations avec nos applications ainsi que sa facilité d’installation et d’exploitation des données.

Fonctionnalités

Faisons un tour des fonctionnalités que Datadog propose.

Monitoring :

Pour le monitoring, Datadog propose plusieurs méthodes pour récupérer des métriques.

Si vous êtes dans un Cloud public il est possible d’ajouter une intégration directe, comme avec AWS, qui va récupérer vos métriques depuis CloudWatch ainsi que diverses autres sources de votre choix (Lambda, RDS, ElasticCache etc..).

Pour vos instances, que ce soit On-premise ou dans le Cloud, il est possible d’installer l’agent Datadog directement sur vos machines. Cela permet de récupérer plus de métriques, de configurer l’agent pour s'intégrer avec vos outils, tel que nginx, php-fpm… et d’avoir des healthcheck sur vos services.

Beaucoup de librairies existent pour installer et configurer l’agent avec de l’IaC.

Maintenant, nos conteneurs, on sait tous qu’ils nous tiennent à coeur ! Selon l’utilisation de vos conteneurs, l’installation va être différente.

Il est possible d’avoir un conteneur sidecar qui va envoyer les métriques, par exemple pour du Fargate, ou ECS.

Si vous avez des conteneurs Docker sur des instances, vous pouvez monitorer cela grâce à l’agent et un peu de configuration.

Si vous utilisez un orchestrateur de conteneurs, des intégrations existent. Par exemple pour Kubernetes plusieurs possibilités s’offrent à vous, utiliser un DaemonSet pour mettre l’agent sur chaque node et renvoyer des métriques, ou bien utiliser un Cluster Agent. Je recommande grandement ce dernier car il offre des nouvelles features, tel que l'auto scaling en utilisant des métriques provenant de Datadog.

Il existe un Datadog Operator, mais il est encore en Alpha, à vos risques et périls donc...

Pour le serverless, il existe des intégrations, comme avec Lambda d’AWS.

Toutes ces métriques seront ensuite accessibles pour créer des dashboards et bien sûr des alertes (qui dit monitoring, dit alerting ! ).

monitoring

APM :

APM, acronyme d’Application Performance Monitoring, permet d’avoir des données (metadata) concernant votre application (fonction appelée, ordre d'exécution, erreurs, etc..).

Datadog propose un service d’APM, ce qui peut être très utile dans un environnement de développement.

Datadog propose ses propres librairies pour l’APM, incluant la plupart des langages et frameworks. On peut citer NodeJS avec Express par exemple.

Mais Datadog s'intègre aussi très bien avec des APM tierces, on peut citer X-Ray, où tout le tracing et le mapping sont importés dans Datadog avec une meilleure interface qu’AWS.

Il est aussi possible d’avoir de l’APM pour vos conteneurs et plus récemment vos Lambdas !

APM

Logs :

Il existe un service de Log dans Datadog, cela permet d’agréger les logs depuis différentes sources (agent, intégration, etc..) et d’avoir un filtrage complet comme un ElasticSearch / Kibana.

Tout est configurable, il est possible d'éditer le parsing de chaque log (Grok), d’indexer seulement une partie des logs, selon des règles etc…

Autres:

Il existe une multitude de fonctionnalités dans Datadog, ça fait partie de son charme.

Pour en citer d’autres sans rentrer dans les détails:

  • Security : pour faire du monitoring de sécurité, par exemple mettre sur alerte si un utilisateur essaie de s’authentifier trop de fois avec une erreur (Bruteforce), tout cela selon certaines règles et de l’IA.
  • Notebook : pour permettre de faire une page ayant du Markdown (texte) et des graphiques / logs ensemble pour retracer / expliquer un incident. Cet outil est très utile en collaboration.
  • Metrics : un simple metric explorer.
  • Network : pour analyser vos Flows et Network Map.

Pricing:

Datadog est une offre SaaS, vous payez pour un service, vos données seront sur l’infrastructure de Datadog, ce qui peut en refroidir certains, même si Datadog dispose de beaucoup de certifications et que les données sont hébergées en Europe, plus précisément en Allemagne.

Les puristes et les pro-sécurité seront peut être refroidi par cette idée et préféreront une approche open-source et garderont leur métriques dans leurs data-centers, malgré le gros coût opérationnel.

Le pricing est plutôt simple pour le monitoring d’infrastructure:

  • 15 $ par Host
  • 1$ par container
  • 5$ par fonction (Lambda)

A cela viennent s’ajouter les diverses fonctionnalités que vous souhaitez utiliser.

Si votre infrastructure est assez imposante (seuil défini par Datadog), il est toujours possible de contacter Datadog pour négocier un prix.

Conclusion

De manière générale, Datadog est très simple, puissant et agréable à utiliser. Un de ses gros atouts est de pouvoir centraliser nos métriques, logs et APM au même endroit !

L’exploitation des données devient alors un jeu d’enfant.

Lancez-vous n'hésitez pas à créer un compte et tester, vous avez accès a 14 jours d’essai gratuit.

source images: Datadog