Datadog a log parsing service
Pro používání Datadog na Heroku je potřeba několik věcí. Za prvé, pro datadog agenta potřebujete custom buildpack, který v kombinaci s vaším buildpackem vám umožní mít vše pohromadě. Pokud to nechcete můžete udělat samostatnou service přes kterou se dají parsovat logy pomocí této knihovny v NodeJS. Pokud chcete do Datadogu zapisovat deploy na Heroku použijte emailový post deploy hook. Aplikaci a její metriky můžete posílat přes Datadog API.
Začátek
Jako první jsem použil výchozí aplikaci od tvůrců a pustil tam jednu malou aplikaci, kde počet req/min dosahoval několika desítek a vše bylo bez problémů.
Tak jsem zapojil produkční aplikace. Počet requestů stoupl na 3000 req/min a aplikace začala mít značné problémy i když běžela na Performace-M dynu.
Řešení
Po diagnostikování těchto problémů jsme se dali do hledání memory leaks v NodeJS aplikaci a současně jsme zkusili tuto malou service přepsat do Go.
Obě řešení zafungovala a za pár hodin práce jsme měli už přijatelné výsledky v NodeJS. Mohli jsme snížit používaná dyna na běžné 1X
a tam provádět další srovnání.
Verze v Go je na tom ještě trochu lépe hlavně s ohledem na stabilitu a pamět. Tuto verzi jsme nechali potom trvale v běhu na nejmenším dynu k dispozici s monitoringem.
Závěr
Pokud vás toto zaujalo pojďte si popovídat o Go na první Go meetup v Praze. Budeme mít lighting talk o tomto příkladu s dalšími detaily a zúčastní se i další firmy, které řeknou o svých zkušenostech. Pokud vás zajímají nějaké detaily o používaní Datadogu na Heroku tak se ozvěte v komentářích.