{"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\/da\/blog\/administrirovanie\/ne-new-relic-om-odnim-vzglyad-na-datadog-i-atatus","title":{"rendered":"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/8f8e3d96daed74986ef3cbe293356302.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBland SRE-\/DevOps-ingeni\u00f8rer er det ikke overraskende, at en kunde (eller et overv\u00e5gningssystem) en dag dukker op og siger, at \"alt er tabt\": hjemmesiden virker ikke, betalinger g\u00e5r ikke igennem, livet er trist... Selvom man gerne vil hj\u00e6lpe i en s\u00e5dan situation, kan det v\u00e6re meget sv\u00e6rt at g\u00f8re det uden et enkelt og klart v\u00e6rkt\u00f8j. Ofte er problemet gemt i selve applikationens kode \u2014 man skal bare lokalisere det.<\/p>\n<h2>I b\u00e5de sorg og gl\u00e6de...<\/h2>\n<p>\nS\u00e5dan er det, at vi for l\u00e6nge siden virkelig kom til at elske New Relic. Det har v\u00e6ret og er stadig et fremragende redskab til overv\u00e5gning af applikationsydelse, og det g\u00f8r det muligt at instrumentere mikrotjenestearkitekturen (ved hj\u00e6lp af sin agent) og meget, meget mere. Og alt kunne have v\u00e6ret fantastisk, hvis ikke for \u00e6ndringerne i serviceprisen: den <b>prisen <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.newrelic.com\/product-news\/new-relic-new-pricing-startups\/\">siden 2013<\/a><\/noindex> er steget med over 3 gange<\/b>. Desuden kr\u00e6ver det nu kommunikation med en personlig manager for at f\u00e5 en trial-konto, hvilket besv\u00e6rligg\u00f8r pr\u00e6sentationen af produktet til potentielle kunder.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>En almindelig situation: New Relic er ikke n\u00f8dvendigt 'p\u00e5 konstant basis', man husker kun p\u00e5 det, n\u00e5r problemerne begynder. Men man skal stadig betale regelm\u00e6ssigt (140 USD per server per m\u00e5ned), og i en automatisk skalerende cloud-infrastruktur l\u00f8ber bel\u00f8bene op. Selvom der er en 'Pay-As-You-Go'-mulighed, kr\u00e6ver det at genstarte applikationen for at aktivere New Relic, hvilket kan resultere i tab af den problematiske situation, som alt dette blev sat i gang for. For ikke s\u00e5 l\u00e6nge siden introducerede New Relic en ny tarifplan \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/newrelic.com\/products\/infrastructure\/pricing\">Essentials<\/a><\/noindex>, \u2014 som ved f\u00f8rste \u00f8jekast ser ud til at v\u00e6re et fornuftigt alternativ til Professional... men ved en n\u00e6rmere unders\u00f8gelse viste det sig, at nogle vigtige funktioner manglede (is\u00e6r er der ikke <i>Key Transactions<\/i>, <i>Cross Application Tracing<\/i>, <i>Distributed Tracing<\/i>).<\/p>\n<p>Som resultat overvejede vi at finde en billigere alternativ, og vores valg faldt p\u00e5 to tjenester, Datadog og Atatus. Hvorfor netop dem?<\/p>\n<h2>Om konkurrenterne<\/h2>\n<p>\nJeg vil straks understrege, at der findes andre l\u00f8sninger p\u00e5 markedet. Vi overvejede endda Open Source-alternativer, men ikke alle kunder har frie ressourcer til at implementere l\u00f8sninger af typen self-hosted... \u2014 desuden kr\u00e6ver de yderligere vedligeholdelse. Den par, vi valgte, viste sig at v\u00e6re t\u00e6ttest p\u00e5 <b>vores behov<\/b>:<\/p>\n<ul>\n<li>indbygget og udviklet support til PHP-applikationer (stakken hos vores kunder er meget varieret, men det er en klar leder i forhold til at finde alternativer til New Relic);<\/li>\n<li>overkommelig pris (mindre end 100 USD om m\u00e5neden for hosting);<\/li>\n<li>automatisk instrumentering;<\/li>\n<li>integration med Kubernetes;<\/li>\n<li>ligheder med New Relic's interface \u2014 en m\u00e6rkbar fordel (fordi vores ingeni\u00f8rer har v\u00e6nnet sig til det).<\/li>\n<\/ul>\n<p>\nDerfor har vi i den indledende udv\u00e6lgelse udelukket flere andre popul\u00e6re l\u00f8sninger, herunder:<\/p>\n<ul>\n<li> Tideways, AppDynamics og Dynatrace \u2014 p\u00e5 grund af prisen;<\/li>\n<li> Stackify \u2014 blokeret i Rusland og viser for f\u00e5 data.<\/li>\n<\/ul>\n<p>\nDen f\u00f8lgende artikel er opbygget p\u00e5 en m\u00e5de, hvor de betragtede l\u00f8sninger f\u00f8rst pr\u00e6senteres kort, hvorefter jeg vil fort\u00e6lle om vores typiske interaktion med New Relic samt erfaringer\/impressioner fra udf\u00f8relsen af lignende operationer i andre tjenester.<\/p>\n<h3>Pr\u00e6sentation af udvalgte konkurrenter<\/h3>\n<p>\n<img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/b8960097f729d56abeb9d1b0f5931e7d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nOm <noindex><a rel=\"nofollow\" href=\"https:\/\/newrelic.com\/\"><b>New Relic<\/b><\/a><\/noindex>, har nok hverken h\u00f8rt om? Denne tjeneste begyndte sin udvikling for over 10 \u00e5r siden, i 2008. Vi har aktivt anvendt den siden 2012 og har ikke haft problemer med integration af et reelt stort antal applikationer p\u00e5 PHP, Ruby og Python, og vi har ogs\u00e5 erfaring med integration med C# og Go. Tjenestens skabere har l\u00f8sninger til overv\u00e5gning af applikationer, infrastruktur, sporing af mikroservice-infrastrukturer, der er lavet brugervenlige apps til kundeenheder og meget mere.<\/p>\n<p>Men New Relic-agenten arbejder med propriet\u00e6re protokoller, og der er ikke st\u00f8tte for OpenTracing. For avanceret instrumentering kr\u00e6ves specifikke tilpasninger til New Relic. Endelig har Kubernetes-supporten i \u00f8jeblikket eksperimentel status.<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/6807ed78ff3d053d0aa910dbc81f1414.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nSom begyndte sin udvikling i 2010 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.datadoghq.com\/\"><b>Datadog<\/b><\/a><\/noindex> ser v\u00e6sentligt mere interessant ud end New Relic, is\u00e6r i forhold til anvendelse i Kubernetes-milj\u00f8er. Det underst\u00f8tter nemlig integration med NGINX Ingress, logindsamling, statsd og OpenTracing-protokoller, hvilket g\u00f8r det muligt at spore brugerforesp\u00f8rgsler fra forbindelsen til afslutningen af arbejdet og ogs\u00e5 finde logge for denne anmodning (b\u00e5de p\u00e5 websiden og p\u00e5 forbrugerens side).<\/p>\n<p>Ved brug af Datadog st\u00f8dte vi p\u00e5 det faktum, at det nogle gange konstruerede kortet over mikroservices forkert, samt nogle tekniske mangler. For eksempel identificerede det forkert servicen som (opfattede Django som en caching-service) og for\u00e5rsagede 500-fejl i PHP-applikationen, der brugte det popul\u00e6re bibliotek Predis.<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og 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 det yngste v\u00e6rkt\u00f8j; servicen blev lanceret i 2014. Dens markedsf\u00f8ringsbudget er tydeligt mindre end de n\u00e6vnte konkurrenter, og omtaler forekommer betydeligt sj\u00e6ldnere. Ikke desto mindre ligner v\u00e6rkt\u00f8jet i sig selv New Relic meget, ikke kun i funktioner (APM, Browser monitoring osv.), men ogs\u00e5 i udseendet.<\/p>\n<p>En betydelig ulempe er, at det kun underst\u00f8tter Node.js og PHP. P\u00e5 den anden side er implementeringen betydeligt bedre end hos Datadog. I mods\u00e6tning til sidstn\u00e6vnte kr\u00e6ver Atatus ikke, at applikationerne \u00e6ndres eller at der tilf\u00f8jes ekstra etiketter i koden.<\/p>\n<h2>S\u00e5dan arbejder vi med New Relic<\/h2>\n<p>\nLad os nu se p\u00e5, hvordan vi typisk bruger New Relic. Lad os antage, at vi har et problem, der kr\u00e6ver l\u00f8sning:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/615f56cd69a4360f5a659d135840ad8a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet er let at bem\u00e6rke <b>et spike<\/b> \u2014 lad os analysere det. I New Relic for webapplikationen er webtransaktioner straks valgt, i pr\u00e6stationsgrafen er alle komponenter angivet, og der er paneller for error-rate, request-rate\u2026 Det vigtigste er, at man direkte fra disse paneler kan navigere mellem forskellige dele af applikationen (for eksempel vil et klik p\u00e5 MySQL f\u00f8re til databasedelen).<\/p>\n<p>Da vi i dette eksempel ser et spike i aktiviteten <b>PHP<\/b>, klikker vi p\u00e5 denne graf og g\u00e5r automatisk til <b>Transactions<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/9fbbde055a88d6f63aa6dca4998f925b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nListen over transaktioner, som i bund og grund er controllere fra MVC-modellen, er allerede sorteret efter <b>Most time consuming<\/b>, hvilket er meget praktisk: vi ser straks, hvad applikationen besk\u00e6ftiger sig med. Her er der ogs\u00e5 eksempler p\u00e5 lange anmodninger, der automatisk indsamles af New Relic. Ved at skifte sortering er det let at finde:<\/p>\n<ul>\n<li> den mest belastede controller i applikationen;<\/li>\n<li> den mest anmodede controller;<\/li>\n<li> den langsomste af controllere.<\/li>\n<\/ul>\n<p>\nDerudover kan man udvide hver transaktion og se, hvad applikationen besk\u00e6ftigede sig med i \u00f8jeblikket for koden blev udf\u00f8rt:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/9c3136cb973a1f47729c305256ee1836.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEndelig gemmes der eksempler p\u00e5 traces for lange anmodninger (der tager over 2 sekunder). Her er panelet for den lange transaktion:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/bca8a9f1b0ccd8158eaff41067681e2a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet ses, at to metoder tager meget tid, og der vises ogs\u00e5 tidspunktet for anmodningen, dens URI og dom\u00e6ne. Dette hj\u00e6lper ofte med at finde anmodningen i loggene. Ved at g\u00e5 til <b>Trace details<\/b>, kan man se, hvor disse metoder bliver kaldt fra:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/aef8bbd86278aa31d595aa353e6387e0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOg i <b>Database queries<\/b> \u2014 vurdere anmodninger til databaserne, som blev udf\u00f8rt i l\u00f8bet af applikationens drift:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/40d942b57b87237f378dc617676f00fc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMed disse f\u00e6rdigheder kan vi vurdere \u00e5rsagen til applikationens langsomhed og sammen med udvikleren udvikle en strategi for at l\u00f8se problemet. I praksis giver New Relic dog ikke altid et klart billede, men det hj\u00e6lper med at v\u00e6lge retningen for efterforskningen:<\/p>\n<ul>\n<li> lang <code>PDO::Construct<\/code> f\u00f8rte os til m\u00e6rkelig funktionalitet i pgpoll;<\/li>\n<li> ustabilitet over tid <code>Memcache::Get<\/code> indikerede en forkert konfiguration af den virtuelle maskine;<\/li>\n<li> den mist\u00e6nkeligt for\u00f8gede behandlingstid for skabelonen f\u00f8rte til en indlejret l\u00f8kke, der kontrollerede for 500 avatarer i objektlageret;<\/li>\n<li> og s\u00e5 videre\u2026<\/li>\n<\/ul>\n<p>\nDer kan ogs\u00e5 ske det, at der vokser noget relateret til ekstern datalagring i stedet for at k\u00f8re koden p\u00e5 hovedsk\u00e6rmen \u2014 og det er ligegyldigt hvad det er: Redis eller PostgreSQL \u2014 de gemmer sig alle under fanen <b>Databases<\/b>.<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/5ff39a5a6e02be329e3c40d54c3b4a1d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDu kan v\u00e6lge en specifik database til unders\u00f8gelse og sortere foresp\u00f8rgslerne \u2014 ligesom det g\u00f8res i Transactions. Ved at g\u00e5 til foresp\u00f8rgselsfanen kan man se, hvor ofte denne foresp\u00f8rgsel optr\u00e6der i hver af applikationens controllere, samt vurdere, hvor ofte den kaldes. Det er meget praktisk:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/92b3bca78f0aa0f27e5700cd6fe283fe.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTilsvarende data findes i fanen <b>External Services<\/b>, som skjuler foresp\u00f8rgsler til eksterne HTTP-tjenester, s\u00e5som anmodninger til objektlageret, sending af begivenheder til Sentry eller lignende. Indholdet af fanen er helt analoge til Databases:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/417d6ed0d5fb266e1a338d8277278000.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Konkurrenter: muligheder og indtryk<\/h2>\n<p>\nNu bliver det interessante \u2014 lad os sammenligne mulighederne i New Relic med dem, som konkurrenterne tilbyder. Desv\u00e6rre har vi ikke v\u00e6ret i stand til at teste alle tre v\u00e6rkt\u00f8jer med den samme version af en produktionsapplikation. Ikke desto mindre har vi fors\u00f8gt at sammenligne s\u00e5 ensartede situationer\/konfigurationer som muligt.<\/p>\n<h3>1. Datadog<\/h3>\n<p>\nDatadog m\u00f8der os med et panel som en v\u00e6g af tjenester:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/fa4eb4ba2349b900d5c04238552e5329.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet fors\u00f8ger at opdele applikationer i komponenter\/mikrotjenester, s\u00e5 i det angivne eksempel med en Django-applikation vil vi se to forbindelser til PostgreSQL (<code>defaultdb<\/code> og <code>postgres<\/code>), samt Celery og Redis. Arbejdet med Datadog kr\u00e6ver, at du har en vis viden om MVC-principperne: det er n\u00f8dvendigt at forst\u00e5, hvor brugerens foresp\u00f8rgsler overhovedet kommer ind. Normalt hj\u00e6lper <b>tjenestekort<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/2f5f7c9ce171af671a65fb41401451e5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFor \u00f8vrigt er der noget lignende i New Relic:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/b4e14f15b900f5c19856f1077873c9c0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u2026 jeg synes, kortet er lavet enklere og mere forst\u00e5eligt: det viser ikke komponenterne i \u00e9n applikation (hvilket ville g\u00f8re det for detaljeret som i tilf\u00e6lde af Datadog), men kun specifikke tjenester eller mikrotjenester.<\/p>\n<p>Lad os vende tilbage til Datadog: fra servicekortet kan vi se, at brugerforesp\u00f8rgslerne kommer ind i Django. Lad os g\u00e5 ind i Django-tjenesten og endelig se det, vi forventede:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/fe907532184004ec02238ccd5e7d0ce6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDesv\u00e6rre er der ikke et graf her som standard <b>Webtransaktionstid<\/b>, som ligner det, vi ser p\u00e5 hovedpanelet i New Relic. Men det kan tilpasses i stedet for grafen <b>% af tid brugt<\/b>. Det er bare at skifte til <b>Gns. tid pr. anmodning efter type<\/b>\u2026 og nu ser vi allerede den velkendte graf!<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/4576b27658d257fa5b062ffc7bb5464a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHvorfor Datadog valgte en anden graf \u2014 er et mysterium for os. Det var ogs\u00e5 skuffende, at systemet ikke husker brugerens valg (i mods\u00e6tning til begge konkurrenter), og derfor redder kun oprettelsen af brugerdefinerede panelet.<\/p>\n<p>Men vi blev glade for muligheden i Datadog for at skifte fra disse grafer til metrikker for relaterede servere, l\u00e6se logs og vurdere belastningen p\u00e5 webserverens behandlere (Gunicorn). Det er n\u00e6sten som i New Relic\u2026 og endda lidt mere (logs)!<\/p>\n<p>Under grafen findes transaktioner, der er fuldst\u00e6ndig analoge til New Relic:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/3ab831fce57abe39e27bea12b6eb0f67.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nI Datadog kaldes transaktioner <b>ressourcer<\/b>. Kontrollerne kan sorteres efter antal foresp\u00f8rgsler, gennemsnitlig svartid, maksimalt brugt tid i den valgte periode. <\/p>\n<p>En ressource kan udvides og vise alt det, vi allerede har observeret i New Relic:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/8005dfb15d878c6025d745982114cc02.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDer er b\u00e5de statistik over ressourcen, en sammenfattet liste over interne opkald og eksempler p\u00e5 anmodninger, som kan sorteres efter svarkode\u2026 For \u00f8vrigt fandt vores ingeni\u00f8rer denne sortering meget tilfredsstillende.<\/p>\n<p>Enhver eksempelressource i Datadog kan \u00e5bnes og studeres:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/0e98c9c3924bd248d048b8587f19f922.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDer pr\u00e6senteres anmodningsparametre, et opsummeringsdiagram over den tid brugt p\u00e5 hver af komponenterne og et waterfall-diagram, hvor sekvensen af opkald ses. Derudover er der mulighed for at skifte til en tr\u00e6struktur-visualisering af waterfall-diagrammet:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/c1d12e79d5c170bb88d9261267756fb8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOg det mest interessante \u2014 visningen af belastningen p\u00e5 v\u00e6rten, hvor anmodningen blev udf\u00f8rt, og visningen af anmodningsloggen. <\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/849a299b05596eb6ba4906c7f3851de0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFremragende integration!<\/p>\n<p>Der kan opst\u00e5 sp\u00f8rgsm\u00e5l om, hvor fanerne <b>Databases<\/b> og <b>External Services<\/b>, som i New Relic. Her er de ikke: da Datadog opdeler applikationen i komponenter, vil PostgreSQL blive betragtet som <b>en separat tjeneste<\/b>, og i stedet for Eksterne tjenester skal der s\u00f8ges efter <code>aws.storage<\/code> (det samme g\u00e6lder for enhver anden ekstern service, som applikationen m\u00e5tte tilg\u00e5).<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/7a2585778478cdd7abab2e31c1858e68.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHer er et eksempel med <code>postgres<\/code>:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/76710537a8c7f436d207ef52efb50214.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nI princippet er der alt det, vi \u00f8nskede:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/152e882d964bd5c77aef69f9c140f350.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet er tydeligt, hvilken \u00abservice\u00bb anmodningen kom fra. <\/p>\n<p>Det skal n\u00e6vnes, at Datadog integreres fremragende med NGINX Ingress og muligg\u00f8r end-to-end tracing fra anmodningens ankomst til klyngen, samt modtagelse af statsd-metrics, indsamling af logs og host metrics.<\/p>\n<p>En stor fordel ved Datadog er, at prisen <i>best\u00e5r<\/i> af infrastrukturmonitorering, APM, logstyring og syntetiske tests, dvs. man kan fleksibelt v\u00e6lge en plan.<\/p>\n<h3>2. Atatus<\/h3>\n<p>\nAtatus-teamet h\u00e6vder, at deres service er \u00abligesom New Relic, men bedre\u00bb. Lad os se, om det virkelig er tilf\u00e6ldet.<\/p>\n<p>Oversigtspanelet ser virkelig ens ud, men det var ikke muligt at identificere, hvilken Redis og memcached der anvendes i applikationen.<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/1b2271bf779f93d4696b8f5fb90c548b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAPM v\u00e6lger som standard alle transaktioner, selvom man som regel kun har brug for Web. Som i Datadog er der ikke mulighed for at g\u00e5 til den \u00f8nskede service fra hovedpanelet. Desuden vises transaktioner i listen efter fejl, hvilket ikke virker s\u00e6rlig logisk for APM.<\/p>\n<p>I transaktionerne ligner Atatus meget New Relic. Ulempen er, at man ikke straks kan se dynamikken for hver controller. Denne skal findes i controller-tabellen, sorteret efter <b>Most Time Consumed<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/57a1640dc1c99732e5d008051ea08f4a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDen velkendte liste over controllere er tilg\u00e6ngelig under fanen <b>Explore<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/9f77e8af1b19460a490f6d57f57c7902.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDenne tabel minder faktisk om Datadog og er mere tiltalende end den tilsvarende i New Relic.<\/p>\n<p>Hver transaktion kan udvides for at se, hvad applikationen har foretaget sig:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/7a74af09bc90449557a797b7898aa827.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPanelet minder ogs\u00e5 mere om Datadog: der er antal anmodninger, et overblik over kald. Den \u00f8verste panel tilbyder en fane med fejl <b>HTTP Failures<\/b> og eksempler p\u00e5 langsomme anmodninger <b>Session Traces<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/d528b528b14e3e0ba0550296a07d27db.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHvis man g\u00e5r ind i en transaktion, vises et eksempel p\u00e5 tracing, man kan f\u00e5 en liste over databaseanmodninger og se anmodningsoverskrifterne. Alt er ligesom New Relic:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/297cee55b9b32383c607eb6860ffe20e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nGenerelt har Atatus imponeret med detaljerede traces \u2014 uden de typiske sammenslutninger af kald i reminder-blokken som i New Relic:<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/eb40bb051d7a5435072b96cd659bfebf.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/0232a197ee2d28489fcf86c4921f7080.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMen her mangler en filter, der (som i New Relic) udelukker super hurtige anmodninger (&lt;5ms). P\u00e5 den anden side var visningen af den endelige respons p\u00e5 transaktionen (succes eller fejl) tilfredsstillende.<\/p>\n<p>Panel <b>Databases<\/b> vil hj\u00e6lpe med at unders\u00f8ge anmodninger til de eksterne databaser, som applikationen foretager. Jeg vil minde om, at Atatus kun fandt PostgreSQL og MySQL, selvom der ogs\u00e5 anvendes Redis og memcached i projektet.<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/01bd3b1f4e5f25bb86e9aa79a22588c0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAnmodninger sorteres efter kendte kriterier: hyppighed af udl\u00f8sning, gennemsnitlig svartid osv. Is\u00e6r vil jeg understrege fanen med de langsomste anmodninger - det er meget praktisk. Desuden stemmer dataene i denne fane for PostgreSQL overens med dataene fra udvidelsen. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/11\/pgstatstatements.html\">pg_stat_statements<\/a><\/noindex> \u2014 et fantastisk resultat!<\/p>\n<p><img decoding=\"async\" alt=\"Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/128b3eb7ac1e636e47d4a66a292ca872.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFanen <b>Eksterne anmodninger<\/b> er fuldst\u00e6ndig identisk med Databaser.<\/p>\n<h2>Konklusioner<\/h2>\n<p>\nBegge pr\u00e6senterede v\u00e6rkt\u00f8jer har gjort det godt som APM. Enhver af dem kan tilbyde det n\u00f8dvendige minimum. Kort opsummeret vores indtryk kan s\u00e5ldes:<\/p>\n<h3>Datadog<\/h3>\n<p>\nFordele:<\/p>\n<ul>\n<li> praktisk prisstruktur (APM koster 31 USD pr. host);<\/li>\n<li> har fungeret fremragende med Python;<\/li>\n<li> mulighed for integration med OpenTracing<\/li>\n<li> integration med Kubernetes;<\/li>\n<li> integration med NGINX Ingress.<\/li>\n<\/ul>\n<p>\nUlemper:<\/p>\n<ul>\n<li> den eneste APM, der for\u00e5rsagede utilg\u00e6ngelighed af applikationen p\u00e5 grund af en modulfri (predis);<\/li>\n<li> svag automatisk instrumentering af PHP;<\/li>\n<li> delvist underlig definition af tjenester og deres form\u00e5l.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Atatus<\/h3>\n<p>\nFordele:<\/p>\n<ul>\n<li> dyb instrumentering af PHP;<\/li>\n<li> ligner New Relic i brugergr\u00e6nsefladen.<\/li>\n<\/ul>\n<p>\nUlemper:<\/p>\n<ul>\n<li> fungerer ikke p\u00e5 \u00e6ldre operativsystemer (Ubuntu 12.05, CentOS 5);<\/li>\n<li> svag automatisk instrumentering;<\/li>\n<li> underst\u00f8tter kun to programmeringssprog (Node.js og PHP);<\/li>\n<li> langsom betjening af gr\u00e6nsefladen.<\/li>\n<\/ul>\n<p>\nI betragtning af prisen for Atatus p\u00e5 69 USD om m\u00e5neden pr. server, ville vi hellere bruge Datadog, som integreres perfekt til vores behov (webapplikationer i K8s) og har mange nyttige funktioner.<\/p>\n<h2>P.S.<\/h2>\n<p>\nL\u00e6s ogs\u00e5 p\u00e5 vores blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/462707\/\">V\u00e6rkt\u00f8jer til udviklere af applikationer, der k\u00f8res i Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/436112\/\">Kubectl-debug-plugin til debugging i Kubernetes-pods<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/424531\/\">Mikrotjenester: St\u00f8rrelse betyder noget, selvom du har Kubernetes<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Kilde: <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.3 - 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\/da\/blog\/administrirovanie\/ne-new-relic-om-odnim-vzglyad-na-datadog-i-atatus\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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\udd47Ikke kun New Relic: et blik p\u00e5 Datadog og Atatus | ProHoster","description":"I SRE-\/DevOps-ingeni\u00f8rmilj\u00f8et er der ikke nogen.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/ne-new-relic-om-odnim-vzglyad-na-datadog-i-atatus","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/37901","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=37901"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/37901\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/28443"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=37901"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=37901"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=37901"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}