{"id":37901,"date":"2019-10-31T22:20:26","date_gmt":"2019-10-31T19:20:26","guid":{"rendered":"https:\/\/prohoster.info\/blog\/ne-new-relic-om-odnim-vzglyad-na-datadog-i-atatus\/"},"modified":"2019-10-31T22:20:26","modified_gmt":"2019-10-31T19:20:26","slug":"ne-new-relic-om-odnim-vzglyad-na-datadog-i-atatus","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/ne-new-relic-om-odnim-vzglyad-na-datadog-i-atatus","title":{"rendered":"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/8f8e3d96daed74986ef3cbe293356302.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDans le milieu des ing\u00e9nieurs SRE\/DevOps, il n'est pas surprenant qu'un jour un client (ou un syst\u00e8me de surveillance) apparaisse en disant que \u00ab tout est perdu \u00bb : le site ne fonctionne pas, les paiements ne passent pas, la vie est morose... Bien qu'on souhaite aider dans une telle situation, le faire sans un outil simple et clair est souvent tr\u00e8s compliqu\u00e9. Souvent, le probl\u00e8me est cach\u00e9 dans le code m\u00eame de l'application \u2014 il suffit juste de le localiser.<\/p>\n<h2>Dans le malheur comme dans la joie\u2026<\/h2>\n<p>\nIl se trouve que nous avons aim\u00e9 New Relic depuis tr\u00e8s longtemps. Il a \u00e9t\u00e9 et reste un excellent outil pour la surveillance de la performance des applications, et permet \u00e9galement de mettre en \u0153uvre une architecture de microservices (gr\u00e2ce \u00e0 son agent) et bien d'autres choses. Et tout pourrait \u00eatre merveilleux, si ce n'\u00e9tait pour les changements de politique tarifaire du service : son <b>le co\u00fbt <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.newrelic.com\/product-news\/new-relic-new-pricing-startups\/\">depuis 2013<\/a><\/noindex> a augment\u00e9 de plus de 3 fois<\/b>. De plus, depuis l'ann\u00e9e derni\u00e8re, pour obtenir un compte d'essai, il faut communiquer avec un gestionnaire personnel, ce qui complique la pr\u00e9sentation du produit \u00e0 un client potentiel.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Situation classique : New Relic n'est pas n\u00e9cessaire sur une \u00ab base permanente \u00bb, on n'y pense que lorsque le probl\u00e8me commence. Mais il faut quand m\u00eame payer r\u00e9guli\u00e8rement (140 USD par serveur par mois), et dans une infrastructure cloud \u00e9volutive, les sommes s'accumulent rapidement. Bien qu'il existe une option \u00ab Pay-As-You-Go \u00bb, l'activation de New Relic n\u00e9cessitera un red\u00e9marrage de l'application, ce qui pourrait entra\u00eener la perte de la situation probl\u00e9matique pour laquelle tout cela a \u00e9t\u00e9 mis en place. R\u00e9cemment, New Relic a lanc\u00e9 un nouveau tarif \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/newrelic.com\/products\/infrastructure\/pricing\">Essentials<\/a><\/noindex>, qui semble au premier abord \u00eatre une alternative raisonnable au Professional\u2026 mais en y regardant de plus pr\u00e8s, il s'av\u00e8re que certaines fonctions importantes sont absentes (notamment, il n'y a pas de <i>Transactions Cl\u00e9s<\/i>, <i>Tra\u00e7age d'Application Crois\u00e9e<\/i>, <i>Tra\u00e7age Distribu\u00e9<\/i>).<\/p>\n<p>En cons\u00e9quence, nous avons commenc\u00e9 \u00e0 chercher une alternative moins ch\u00e8re, et notre choix s'est port\u00e9 sur deux services : Datadog et Atatus. Pourquoi exactement ceux-l\u00e0 ?<\/p>\n<h2>Sur les concurrents<\/h2>\n<p>\nJe pr\u00e9cise imm\u00e9diatement qu'il existe d'autres solutions sur le march\u00e9. Nous avons m\u00eame envisag\u00e9 des options Open Source, mais tous les clients n'ont pas la capacit\u00e9 libre pour h\u00e9berger des solutions de type self-hosted... \u2014 de plus, elles n\u00e9cessiteront une maintenance suppl\u00e9mentaire. Le duo que nous avons choisi s'est av\u00e9r\u00e9 \u00eatre le plus proche de <b>nos besoins<\/b>:<\/p>\n<ul>\n<li>support int\u00e9gr\u00e9e et d\u00e9velopp\u00e9e pour les applications PHP (la stack de nos clients est tr\u00e8s vari\u00e9e, mais c'est clairement un leader dans le contexte de la recherche d'alternatives \u00e0 New Relic);<\/li>\n<li>tarifs abordables (moins de 100 USD par mois pour l'h\u00e9bergement);<\/li>\n<li>instrumentation automatique;<\/li>\n<li>int\u00e9gration avec Kubernetes;<\/li>\n<li>ressemblance avec l'interface de New Relic \u2014 un avantage notable (car nos ing\u00e9nieurs y sont habitu\u00e9s).<\/li>\n<\/ul>\n<p>\nC'est pourquoi, lors de la premi\u00e8re s\u00e9lection, nous avons \u00e9cart\u00e9 plusieurs autres solutions populaires, notamment :<\/p>\n<ul>\n<li> Tideways, AppDynamics et Dynatrace \u2014 \u00e0 cause du co\u00fbt;<\/li>\n<li> Stackify \u2014 bloqu\u00e9 en RF et ne montre que trop peu de donn\u00e9es.<\/li>\n<\/ul>\n<p>\nL'article suivant est construit de mani\u00e8re \u00e0 d'abord pr\u00e9senter bri\u00e8vement les solutions consid\u00e9r\u00e9es, apr\u00e8s quoi je parlerai de notre interaction type avec New Relic et de notre exp\u00e9rience\/des impressions concernant la r\u00e9alisation d'op\u00e9rations similaires sur d'autres services.<\/p>\n<h3>Pr\u00e9sentation des concurrents s\u00e9lectionn\u00e9s<\/h3>\n<p>\n<img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/b8960097f729d56abeb9d1b0f5931e7d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\u00c0 propos de <noindex><a rel=\"nofollow\" href=\"https:\/\/newrelic.com\/\"><b>New Relic<\/b><\/a><\/noindex>, a probablement \u00e9t\u00e9 entendu par chacun ? Ce service a commenc\u00e9 son d\u00e9veloppement il y a plus de 10 ans, en 2008. Nous l'utilisons activement depuis 2012 et n'avons pas rencontr\u00e9 de probl\u00e8mes pour int\u00e9grer un v\u00e9ritable grand nombre d'applications en PHP, Ruby et Python, et nous avons \u00e9galement eu de l'exp\u00e9rience d'int\u00e9gration avec C# et Go. Les cr\u00e9ateurs du service proposent des solutions pour le suivi des applications, des infrastructures, le tra\u00e7age des infrastructures de microservices, ont cr\u00e9\u00e9 des applications conviviales pour les appareils utilisateurs et bien plus encore.<\/p>\n<p>Cependant, l'agent New Relic fonctionne avec des protocoles propri\u00e9taires, il n'y a pas de support pour OpenTracing. Pour une instrumentation avanc\u00e9e, des modifications sp\u00e9ciales pour New Relic sont n\u00e9cessaires. Enfin, le support de Kubernetes est encore \u00e0 un stade exp\u00e9rimental.<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/6807ed78ff3d053d0aa910dbc81f1414.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nD\u00e9velopp\u00e9 en 2010 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.datadoghq.com\/\"><b>Datadog<\/b><\/a><\/noindex> semble beaucoup plus int\u00e9ressant que New Relic en termes d'application dans des environnements Kubernetes. En particulier, il prend en charge l'int\u00e9gration avec NGINX Ingress, la collecte de journaux, les protocoles statsd et OpenTracing, ce qui permet de suivre la demande utilisateur depuis son initiation jusqu'\u00e0 la fin du traitement, ainsi que de retrouver des journaux associ\u00e9s \u00e0 cette demande (\u00e0 la fois du c\u00f4t\u00e9 du serveur web et du c\u00f4t\u00e9 des consommateurs).<\/p>\n<p>Lors de l'utilisation de Datadog, nous avons rencontr\u00e9 des probl\u00e8mes o\u00f9 il construisait parfois incorrectement la carte des microservices, ainsi que quelques inconv\u00e9nients techniques. Par exemple, il identifiait incorrectement le type de service (prenant Django pour un service de mise en cache) et provoquait des erreurs 500 dans l'application PHP utilisant la biblioth\u00e8que populaire Predis.<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/dd1f3f840cd686265a1616343d832f28.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.atatus.com\/\"><b>Atatus<\/b><\/a><\/noindex> \u2014 l'outil le plus jeune ; le service a \u00e9t\u00e9 lanc\u00e9 en 2014. Son budget marketing est clairement inf\u00e9rieur \u00e0 celui des concurrents mentionn\u00e9s, et ses mentions sont beaucoup plus rares. N\u00e9anmoins, l'outil en soi ressemble beaucoup \u00e0 New Relic, non seulement par ses fonctionnalit\u00e9s (APM, surveillance des navigateurs, etc.), mais aussi par son apparence.<\/p>\n<p>Un inconv\u00e9nient majeur est le support limit\u00e9 \u00e0 Node.js et PHP. D'un autre c\u00f4t\u00e9, il est bien mieux r\u00e9alis\u00e9 que chez Datadog. Contrairement \u00e0 ce dernier, Atatus ne n\u00e9cessite pas de modifications des applications ni d'ajout d'\u00e9tiquettes suppl\u00e9mentaires dans le code.<\/p>\n<h2>Comment nous utilisons New Relic<\/h2>\n<p>\nVoyons maintenant comment nous utilisons g\u00e9n\u00e9ralement New Relic. Imaginons que nous avons un probl\u00e8me qui n\u00e9cessite une solution :<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/615f56cd69a4360f5a659d135840ad8a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIl est facile de remarquer <b>une pouss\u00e9e<\/b> \u2014 analysons-le. Dans New Relic, pour l'application web, les transactions web sont imm\u00e9diatement s\u00e9lectionn\u00e9es, le graphique de performance indique tous les composants, avec des panneaux sur le taux d'erreur et le taux de demande\u2026 L'essentiel est que depuis ces panneaux, on peut naviguer entre diff\u00e9rentes parties de l'application (par exemple, un clic sur MySQL nous am\u00e8ne \u00e0 la section des bases de donn\u00e9es).<\/p>\n<p>Puisque dans cet exemple nous voyons une pouss\u00e9e d'activit\u00e9 <b>PHP<\/b>, clickons sur ce graphique et nous passerons automatiquement \u00e0 <b>Transactions<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/9fbbde055a88d6f63aa6dca4998f925b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLa liste des transactions, qui sont essentiellement des contr\u00f4leurs du mod\u00e8le MVC, est d\u00e9j\u00e0 tri\u00e9e par <b>Le plus consommateur de temps<\/b>, ce qui est tr\u00e8s pratique : nous voyons imm\u00e9diatement ce que l'application fait. Des exemples de requ\u00eates longues, qui sont automatiquement collect\u00e9es par New Relic, sont \u00e9galement disponibles ici. En changeant le tri, il est facile de trouver :<\/p>\n<ul>\n<li> le contr\u00f4leur le plus demand\u00e9 de l'application ;<\/li>\n<li> le contr\u00f4leur le plus souvent demand\u00e9 ;<\/li>\n<li> le plus lent des contr\u00f4leurs.<\/li>\n<\/ul>\n<p>\nDe plus, il est possible de d\u00e9velopper chaque transaction et de voir ce que l'application faisait au moment de l'ex\u00e9cution du code :<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/9c3136cb973a1f47729c305256ee1836.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEnfin, l'application conserve des exemples de traces de requ\u00eates longues (qui prennent plus de 2 secondes). Voici le panneau pour une longue transaction :<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/bca8a9f1b0ccd8158eaff41067681e2a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOn voit que deux m\u00e9thodes prennent beaucoup de temps, et en m\u00eame temps, le temps o\u00f9 la requ\u00eate a \u00e9t\u00e9 ex\u00e9cut\u00e9e, son URI et son domaine sont affich\u00e9s. Cela aide souvent \u00e0 retrouver la requ\u00eate dans les logs. En passant \u00e0 <b>D\u00e9tails de la trace<\/b>, on peut voir d'o\u00f9 ces m\u00e9thodes sont appel\u00e9es :<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/aef8bbd86278aa31d595aa353e6387e0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEt dans <b>Requ\u00eates de base de donn\u00e9es<\/b> \u2014 \u00e9valuer les requ\u00eates aux bases de donn\u00e9es qui ont \u00e9t\u00e9 ex\u00e9cut\u00e9es pendant le fonctionnement de l'application :<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/40d942b57b87237f378dc617676f00fc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nArm\u00e9s de ces connaissances, nous pouvons \u00e9valuer la cause du ralentissement de l'application et \u00e9laborer avec le d\u00e9veloppeur une strat\u00e9gie pour r\u00e9soudre le probl\u00e8me. En r\u00e9alit\u00e9, New Relic ne fournit pas toujours une image claire, mais il aide \u00e0 choisir la direction de l'enqu\u00eate :<\/p>\n<ul>\n<li> long <code>PDO::Construct<\/code> nous a conduit \u00e0 un fonctionnement \u00e9trange de pgpoll ;<\/li>\n<li> instabilit\u00e9 dans le temps <code>Memcache::Get<\/code> a sugg\u00e9r\u00e9 un param\u00e9trage incorrect de la machine virtuelle ;<\/li>\n<li> le temps de traitement de mod\u00e8le suspectement \u00e9lev\u00e9 a conduit \u00e0 une boucle imbriqu\u00e9e v\u00e9rifiant la pr\u00e9sence de 500 avatars dans le stockage d'objets ;<\/li>\n<li> et ainsi de suite\u2026<\/li>\n<\/ul>\n<p>\nIl arrive aussi que, plut\u00f4t que l'ex\u00e9cution de code sur l'\u00e9cran principal, quelque chose li\u00e9 au stockage externe augmente \u2014 peu importe si c'est : Redis ou PostgreSQL, \u2014 tous se cachent dans l'onglet <b>Bases de donn\u00e9es<\/b>.<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/5ff39a5a6e02be329e3c40d54c3b4a1d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVous pouvez choisir une base de donn\u00e9es sp\u00e9cifique pour l'analyse et trier les requ\u00eates \u2014 de la m\u00eame mani\u00e8re que cela se fait dans Transactions. En passant \u00e0 l'onglet requ\u00eate, vous pouvez voir combien de fois cette requ\u00eate appara\u00eet dans chacun des contr\u00f4leurs de l'application, ainsi qu'\u00e9valuer \u00e0 quelle fr\u00e9quence elle est appel\u00e9e. C'est tr\u00e8s pratique :<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/92b3bca78f0aa0f27e5700cd6fe283fe.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDes donn\u00e9es similaires se trouvent dans l'onglet <b>Services externes<\/b>, qui cache les requ\u00eates vers des services HTTP externes, tels que l'acc\u00e8s au stockage d'objets, l'envoi d'\u00e9v\u00e9nements \u00e0 sentry ou quelque chose de similaire. En termes de contenu, cet onglet est totalement similaire \u00e0 Databases :<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/417d6ed0d5fb266e1a338d8277278000.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Concurrents : fonctionnalit\u00e9s et impressions<\/h2>\n<p>\nMaintenant, la partie int\u00e9ressante \u2014 comparons les capacit\u00e9s de New Relic avec celles des concurrents. Malheureusement, nous n'avons pas pu tester les trois outils sur la m\u00eame version d'une application en production. Cependant, nous avons essay\u00e9 de comparer des situations\/configurations aussi identiques que possible.<\/p>\n<h3>1. Datadog<\/h3>\n<p>\nDatadog nous accueille avec un tableau de bord affichant tous les services :<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/fa4eb4ba2349b900d5c04238552e5329.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIl essaie de fragmenter les applications en composants\/microservices, c'est pourquoi dans l'exemple de l'application Django fourni, nous verrons 2 connexions \u00e0 PostgreSQL (<code>defaultdb<\/code> et <code>postgres<\/code>), ainsi que Celery et Redis. Travailler avec Datadog n\u00e9cessite de vous familiariser avec les principes de MVC : il est essentiel de comprendre o\u00f9 les requ\u00eates des utilisateurs aboutissent. En g\u00e9n\u00e9ral, cela est facilit\u00e9 par une <b>carte des services<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/2f5f7c9ce171af671a65fb41401451e5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAu fait, quelque chose de similaire existe aussi dans New Relic :<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/b4e14f15b900f5c19856f1077873c9c0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u2026 cependant, leur carte est, \u00e0 mon avis, plus simple et plus claire : elle affiche non pas les composants d'une seule application (ce qui aurait \u00e9t\u00e9 trop d\u00e9taill\u00e9, comme dans le cas de Datadog), mais uniquement des services ou microservices sp\u00e9cifiques.<\/p>\n<p>Revenons \u00e0 Datadog : la carte des services montre que les requ\u00eates des utilisateurs arrivent dans Django. Passons au service Django et enfin nous verrons ce que nous attendions :<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/fe907532184004ec02238ccd5e7d0ce6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMalheureusement, par d\u00e9faut, il n'y a pas de graphique ici <b>Temps de transaction web<\/b>, similaire \u00e0 celui que nous voyons sur le tableau de bord principal de New Relic. Cependant, il peut \u00eatre configur\u00e9 \u00e0 la place du graphique <b>% de temps pass\u00e9<\/b>. Il suffit de le basculer en <b>Temps moyen par requ\u00eate par type<\/b>\u2026 et voil\u00e0, le graphique familier se pr\u00e9sente \u00e0 nous !<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/4576b27658d257fa5b062ffc7bb5464a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPourquoi Datadog a-t-il privil\u00e9gi\u00e9 un autre graphique \u2014 cela reste un myst\u00e8re pour nous. Cela a aussi d\u00e9\u00e7u que le syst\u00e8me ne m\u00e9morise pas le choix de l'utilisateur (contrairement aux deux concurrents), donc uniquement la cr\u00e9ation de tableaux de bord personnalis\u00e9s nous sauve.<\/p>\n<p>Cependant, nous avons \u00e9t\u00e9 ravis de la possibilit\u00e9 dans Datadog de passer de ces graphiques aux m\u00e9triques des serveurs associ\u00e9s, de lire les journaux et d'\u00e9valuer la charge des gestionnaires de serveur web (Gunicorn). C'est presque comme dans New Relic\u2026 et m\u00eame un peu plus (les journaux) !<\/p>\n<p>Sous les graphiques, se trouvent les transactions, enti\u00e8rement similaires \u00e0 New Relic :<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/3ab831fce57abe39e27bea12b6eb0f67.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDans Datadog, les transactions s'appellent <b>ressources<\/b>. Les contr\u00f4leurs peuvent \u00eatre tri\u00e9s par le nombre de requ\u00eates, par le temps moyen de r\u00e9ponse, par le temps maximum d\u00e9pens\u00e9 pendant la p\u00e9riode choisie. <\/p>\n<p>Une ressource peut \u00eatre d\u00e9ploy\u00e9e et on peut voir tout ce que nous avons d\u00e9j\u00e0 observ\u00e9 dans New Relic :<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/8005dfb15d878c6025d745982114cc02.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIl y a des statistiques sur la ressource, une liste r\u00e9sum\u00e9e des appels internes et des exemples de requ\u00eates qui peuvent \u00eatre tri\u00e9s par code de r\u00e9ponse\u2026 \u00c0 noter que ce tri a beaucoup plu \u00e0 nos ing\u00e9nieurs.<\/p>\n<p>Tout exemple de ressource dans Datadog peut \u00eatre ouvert et \u00e9tudi\u00e9 :<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/0e98c9c3924bd248d048b8587f19f922.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLes param\u00e8tres de la requ\u00eate sont pr\u00e9sent\u00e9s, un diagramme r\u00e9capitulatif du temps pass\u00e9 sur chacun des composants et un diagramme en cascade, o\u00f9 l'on voit la s\u00e9quence des appels. Il est \u00e9galement possible de passer \u00e0 une vue en arbre du diagramme en cascade :<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/c1d12e79d5c170bb88d9261267756fb8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEt le plus int\u00e9ressant \u2014 voir la charge de l'h\u00f4te sur lequel la requ\u00eate a \u00e9t\u00e9 ex\u00e9cut\u00e9e, ainsi que consulter les journaux de la requ\u00eate. <\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/849a299b05596eb6ba4906c7f3851de0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nExcellente int\u00e9gration !<\/p>\n<p>Il peut se poser la question de savoir o\u00f9 sont les onglets <b>Bases de donn\u00e9es<\/b> et <b>Services externes<\/b>, comme dans New Relic. Ici, il n'y en a pas : \u00e9tant donn\u00e9 que Datadog d\u00e9compose l'application en composants, PostgreSQL sera consid\u00e9r\u00e9 comme <b>un service s\u00e9par\u00e9<\/b>, et au lieu des services externes, il faut chercher <code>aws.storage<\/code> (il en sera de m\u00eame pour chaque autre service externe auquel l'application peut faire appel).<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/7a2585778478cdd7abab2e31c1858e68.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVoici un exemple avec <code>postgres<\/code>:<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/76710537a8c7f436d207ef52efb50214.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEn gros, tout ce que nous voulions est l\u00e0 :<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/152e882d964bd5c77aef69f9c140f350.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOn peut voir de quel \u00ab service \u00bb est venue la requ\u00eate. <\/p>\n<p>Il est bon de rappeler que Datadog s'int\u00e8gre parfaitement avec NGINX Ingress et permet de r\u00e9aliser un tra\u00e7age complet depuis l'arriv\u00e9e de la requ\u00eate dans le cluster, tout en acceptant les m\u00e9triques statsd et en collectant les journaux et les m\u00e9triques des h\u00f4tes.<\/p>\n<p>Un \u00e9norme plus pour Datadog est que son prix <i>se compose<\/i> de la surveillance de l'infrastructure, de l'APM, de la gestion des journaux et des tests Synthetics, c'est-\u00e0-dire que l'on peut choisir un plan de mani\u00e8re flexible.<\/p>\n<h3>2. Atatus<\/h3>\n<p>\nL'\u00e9quipe d'Atatus affirme que leur service est \u00ab comme New Relic, mais meilleur \u00bb. Voyons si c'est vraiment le cas.<\/p>\n<p>La barre sup\u00e9rieure ressemble effectivement \u00e0 l'autre, mais il n'a pas \u00e9t\u00e9 possible de d\u00e9terminer les Redis et memcached utilis\u00e9s dans l'application.<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/1b2271bf779f93d4696b8f5fb90c548b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nL'APM s\u00e9lectionne par d\u00e9faut toutes les transactions, bien que, comme d'habitude, seules les Web soient n\u00e9cessaires. Comme avec Datadog, il n'y a pas de possibilit\u00e9 de passer au service souhait\u00e9 depuis le tableau principal. De plus, les transactions se trouvent dans la liste apr\u00e8s les erreurs, ce qui semble peu logique pour l'APM.<\/p>\n<p>Dans les transactions d'Atatus, tout ressemble beaucoup \u00e0 New Relic. L'inconv\u00e9nient est que la dynamique de chaque contr\u00f4leur n'est pas imm\u00e9diatement visible. Il faut la chercher dans le tableau des contr\u00f4leurs, en triant par <b>Most Time Consumed<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/57a1640dc1c99732e5d008051ea08f4a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLa liste famili\u00e8re des contr\u00f4leurs est disponible dans l'onglet <b>Explore<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/9f77e8af1b19460a490f6d57f57c7902.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCette table rappelle d'une certaine mani\u00e8re Datadog et est plus appr\u00e9ci\u00e9e que celle de New Relic.<\/p>\n<p>Chaque transaction peut \u00eatre d\u00e9velopp\u00e9e pour voir ce que faisait l'application :<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/7a74af09bc90449557a797b7898aa827.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLe tableau ressemble \u00e9galement plut\u00f4t \u00e0 Datadog : il y a le nombre de requ\u00eates, la vue d'ensemble des appels. La barre sup\u00e9rieure fournit un onglet pour les erreurs <b>HTTP Failures<\/b> et des exemples de requ\u00eates lentes <b>Session Traces<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/d528b528b14e3e0ba0550296a07d27db.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSi on passe \u00e0 la transaction, on peut voir un exemple de tra\u00e7age, obtenir une liste des requ\u00eates \u00e0 la base de donn\u00e9es et voir les en-t\u00eates de la requ\u00eate. Tout est similaire \u00e0 New Relic :<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/297cee55b9b32383c607eb6860ffe20e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nGlobalement, Atatus a \u00e9t\u00e9 ravi de fournir des tra\u00e7ages d\u00e9taill\u00e9s - sans les collages d'appels typiques de New Relic dans le bloc de rappel :<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/eb40bb051d7a5435072b96cd659bfebf.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/0232a197ee2d28489fcf86c4921f7080.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCependant, il manque un filtre qui (comme dans New Relic) \u00e9liminerait les requ\u00eates ultra-rapides (&lt;5ms). D&#039;un autre c\u00f4t\u00e9, l&#039;affichage de la r\u00e9ponse finale de la transaction (r\u00e9ussite ou erreur) \u00e9tait appr\u00e9ci\u00e9.<\/p>\n<p>Panneau <b>Bases de donn\u00e9es<\/b> aidera \u00e0 \u00e9tudier les requ\u00eates vers les bases de donn\u00e9es externes effectu\u00e9es par l'application. Je rappelle qu'Atatus n'a trouv\u00e9 que PostgreSQL et MySQL, bien que Redis et memcached soient \u00e9galement utilis\u00e9s dans le projet.<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/01bd3b1f4e5f25bb86e9aa79a22588c0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLes requ\u00eates sont tri\u00e9es selon des crit\u00e8res familiers : fr\u00e9quence d'activation, temps de r\u00e9ponse moyen, etc. Il convient de noter l'onglet pr\u00e9sentant les requ\u00eates les plus lentes - c'est tr\u00e8s pratique. De plus, les donn\u00e9es dans cet onglet pour PostgreSQL correspondent \u00e0 celles fournies par l'extension. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/11\/pgstatstatements.html\">pg_stat_statements<\/a><\/noindex> \u2014 un excellent r\u00e9sultat !<\/p>\n<p><img decoding=\"async\" alt=\"Pas seulement avec New Relic : un aper\u00e7u de Datadog et Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/128b3eb7ac1e636e47d4a66a292ca872.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOnglet <b>Requ\u00eates externes<\/b> est enti\u00e8rement identique \u00e0 Databases.<\/p>\n<h2>Conclusions<\/h2>\n<p>\nLes deux outils pr\u00e9sent\u00e9s se sont bien comport\u00e9s en tant qu'APM. Chacun d'eux peut offrir le minimum n\u00e9cessaire. En r\u00e9sum\u00e9, nous pouvons dire que :<\/p>\n<h3>Datadog<\/h3>\n<p>\nAvantages :<\/p>\n<ul>\n<li> une grille tarifaire pratique (l'APM co\u00fbte 31 USD par h\u00f4te) ;<\/li>\n<li> a tr\u00e8s bien fonctionn\u00e9 avec Python ;<\/li>\n<li> int\u00e9gration avec OpenTracing<\/li>\n<li> int\u00e9gration avec Kubernetes;<\/li>\n<li> int\u00e9gration avec NGINX Ingress.<\/li>\n<\/ul>\n<p>\nInconv\u00e9nients :<\/p>\n<ul>\n<li> le seul APM qui a caus\u00e9 une indisponibilit\u00e9 de l'application en raison d'une erreur de module (predis) ;<\/li>\n<li> faible auto-instrumentation PHP ;<\/li>\n<li> d\u00e9finition partiellement \u00e9trange des services et de leur but.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Atatus<\/h3>\n<p>\nAvantages :<\/p>\n<ul>\n<li> instrumentation approfondie PHP ;<\/li>\n<li> interface utilisateur similaire \u00e0 New Relic.<\/li>\n<\/ul>\n<p>\nInconv\u00e9nients :<\/p>\n<ul>\n<li> ne fonctionne pas sur les anciens syst\u00e8mes d'exploitation (Ubuntu 12.05, CentOS 5) ;<\/li>\n<li> faible auto-instrumentation ;<\/li>\n<li> support de seulement deux langages de programmation (Node.js et PHP) ;<\/li>\n<li> interface lente.<\/li>\n<\/ul>\n<p>\n\u00c9tant donn\u00e9 le prix d'Atatus \u00e0 69 USD par mois pour un serveur, nous opterions plut\u00f4t pour Datadog, qui s'int\u00e8gre parfaitement \u00e0 nos besoins (applications web sous K8s) et dispose de nombreuses fonctionnalit\u00e9s utiles.<\/p>\n<h2>P.S.<\/h2>\n<p>\nLisez aussi dans notre blog :<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/462707\/\">Outils pour les d\u00e9veloppeurs d'applications ex\u00e9cut\u00e9es dans Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/436112\/\">Le plugin kubectl-debug pour le d\u00e9bogage dans les pods Kubernetes.<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/424531\/\">Microservices : la taille compte, m\u00eame avec Kubernetes<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/465177\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0441\u0440\u0435\u0434\u0435 SRE-\/DevOps-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435 \u0443\u0434\u0438\u0432\u0438\u0448\u044c, \u0447\u0442\u043e \u043e\u0434\u043d\u0430\u0436\u0434\u044b \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043b\u0438\u0435\u043d\u0442 (\u0438\u043b\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430) \u0438 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442, \u0447\u0442\u043e \u00ab\u0432\u0441\u0451 \u043f\u0440\u043e\u043f\u0430\u043b\u043e\u00bb: \u0441\u0430\u0439\u0442 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043e\u043f\u043b\u0430\u0442\u044b \u043d\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442, \u0436\u0438\u0437\u043d\u044c \u2014 \u0442\u043b\u0435\u043d\u2026 \u041a\u0430\u043a \u0431\u044b \u043d\u0438 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043f\u043e\u043c\u043e\u0447\u044c \u0432 \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0431\u0435\u0437 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0431\u044b\u0432\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u043e. \u0417\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441\u043a\u0440\u044b\u0442\u0430 \u0432 \u043a\u043e\u0434\u0435 \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2014 \u043d\u0443\u0436\u043d\u043e \u043b\u0438\u0448\u044c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28443,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37901","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u0441\u0440\u0435\u0434\u0435 SRE-\/DevOps-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/ne-new-relic-om-odnim-vzglyad-na-datadog-i-atatus\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041d\u0435 New Relic\u2019\u043e\u043c \u043e\u0434\u043d\u0438\u043c: \u0432\u0437\u0433\u043b\u044f\u0434 \u043d\u0430 Datadog \u0438 Atatus | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u0441\u0440\u0435\u0434\u0435 SRE-\/DevOps-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/ne-new-relic-om-odnim-vzglyad-na-datadog-i-atatus\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:20:26+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:20:26+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Pas que New Relic : un regard sur Datadog et Atatus | ProHoster","description":"Il n'y a personne parmi les ing\u00e9nieurs SRE\/DevOps.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/ne-new-relic-om-odnim-vzglyad-na-datadog-i-atatus","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041d\u0435 New Relic\u2019\u043e\u043c \u043e\u0434\u043d\u0438\u043c: \u0432\u0437\u0433\u043b\u044f\u0434 \u043d\u0430 Datadog \u0438 Atatus | ProHoster","og:description":"\u0412 \u0441\u0440\u0435\u0434\u0435 SRE-\/DevOps-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435.","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/ne-new-relic-om-odnim-vzglyad-na-datadog-i-atatus","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:20:26+00:00","article:modified_time":"2019-10-31T19:20:26+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37901","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 19:41:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 18:39:28","updated":"2026-01-23 19:41:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/37901","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=37901"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/37901\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/28443"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=37901"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=37901"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=37901"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}