НС New Relic’ом ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

Π’ срСдС SRE-/DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅ ΡƒΠ΄ΠΈΠ²ΠΈΡˆΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹ появляСтся ΠΊΠ»ΠΈΠ΅Π½Ρ‚ (ΠΈΠ»ΠΈ систСма ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°) ΠΈ сообщаСт, Ρ‡Ρ‚ΠΎ «всё ΠΏΡ€ΠΎΠΏΠ°Π»ΠΎΒ»: сайт Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΎΠΏΠ»Π°Ρ‚Ρ‹ Π½Π΅ проходят, Тизнь β€” тлСн… Как Π±Ρ‹ Π½ΠΈ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π² Ρ‚Π°ΠΊΠΎΠΉ ситуации, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π±Π΅Π· простого ΠΈ понятного инструмСнта Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ слоТно. Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° скрыта Π² ΠΊΠΎΠ΄Π΅ самого прилоТСния β€” Π½ΡƒΠΆΠ½ΠΎ лишь Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘.

И Π² Π³ΠΎΡ€Π΅, ΠΈ Π² радости…

Π’Π°ΠΊ слоТилось, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠΆΠ΅ вСсьма Π΄Π°Π²Π½ΠΎ ΠΈ сильно полюбили New Relic. Он Π±Ρ‹Π» ΠΈ остаётся ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ срСдством для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ прилоТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ своСго Π°Π³Π΅Π½Ρ‚Π°) ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅-ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. И всё ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ссли Π±Ρ‹ Π½Π΅ измСнСния Π² Ρ†Π΅Π½ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ΅ сСрвиса: Π΅Π³ΠΎ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ с 2013 Π³ΠΎΠ΄Π° выросла Π² 3+ Ρ€Π°Π·Π°. Π’Π΄ΠΎΠ±Π°Π²ΠΎΠΊ, с ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π° для получСния trial-Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π° трСбуСтся ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ с ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ, Ρ‡Ρ‚ΠΎ затрудняСт ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΡƒ.

ΠžΠ±Ρ‹Ρ‡Π½Π°Ρ ситуация: New Relic Π½Π΅ Π½ΡƒΠΆΠ΅Π½ Π½Π° «постоянной основС», ΠΎ Π½Ρ‘ΠΌ Π²ΡΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° Π½Π°Ρ‡Π°Π»ΠΈΡΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Но ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ-Ρ‚ΠΎ всё Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ рСгулярно (ΠΏΠΎ 140 USD Π·Π° сСрвСр Π·Π° мСсяц), Π° Π² автоматичСски ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉΡΡ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ инфраструктурС суммы Π½Π°Π±Π΅Π³Π°ΡŽΡ‚ нСмалСнькиС. Π₯отя ΠΈ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Β«Pay-As-You-GoΒ», Π½ΠΎ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ New Relic потрСбуСтся ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Ρ‚ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠΉ ситуации, Ρ€Π°Π΄ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ всё Π·Π°Ρ‚Π΅Π²Π°Π»ΠΎΡΡŒ. НС Ρ‚Π°ΠΊ Π΄Π°Π²Π½ΠΎ New Relic Π²Π½Π΅Π΄Ρ€ΠΈΠ» Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚Π°Ρ€ΠΈΡ„Π½Ρ‹ΠΉ ΠΏΠ»Π°Π½ β€” Essentials, β€” ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд выглядит Ρ€Π°Π·ΡƒΠΌΠ½ΠΎΠΉ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ Professional… Π½ΠΎ ΠΏΡ€ΠΈ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠΌ рассмотрСнии оказалось, Ρ‡Ρ‚ΠΎ Ρ‡Π°ΡΡ‚ΡŒ Π²Π°ΠΆΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ отсутствуСт (Π² частности, Π² Π½Ρ‘ΠΌ Π½Π΅Ρ‚ Key Transactions, Cross Application Tracing, Distributed Tracing).

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΡ‹ Π·Π°Π΄ΡƒΠΌΠ°Π»ΠΈΡΡŒ ΠΎ поискС Π±ΠΎΠ»Π΅Π΅ дСшСвой Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹, ΠΈ наш Π²Ρ‹Π±ΠΎΡ€ ΠΏΠ°Π» Π½Π° Π΄Π²Π° сСрвиса Datadog ΠΈ Atatus. ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° Π½ΠΈΡ…?

О ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π°Ρ…

Π‘Ρ€Π°Π·Ρƒ ΠΎΠ³ΠΎΠ²ΠΎΡ€ΡŽΡΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. ΠœΡ‹ Π΄Π°ΠΆΠ΅ рассматривали Open Source-Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹, Π½ΠΎ Π½Π΅ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π΅ΡΡ‚ΡŒ свободныС мощности для размСщСния Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ self-hosted… β€” Π²Π΄ΠΎΠ±Π°Π²ΠΎΠΊ, ΠΎΠ½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ обслуТивания. Выбранная Π½Π°ΠΌΠΈ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° оказалась Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΠΎΠΉ ΠΊ нашим потрСбностям:

  • встроСнная ΠΈ развитая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° PHP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (стСк Ρƒ Π½Π°ΡˆΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π΅Π½, Π½ΠΎ это явный Π»ΠΈΠ΄Π΅Ρ€ Π² контСкстС поиска Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ New Relic);
  • доступная ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ (ΠΌΠ΅Π½Π΅Π΅ 100 USD Π² мСсяц Π·Π° хост);
  • автоматичСская инструмСнтация;
  • интСграция с Kubernetes;
  • сходство с интСрфСйсом New Relic β€” Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΉ плюс (ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ наши ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ ΠΊ Π½Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ).

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π° этапС ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΎΡ‚Π±ΠΎΡ€Π° ΠΌΡ‹ отсСяли нСсколько Π΄Ρ€ΡƒΠ³ΠΈΡ… популярных Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, Π° Π² частности:

  • Tideways, AppDynamics ΠΈ Dynatrace β€” Π·Π° ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ;
  • Stackify β€” Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ Π² Π Π€ ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ слишком ΠΌΠ°Π»ΠΎ Π΄Π°Π½Π½Ρ‹Ρ….

Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ построСна Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сначала Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΎ прСдставлСны рассматриваСмыС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, послС Ρ‡Π΅Π³ΠΎ я расскаТу ΠΎ нашСм Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠΌ взаимодСйствии с New Relic ΠΈ ΠΎΠΏΡ‹Ρ‚Π΅/впСчатлСниях ΠΎΡ‚ выполнСния Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… сСрвисах.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΎΠ²

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus
ΠŸΡ€ΠΎ New Relic, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, ΡΠ»Ρ‹ΡˆΠ°Π» ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ? Π­Ρ‚ΠΎΡ‚ сСрвис Π½Π°Ρ‡Π°Π» своё Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ 10 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄, Π² 2008-ΠΌ Π³ΠΎΠ΄Ρƒ. ΠœΡ‹ ΠΈΠΌ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΈΠΌ с 2012 Π³ΠΎΠ΄Π° ΠΈ Π½Π΅ испытывали ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ-настоящСму большого числа ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° языках PHP, Ruby ΠΈ Python, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρƒ нас Π±Ρ‹Π» ΠΎΠΏΡ‹Ρ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с C# ΠΈ Go. Π£ Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² сСрвиса Π΅ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° прилоТСния, инфраструктуры, трассировки микросСрвисных инфраструктур, созданы ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ прилоТСния для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… устройств ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

Однако Π°Π³Π΅Π½Ρ‚ New Relic Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌ, Π² Π½Ρ‘ΠΌ Π½Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ OpenTracing. Для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ инструмСнтации трСбуСтся Π²Π½ΠΎΡΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΊΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для New Relic. НаконСц, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Kubernetes ΠΏΠΎΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ статус.

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus
ΠΠ°Ρ‡Π°Π²ΡˆΠΈΠΉ своё Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π² 2010 Π³ΠΎΠ΄Ρƒ Datadog смотрится Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ интСрСснСС New Relic ΠΊΠ°ΠΊ Ρ€Π°Π· Π² ΠΏΠ»Π°Π½Π΅ примСнСния Π² Kubernetes-окруТСниях. Π’ частности, ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с NGINX Ingress, сбор Π»ΠΎΠ³ΠΎΠ², ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ statsd ΠΈ OpenTracing, Ρ‡Ρ‚ΠΎ позволяСт ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ запрос с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΠΉΡ‚ΠΈ Π»ΠΎΠ³ΠΈ ΠΏΠΎ этому запросу (ΠΊΠ°ΠΊ Π½Π° сторонС Π²Π΅Π±-сСрвСра, Ρ‚Π°ΠΊ ΠΈ Π½Π° сторонС consumer’ов).

ΠŸΡ€ΠΈ использовании Datadog ΠΌΡ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅Π²Π΅Ρ€Π½ΠΎ строил ΠΊΠ°Ρ€Ρ‚Ρƒ микросСрвисов, ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ тСхничСскими нСдостатками. НапримСр, ΠΎΠ½ Π½Π΅Π²Π΅Ρ€Π½ΠΎ опрСдСлял Ρ‚ΠΈΠΏ сСрвиса (воспринял Django Π·Π° сСрвис ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ) ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π» 500-Π΅ ошибки Π² PHP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Predis.

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus
Atatus β€” самый ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ инструмСнт; сСрвис Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π² 2014 Π³ΠΎΠ΄Ρƒ. Π•Π³ΠΎ ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³ΠΎΠ²Ρ‹ΠΉ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚ явно уступаСт пСрСчислСнным ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π°ΠΌ, упоминания Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΆΠ΅. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, сам ΠΏΠΎ сСбС инструмСнт ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° New Relic, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² возмоТностях (APM, Browser monitoring ΠΈ Ρ‚.ΠΏ.), Π½ΠΎ ΠΈ Π²ΠΎ внСшнСм Π²ΠΈΠ΄Π΅.

Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΆΠ΅ нСдостатком являСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° лишь Node.js ΠΈ PHP. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΎΠ½Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ Ρƒ Datadog. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ послСднСго, Atatus Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΎΠΊ ΠΈ выставлСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠΊ Π² ΠΊΠΎΠ΄Π΅.

Как ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с New Relic

Π’Π΅ΠΏΠ΅Ρ€ΡŒ разбСрёмся Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ New Relic. Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π°Ρ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

На Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ всплСск β€” ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Π³ΠΎ. Π’ New Relic для Π²Π΅Π±-прилоТСния сразу Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ Π²Π΅Π±-Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Π² Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΠ°Π½Π΅Π»ΠΈ error-rate, request-rate… Π§Ρ‚ΠΎ Π³Π»Π°Π²Π½ΠΎΠ΅ β€” прямо ΠΈΠ· этих ΠΏΠ°Π½Π΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ частями прилоТСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ»ΠΈΠΊ Π½Π° MySQL ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ Π² Ρ€Π°Π·Π΄Π΅Π» Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…).

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² рассматриваСмом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ всплСск активности PHP, Π½Π°ΠΆΠΌΡ‘ΠΌ Π½Π° этот Π³Ρ€Π°Ρ„ΠΈΠΊ ΠΈ автоматичСски ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π² Transactions:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

Бписок Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎ сути ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ ΠΈΠ· ΠΌΠΎΠ΄Π΅Π»ΠΈ MVC, ΡƒΠΆΠ΅ отсортирован ΠΏΠΎ Most time consuming, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ: ΠΌΡ‹ сразу Π²ΠΈΠ΄ΠΈΠΌ Ρ‚ΠΎ, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ занимаСтся. Π—Π΄Π΅ΡΡŒ ΠΆΠ΅ Π² Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π΄ΠΎΠ»Π³ΠΈΡ… запросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ автоматичСски ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ New Relic’ом. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ сортировку, Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡ‚ΠΈ:

  • самый Π½Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ прилоТСния;
  • самый часто Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€;
  • самый ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ².

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Π΅ΠΌ ΠΆΠ΅ занималось ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ исполнСния ΠΊΠΎΠ΄Π°:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

НаконСц, Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ трСйсов Π΄ΠΎΠ»Π³ΠΈΡ… запросов (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ 2 сСкунд). Π’ΠΎΡ‚ панСль для Π΄ΠΎΠ»Π³ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π° вмСстС с этим показываСтся ΠΈ врСмя, ΠΊΠΎΠ³Π΄Π° Π±Ρ‹Π» исполнСн запрос, Π΅Π³ΠΎ URI ΠΈ Π΄ΠΎΠΌΠ΅Π½. ΠžΡ‡Π΅Π½ΡŒ часто это ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ запрос Π² Π»ΠΎΠ³Π°Ρ…. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Ρ Π² Trace details, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΎΡ‚ΠΊΡƒΠ΄Π° Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

А Π² Database queries β€” ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ запросы ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ исполнялись Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

Π’ΠΎΠΎΡ€ΡƒΠΆΠΈΠ²ΡˆΠΈΡΡŒ этими знаниями, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ замСдлСния прилоТСния ΠΈ вмСстС с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ Π²Ρ‹Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ New Relic Π½Π΅ всСгда Π΄Π°Ρ‘Ρ‚ Ρ‡Ρ‘Ρ‚ΠΊΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€ расслСдования:

  • Π΄ΠΎΠ»Π³ΠΈΠΉ PDO::Construct ΠΏΡ€ΠΈΠ²Π΅Π» нас ΠΊ странному Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ pgpoll;
  • Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Memcache::Get подсказала ΠΎ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ настройкС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹;
  • ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Ρ€ΠΎΡΡˆΠ΅Π΅ врСмя Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ шаблона ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌΡƒ Ρ†ΠΈΠΊΠ»Ρƒ с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ наличия Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ 500 Π°Π²Π°Ρ‚Π°Ρ€ΠΎΠΊ;
  • ΠΈ Ρ‚Π°ΠΊ далСС…

Π•Ρ‰Ρ‘ Π±Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ вмСсто исполнСния ΠΊΠΎΠ΄Π° Π½Π° основном экранС растёт Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ связанноС с внСшним Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… β€” ΠΈ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚: Redis ΠΈΠ»ΠΈ PostgreSQL, β€” всС ΠΎΠ½ΠΈ прячутся Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Databases.

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

МоТно Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π±Π°Π·Ρƒ для исслСдования ΠΈ провСсти сортировку запросов β€” Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ это дСлаСтся Π² Transactions. А пСрСйдя Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ запроса, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, сколько этот запрос встрСчаСтся Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² прилоТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ часто ΠΎΠ½ вызываСтся. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

АналогичныС Π΄Π°Π½Π½Ρ‹Π΅ содСрТит Π²ΠΊΠ»Π°Π΄ΠΊΠ° External Services, которая скрываСт Π² сСбС запросы ΠΊ внСшним HTTP-сСрвисам, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΌΡƒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Ρƒ, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° событий Π² sentry ΠΈΠ»ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅. По своСму наполнСнию Π²ΠΊΠ»Π°Π΄ΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° Databases:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

ΠšΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Ρ‹: возмоТности ΠΈ впСчатлСния

Π’Π΅ΠΏΠ΅Ρ€ΡŒ самоС интСрСсноС β€” сравним возмоТности New Relic с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Ρ‹. К соТалСнию, Π½Π°ΠΌ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ всС Ρ‚Ρ€ΠΈ инструмСнта Π½Π° ΠΎΠ΄Π½ΠΎΠΉ вСрсии ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ Π² production прилоТСния. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΌΡ‹ ΠΏΠΎΡΡ‚Π°Ρ€Π°Π»ΠΈΡΡŒ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ максимально ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹Π΅ ситуации/ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

1. Datadog

Datadog встрСчаСт нас панСлью со стСной сСрвисов:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

Он пытаСтся Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ прилоТСния Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹/микросСрвисы, поэтому Ρƒ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Django-прилоТСния ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ 2 ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ PostgreSQL (defaultdb ΠΈ postgres), Π° Ρ‚Π°ΠΊΠΆΠ΅ Celery, Redis. Π Π°Π±ΠΎΡ‚Π° с Datadog Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ вас ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Π½ΠΈΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² MVC: Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΊΡƒΠ΄Π° Π²ΠΎΠΎΠ±Ρ‰Π΅ приходят запросы ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π² этом ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΊΠ°Ρ€Ρ‚Π° сСрвисов:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

ΠšΡΡ‚Π°Ρ‚ΠΈ, Π½Π΅Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅ Π΅ΡΡ‚ΡŒ ΠΈ Π² New Relic:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

… ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΈΡ… ΠΊΠ°Ρ€Ρ‚Π°, Π½Π° ΠΌΠΎΠΉ взгляд, сдСлана ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ понятнСС: ΠΎΠ½Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ прилоТСния (Ρ‡Ρ‚ΠΎ сдСлало Π±Ρ‹ Π΅Ρ‘ излишнС ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ, ΠΊΠ°ΠΊ Π² случаС Datadog), Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ сСрвисы ΠΈΠ»ΠΈ микросСрвисы.

ВСрнСмся ΠΊ Datadog: ΠΈΠ· ΠΊΠ°Ρ€Ρ‚Ρ‹ сСрвисов Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ запросы ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ приходят Π² Django. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘ΠΌ Π² сСрвис Django ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ†-Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

К соТалСнию, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚ΡƒΡ‚ Π½Π΅Ρ‚ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Web transaction time, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄ΠΈΠΌ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ New Relic. Однако Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½Π° мСстС Π³Ρ€Π°Ρ„ΠΈΠΊΠ° % of Time spent. Достаточно ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Avg time per request by Type… ΠΈ Π²ΠΎΡ‚ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊ смотрит Π½Π° нас!

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π² Datadog ΠΎΡ‚Π΄Π°Π»ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ β€” для нас Π·Π°Π³Π°Π΄ΠΊΠ°. Расстроило Π΅Ρ‰Ρ‘ ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ систСма Π½Π΅ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠ±ΠΎΠΈΡ… ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΎΠ²), Π° посСму β€” спасаСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ созданиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΏΠ°Π½Π΅Π»Π΅ΠΉ.

Π—Π°Ρ‚ΠΎ ΠΏΠΎΡ€Π°Π΄ΠΎΠ²Π°Π»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π² Datadog ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ с этих Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ связанных сСрвСров, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈ ΠΈ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π²Π΅Π±-сСрвСра (Gunicorn). Всё ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΊΠ°ΠΊ Π² New Relic… ΠΈ Π΄Π°ΠΆΠ΅ нСсколько большС (Π»ΠΎΠ³ΠΈ)!

НиТС Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ New Relic:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

Π’ Datadog Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ рСсурсами. МоТно ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ ΠΏΠΎ количСству запросов, ΠΏΠΎ срСднСму Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π°, ΠΏΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π° Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

РСсурс ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ всё Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠΆΠ΅ наблюдали Π² New Relic:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

Π’ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΈ статистика ΠΏΠΎ рСсурсу, ΠΈ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹ΠΉ список Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ запросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΠΊΠΎΠ΄Ρƒ отвСта… К слову, эта сортировка ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ нашим ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌ.

Π›ΡŽΠ±ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ рСсурса Π² Datadog ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Ρ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запроса, сводная Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎ Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°-Π²ΠΎΠ΄ΠΎΠΏΠ°Π΄, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²ΠΈΠ΄Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ². А Ρ‚Π°ΠΊΠΆΠ΅ доступно ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½Ρ‹ΠΉ Π²ΠΈΠ΄ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹-Π²ΠΎΠ΄ΠΎΠΏΠ°Π΄Π°:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

И самоС интСрСсноС β€” просмотр Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ хоста, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π» исполнСн запрос, ΠΈ просмотр Π»ΠΎΠ³ΠΎΠ² запроса.

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

ΠžΡ‚Π»ΠΈΡ‡Π½Π°Ρ интСграция!

ΠœΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ вопрос, Π³Π΄Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Databases ΠΈ External Services, ΠΊΠ°ΠΊ Π² New Relic. Π—Π΄Π΅ΡΡŒ ΠΈΡ… Π½Π΅Ρ‚: ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Datadog Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, PostgreSQL Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ сСрвисом, Π° вмСсто External Services стоит ΠΈΡΠΊΠ°Ρ‚ΡŒ aws.storage (Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ внСшнСго сСрвиса, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅).

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

А Π²ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с postgres:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

По сути Π΅ΡΡ‚ΡŒ всё Ρ‚ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

Π’ΠΈΠ΄Π½ΠΎ, ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ «сСрвиса» ΠΏΡ€ΠΈΡˆΠ΅Π» запрос.

НС Π±ΡƒΠ΄Π΅Ρ‚ лишним Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Datadog ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ интСгрируСтся с NGINX Ingress ΠΈ позволяСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΡΠΊΠ²ΠΎΠ·Π½ΡƒΡŽ трассировку с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° поступлСния запроса Π² кластСр, Π° Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ statsd, ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈ ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ хостов.

ΠžΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ плюс Datadog Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Ρ†Π΅Π½Π° складываСтся ΠΈΠ· ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° инфраструктуры, APM, Log Management ΠΈ Synthetics test, Ρ‚.Π΅. ΠΌΠΎΠΆΠ½ΠΎ Π³ΠΈΠ±ΠΊΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΠ»Π°Π½.

2. Atatus

Команда Ататус ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈΡ… сСрвис β€” Β«Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ New Relic, Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅Β». ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, Ρ‚Π°ΠΊ Π»ΠΈ это Π½Π° самом Π΄Π΅Π»Π΅.

Заглавная панСль Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ выглядит Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ, Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Redis ΠΈ memcached Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ.

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

APM ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ всС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, хотя, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½ΡƒΠΆΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Web. Как ΠΈ Π² Datadog, Π½Π΅Ρ‚ возмоТности ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π½ΡƒΠΆΠ½Ρ‹ΠΉ сСрвис ΠΈΠ· основной ΠΏΠ°Π½Π΅Π»ΠΈ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ находятся Π² спискС послС ошибок, Ρ‡Ρ‚ΠΎ для APM выглядит Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ.

Π’ транзакциях Ρƒ Atatus всё максимально ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° New Relic. ΠœΠΈΠ½ΡƒΡ β€” сразу Π½Π΅ Π²ΠΈΠ΄Π½ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². Π•Ρ‘ приходится ΠΈΡΠΊΠ°Ρ‚ΡŒ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ², сортируя ΠΏΠΎ Most Time Consumed:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

ΠŸΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΉ Π½Π°ΠΌ список ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² доступСн Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Explore:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

Π§Π΅ΠΌ-Ρ‚ΠΎ данная Ρ‚Π°Π±Π»ΠΈΡ†Π° Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Datadog ΠΈ нравится большС Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΉ Π² New Relic.

ΠšΠ°ΠΆΠ΄ΡƒΡŽ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Π΅ΠΌ занималось ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

ПанСль Ρ‚ΠΎΠΆΠ΅ скорСС Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Datadog: Π΅ΡΡ‚ΡŒ количСство запросов, общая ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π° Π²Ρ‹Π·ΠΎΠ²ΠΎΠ². ВСрхняя панСль прСдоставляСт Π²ΠΊΠ»Π°Π΄ΠΊΡƒ с ошибками HTTP Failures ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Ρ… запросов Session Traces:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

Если ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ, Π²ΠΈΠ΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ трСйса, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список запросов ΠΊ Π±Π°Π·Π΅ ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ запроса. Всё Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ New Relic:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

Π’ΠΎΠΎΠ±Ρ‰Π΅, Atatus ΠΏΠΎΡ€Π°Π΄ΠΎΠ²Π°Π» ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌΠΈ трСйсами β€” Π±Π΅Π· Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… для New Relic склСиваний Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π² reminder-Π±Π»ΠΎΠΊ:

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus
НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

Однако здСсь Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹ (ΠΊΠ°ΠΊ Π² New Relic) отсСкал свСрхбыстрыС запросы (<5мс). Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ (ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΉ ΠΈΠ»ΠΈ ошибка) ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»ΠΎΡΡŒ.

ПанСль Databases ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ запросы ΠΊ внСшним Π±Π°Π·Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Напомню, Atatus нашСл Ρ‚ΠΎΠ»ΡŒΠΊΠΎ PostgreSQL ΠΈ MySQL, хотя Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ задСйствованы Π΅Ρ‰Ρ‘ Redis ΠΈ memcached.

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

Запросы ΡΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΌ критСриям: частота срабатывания, срСднСС врСмя ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ хочСтся ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ с самыми ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌΠΈ запросами β€” это ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π΄Π°Π½Π½Ρ‹Π΅ Π² этой Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ для PostgreSQL совпали с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ pg_stat_statements β€” ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚!

НС New Relic’ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ: взгляд Π½Π° Datadog ΠΈ Atatus

Π’ΠΊΠ»Π°Π΄ΠΊΠ° External Requests ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Π° Databases.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

Оба прСдставлСнных инструмСнта Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ сСбя Π² Ρ€ΠΎΠ»ΠΈ APM. Π›ΡŽΠ±ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ. ΠšΡ€Π°Ρ‚ΠΊΠΎ ΠΎΠ±ΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ наши впСчатлСния ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ:

Datadog

ΠŸΠ»ΡŽΡΡ‹:

  • удобная тарифная сСтка (APM стоит 31 USD Π·Π° хост);
  • ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π» сСбя с Python;
  • Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с OpenTracing
  • интСграция с Kubernetes;
  • интСграция с NGINX Ingress.

ΠœΠΈΠ½ΡƒΡΡ‹:

  • СдинствСнный APM, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π·Π²Π°Π» Π½Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ прилоТСния ΠΈΠ·-Π·Π° ошибки модуля (predis);
  • слабая автоинструмСнтация PHP;
  • отчасти странноС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ сСрвисов ΠΈ ΠΈΡ… назначСния.

Atatus

ΠŸΠ»ΡŽΡΡ‹:

  • глубокая инструмСнтация PHP;
  • cΡ…ΠΎΠΆΠΈΠΉ с New Relic ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс.

ΠœΠΈΠ½ΡƒΡΡ‹:

  • Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° старых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах (Ubuntu 12.05, CentOS 5);
  • слабая автоинструмСнтация;
  • ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° всСго Π΄Π²ΡƒΡ… ЯП (Node.js ΠΈ PHP);
  • мСдлСнная Ρ€Π°Π±ΠΎΡ‚Π° интСрфСйса.

Учитывая Ρ†Π΅Π½Ρƒ Atatus Π² 69 USD Π² мСсяц Π·Π° сСрвСр, ΠΌΡ‹ Π±Ρ‹ скорСС использовали Datadog, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ интСгрируСтся ΠΏΠΎΠ΄ наши потрСбности (Π²Π΅Π±-прилоТСния Π² K8s) ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

P.S.

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π² нашСм Π±Π»ΠΎΠ³Π΅:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ