Π ΡΡΠ΅Π΄Π΅ SRE-/DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ² Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄ΠΈΠ²ΠΈΡΡ, ΡΡΠΎ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ (ΠΈΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°) ΠΈ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ, ΡΡΠΎ Β«Π²ΡΡ ΠΏΡΠΎΠΏΠ°Π»ΠΎΒ»: ΡΠ°ΠΉΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΎΠΏΠ»Π°ΡΡ Π½Π΅ ΠΏΡΠΎΡ
ΠΎΠ΄ΡΡ, ΠΆΠΈΠ·Π½Ρ β ΡΠ»Π΅Π½β¦ ΠΠ°ΠΊ Π±Ρ Π½ΠΈ Ρ
ΠΎΡΠ΅Π»ΠΎΡΡ ΠΏΠΎΠΌΠΎΡΡ Π² ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π±Π΅Π· ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π±ΡΠ²Π°Π΅Ρ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΠ°ΡΠ°ΡΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΊΡΡΡΠ° Π² ΠΊΠΎΠ΄Π΅ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β Π½ΡΠΆΠ½ΠΎ Π»ΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΅Ρ.
Π Π² Π³ΠΎΡΠ΅, ΠΈ Π² ΡΠ°Π΄ΠΎΡΡΠΈβ¦
Π’Π°ΠΊ ΡΠ»ΠΎΠΆΠΈΠ»ΠΎΡΡ, ΡΡΠΎ ΠΌΡ ΡΠΆΠ΅ Π²Π΅ΡΡΠΌΠ° Π΄Π°Π²Π½ΠΎ ΠΈ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ»ΡΠ±ΠΈΠ»ΠΈ New Relic. ΠΠ½ Π±ΡΠ» ΠΈ ΠΎΡΡΠ°ΡΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ (Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ Π°Π³Π΅Π½ΡΠ°) ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅-ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. Π Π²ΡΡ ΠΌΠΎΠ³Π»ΠΎ Π±ΡΡΡ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΅Π½ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠ°: Π΅Π³ΠΎ ΡΡΠΎΠΈΠΌΠΎΡΡΡ
ΠΠ±ΡΡΠ½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ: New Relic Π½Π΅ Π½ΡΠΆΠ΅Π½ Π½Π° Β«ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Π΅Β», ΠΎ Π½ΡΠΌ Π²ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΡΠ°Π»ΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠΎ ΠΏΠ»Π°ΡΠΈΡΡ-ΡΠΎ Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ (ΠΏΠΎ 140 USD Π·Π° ΡΠ΅ΡΠ²Π΅Ρ Π·Π° ΠΌΠ΅ΡΡΡ), Π° Π² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΡΡΠ΅ΠΉΡΡ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅ ΡΡΠΌΠΌΡ Π½Π°Π±Π΅Π³Π°ΡΡ Π½Π΅ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠ΅. Π₯ΠΎΡΡ ΠΈ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Β«Pay-As-You-GoΒ», Π½ΠΎ Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ New Relic ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ ΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΡΠ°Π΄ΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΡ Π·Π°ΡΠ΅Π²Π°Π»ΠΎΡΡ. ΠΠ΅ ΡΠ°ΠΊ Π΄Π°Π²Π½ΠΎ New Relic Π²Π½Π΅Π΄ΡΠΈΠ» Π½ΠΎΠ²ΡΠΉ ΡΠ°ΡΠΈΡΠ½ΡΠΉ ΠΏΠ»Π°Π½ β
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΡ Π·Π°Π΄ΡΠΌΠ°Π»ΠΈΡΡ ΠΎ ΠΏΠΎΠΈΡΠΊΠ΅ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ΅Π²ΠΎΠΉ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ, ΠΈ Π½Π°Ρ Π²ΡΠ±ΠΎΡ ΠΏΠ°Π» Π½Π° Π΄Π²Π° ΡΠ΅ΡΠ²ΠΈΡΠ° Datadog ΠΈ Atatus. ΠΠΎΡΠ΅ΠΌΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° Π½ΠΈΡ ?
Π ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ°Ρ
Π‘ΡΠ°Π·Ρ ΠΎΠ³ΠΎΠ²ΠΎΡΡΡΡ, ΡΡΠΎ Π½Π° ΡΡΠ½ΠΊΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΡ Π΄Π°ΠΆΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ Open Source-Π²Π°ΡΠΈΠ°Π½ΡΡ, Π½ΠΎ Π½Π΅ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π΅ΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠ΅ ΠΌΠΎΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ self-hostedβ¦ β Π²Π΄ΠΎΠ±Π°Π²ΠΎΠΊ, ΠΎΠ½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ. ΠΡΠ±ΡΠ°Π½Π½Π°Ρ Π½Π°ΠΌΠΈ ΠΏΠ°ΡΠΎΡΠΊΠ° ΠΎΠΊΠ°Π·Π°Π»Π°ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΠΎΠΉ ΠΊ Π½Π°ΡΠΈΠΌ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌ:
- Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΠΈ ΡΠ°Π·Π²ΠΈΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° PHP-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ΡΡΠ΅ΠΊ Ρ Π½Π°ΡΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΎΡΠ΅Π½Ρ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π΅Π½, Π½ΠΎ ΡΡΠΎ ΡΠ²Π½ΡΠΉ Π»ΠΈΠ΄Π΅Ρ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΏΠΎΠΈΡΠΊΠ° Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ New Relic);
- Π΄ΠΎΡΡΡΠΏΠ½Π°Ρ ΡΡΠΎΠΈΠΌΠΎΡΡΡ (ΠΌΠ΅Π½Π΅Π΅ 100 USD Π² ΠΌΠ΅ΡΡΡ Π·Π° Ρ ΠΎΡΡ);
- Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ;
- ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Kubernetes;
- ΡΡ ΠΎΠ΄ΡΡΠ²ΠΎ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ New Relic β Π·Π°ΠΌΠ΅ΡΠ½ΡΠΉ ΠΏΠ»ΡΡ (ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π°ΡΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ ΠΊ Π½Π΅ΠΌΡ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ).
ΠΠΎΡΡΠΎΠΌΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠ±ΠΎΡΠ° ΠΌΡ ΠΎΡΡΠ΅ΡΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, Π° Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ:
- Tideways, AppDynamics ΠΈ Dynatrace β Π·Π° ΡΡΠΎΠΈΠΌΠΎΡΡΡ;
- Stackify β Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ Π² Π Π€ ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ°Π»ΠΎ Π΄Π°Π½Π½ΡΡ .
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠ°Ρ ΡΡΠ°ΡΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π° ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ ΡΠ½Π°ΡΠ°Π»Π° Π±ΡΠ΄ΡΡ ΠΊΡΠ°ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ Π½Π°ΡΠ΅ΠΌ ΡΠΈΠΏΠΎΠ²ΠΎΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Ρ New Relic ΠΈ ΠΎΠΏΡΡΠ΅/Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΡΡ ΠΎΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ .
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠΎΠ±ΡΠ°Π½Π½ΡΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΎΠ²
ΠΡΠΎ
ΠΠ΄Π½Π°ΠΊΠΎ Π°Π³Π΅Π½Ρ New Relic ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌ, Π² Π½ΡΠΌ Π½Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ OpenTracing. ΠΠ»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²Π½ΠΎΡΠΈΡΡ ΠΏΡΠ°Π²ΠΊΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ New Relic. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Kubernetes ΠΏΠΎΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΡΡΠ°ΡΡΡ.
ΠΠ°ΡΠ°Π²ΡΠΈΠΉ ΡΠ²ΠΎΡ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π² 2010 Π³ΠΎΠ΄Ρ
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Datadog ΠΌΡ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅Π²Π΅ΡΠ½ΠΎ ΡΡΡΠΎΠΈΠ» ΠΊΠ°ΡΡΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ², ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ½ Π½Π΅Π²Π΅ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ» ΡΠΈΠΏ ΡΠ΅ΡΠ²ΠΈΡΠ° (Π²ΠΎΡΠΏΡΠΈΠ½ΡΠ» Django Π·Π° ΡΠ΅ΡΠ²ΠΈΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ) ΠΈ Π²ΡΠ·ΡΠ²Π°Π» 500-Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π² PHP-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅ΠΌ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Predis.
ΠΠ½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΆΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π»ΠΈΡΡ Node.js ΠΈ PHP. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΎΠ½Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π·Π°ΠΌΠ΅ΡΠ½ΠΎ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ Ρ Datadog. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ, Atatus Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄ΠΎΡΠ°Π±ΠΎΡΠΎΠΊ ΠΈ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠΊ Π² ΠΊΠΎΠ΄Π΅.
ΠΠ°ΠΊ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ New Relic
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°Π·Π±Π΅ΡΡΠΌΡΡ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ New Relic. ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΡΡΠ΅Π±ΡΡΡΠ°Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ:
ΠΠ° Π³ΡΠ°ΡΠΈΠΊΠ΅ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ Π²ΡΠΏΠ»Π΅ΡΠΊ β ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ Π΅Π³ΠΎ. Π New Relic Π΄Π»Ρ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ°Π·Ρ Π²ΡΠ±ΡΠ°Π½Ρ Π²Π΅Π±-ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π² Π³ΡΠ°ΡΠΈΠΊΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΊΠ°Π·Π°Π½Ρ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΠΏΠ°Π½Π΅Π»ΠΈ error-rate, request-rateβ¦ Π§ΡΠΎ Π³Π»Π°Π²Π½ΠΎΠ΅ β ΠΏΡΡΠΌΠΎ ΠΈΠ· ΡΡΠΈΡ
ΠΏΠ°Π½Π΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠ°ΡΡΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ»ΠΈΠΊ Π½Π° MySQL ΠΏΡΠΈΠ²Π΅Π΄ΡΡ Π² ΡΠ°Π·Π΄Π΅Π» Π±Π°Π· Π΄Π°Π½Π½ΡΡ
).
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ Π²ΡΠΏΠ»Π΅ΡΠΊ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ PHP, Π½Π°ΠΆΠΌΡΠΌ Π½Π° ΡΡΠΎΡ Π³ΡΠ°ΡΠΈΠΊ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ Π² Transactions:
Π‘ΠΏΠΈΡΠΎΠΊ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎ ΡΡΡΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌΠΈ ΠΈΠ· ΠΌΠΎΠ΄Π΅Π»ΠΈ MVC, ΡΠΆΠ΅ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎ Most time consuming, ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ: ΠΌΡ ΡΡΠ°Π·Ρ Π²ΠΈΠ΄ΠΈΠΌ ΡΠΎ, ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ. ΠΠ΄Π΅ΡΡ ΠΆΠ΅ Π² Π½Π°Π»ΠΈΡΠΈΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ Π΄ΠΎΠ»Π³ΠΈΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ New RelicβΠΎΠΌ. ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ, Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡΠΈ:
- ΡΠ°ΠΌΡΠΉ Π½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ;
- ΡΠ°ΠΌΡΠΉ ΡΠ°ΡΡΠΎ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ;
- ΡΠ°ΠΌΡΠΉ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ ΠΈΠ· ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ².
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΈ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΠ΅ΠΌ ΠΆΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π»ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°:
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠΎΡ
ΡΠ°Π½ΡΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΡΠ΅ΠΉΡΠΎΠ² Π΄ΠΎΠ»Π³ΠΈΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ² (ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ 2 ΡΠ΅ΠΊΡΠ½Π΄). ΠΠΎΡ ΠΏΠ°Π½Π΅Π»Ρ Π΄Π»Ρ Π΄ΠΎΠ»Π³ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ:
ΠΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π°, Π° Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΡΠΈΠΌ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° Π±ΡΠ» ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ Π·Π°ΠΏΡΠΎΡ, Π΅Π³ΠΎ URI ΠΈ Π΄ΠΎΠΌΠ΅Π½. ΠΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π½Π°ΠΉΡΠΈ Π·Π°ΠΏΡΠΎΡ Π² Π»ΠΎΠ³Π°Ρ
. ΠΠ΅ΡΠ΅ΠΉΠ΄Ρ Π² Trace details, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΎΡΠΊΡΠ΄Π° Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ:
Π Π² Database queries β ΠΎΡΠ΅Π½ΠΈΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½ΡΡ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
ΠΠΎΠΎΡΡΠΆΠΈΠ²ΡΠΈΡΡ ΡΡΠΈΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠ΅Π½ΠΈΡΡ ΠΏΡΠΈΡΠΈΠ½Ρ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ Π²ΡΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ New Relic Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π΄Π°ΡΡ ΡΡΡΠΊΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π²ΡΠ±ΡΠ°ΡΡ Π²Π΅ΠΊΡΠΎΡ ΡΠ°ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ:
- Π΄ΠΎΠ»Π³ΠΈΠΉ
PDO::Construct
ΠΏΡΠΈΠ²Π΅Π» Π½Π°Ρ ΠΊ ΡΡΡΠ°Π½Π½ΠΎΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ pgpoll; - Π½Π΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
Memcache::Get
ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π°Π»Π° ΠΎ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ; - ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌΡ ΡΠΈΠΊΠ»Ρ Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ Π½Π°Π»ΠΈΡΠΈΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ 500 Π°Π²Π°ΡΠ°ΡΠΎΠΊ;
- ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅β¦
ΠΡΡ Π±ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠΊΡΠ°Π½Π΅ ΡΠ°ΡΡΡΡ ΡΡΠΎ-ΡΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ΅ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ β ΠΈ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, ΡΡΠΎ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ: Redis ΠΈΠ»ΠΈ PostgreSQL, β Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΏΡΡΡΡΡΡΡ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Databases.
ΠΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π±Π°Π·Ρ Π΄Π»Ρ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² β Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π² Transactions. Π ΠΏΠ΅ΡΠ΅ΠΉΠ΄Ρ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΡ Π·Π°ΠΏΡΠΎΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΡ Π·Π°ΠΏΡΠΎΡ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ΅Π½ΠΈΡΡ, ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΎ ΠΎΠ½ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ:
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΠΊΠ»Π°Π΄ΠΊΠ° External Services, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΊΡΡΠ²Π°Π΅Ρ Π² ΡΠ΅Π±Π΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊ Π²Π½Π΅ΡΠ½ΠΈΠΌ HTTP-ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΌΡ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΡ, ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ Π² sentry ΠΈΠ»ΠΈ ΡΠΎΠΌΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅. ΠΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΠΊΠ»Π°Π΄ΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π° Databases:
ΠΠΎΠ½ΠΊΡΡΠ΅Π½ΡΡ: Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΡ
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΠΌΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ β ΡΡΠ°Π²Π½ΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ New Relic Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΡ. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π½Π°ΠΌ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π²ΡΠ΅ ΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π½Π° ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ Π² production ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΌΡ ΠΏΠΎΡΡΠ°ΡΠ°Π»ΠΈΡΡ ΡΡΠ°Π²Π½ΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ/ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
1. Datadog
Datadog Π²ΡΡΡΠ΅ΡΠ°Π΅Ρ Π½Π°Ρ ΠΏΠ°Π½Π΅Π»ΡΡ ΡΠΎ ΡΡΠ΅Π½ΠΎΠΉ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²:
ΠΠ½ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠ°Π·Π±ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ/ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Django-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ 2 ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ PostgreSQL (defaultdb
ΠΈ postgres
), Π° ΡΠ°ΠΊΠΆΠ΅ Celery, Redis. Π Π°Π±ΠΎΡΠ° Ρ Datadog ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡ Π²Π°Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΡ
Π·Π½Π°Π½ΠΈΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² MVC: Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΊΡΠ΄Π° Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΡΠΈΡ
ΠΎΠ΄ΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠ±ΡΡΠ½ΠΎ Π² ΡΡΠΎΠΌ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΊΠ°ΡΡΠ° ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²:
ΠΡΡΠ°ΡΠΈ, Π½Π΅ΡΡΠΎ ΠΏΠΎΡ
ΠΎΠΆΠ΅Π΅ Π΅ΡΡΡ ΠΈ Π² New Relic:
β¦ ΠΏΡΠΈΡΠ΅ΠΌ ΠΈΡ
ΠΊΠ°ΡΡΠ°, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΠ΄Π΅Π»Π°Π½Π° ΠΏΡΠΎΡΠ΅ ΠΈ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅: ΠΎΠ½Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π»ΠΎ Π±Ρ Π΅Ρ ΠΈΠ·Π»ΠΈΡΠ½Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ, ΠΊΠ°ΠΊ Π² ΡΠ»ΡΡΠ°Π΅ Datadog), Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ.
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Datadog: ΠΈΠ· ΠΊΠ°ΡΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π·Π°ΠΏΡΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ Π² Django. ΠΠ΅ΡΠ΅ΠΉΠ΄ΡΠΌ Π² ΡΠ΅ΡΠ²ΠΈΡ Django ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ-ΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΠΎ, ΡΡΠΎ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ:
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΡ Π½Π΅Ρ Π³ΡΠ°ΡΠΈΠΊΠ° Web transaction time, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠΌΡ, ΡΡΠΎ Π²ΠΈΠ΄ΠΈΠΌ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ New Relic. ΠΠ΄Π½Π°ΠΊΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π½Π° ΠΌΠ΅ΡΡΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ° % of Time spent. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ Π² Avg time per request by Typeβ¦ ΠΈ Π²ΠΎΡ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΠΉ Π³ΡΠ°ΡΠΈΠΊ ΡΠΌΠΎΡΡΠΈΡ Π½Π° Π½Π°Ρ!
ΠΠΎΡΠ΅ΠΌΡ Π² Datadog ΠΎΡΠ΄Π°Π»ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠ΅ Π΄ΡΡΠ³ΠΎΠΌΡ Π³ΡΠ°ΡΠΈΠΊΡ β Π΄Π»Ρ Π½Π°Ρ Π·Π°Π³Π°Π΄ΠΊΠ°. Π Π°ΡΡΡΡΠΎΠΈΠ»ΠΎ Π΅ΡΡ ΠΈ ΡΠΎ, ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Π²ΡΠ±ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ±ΠΎΠΈΡ
ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΎΠ²), Π° ΠΏΠΎΡΠ΅ΠΌΡ β ΡΠΏΠ°ΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
ΠΏΠ°Π½Π΅Π»Π΅ΠΉ.
ΠΠ°ΡΠΎ ΠΏΠΎΡΠ°Π΄ΠΎΠ²Π°Π»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π² Datadog ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Ρ ΡΡΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π»ΠΎΠ³ΠΈ ΠΈ ΠΎΡΠ΅Π½ΠΈΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° (Gunicorn). ΠΡΡ ΠΏΠΎΡΡΠΈ ΠΊΠ°ΠΊ Π² New Relicβ¦ ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»ΡΡΠ΅ (Π»ΠΎΠ³ΠΈ)!
ΠΠΈΠΆΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ New Relic:
Π Datadog ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ. ΠΠΎΠΆΠ½ΠΎ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ ΠΏΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΏΠΎ ΡΡΠ΅Π΄Π½Π΅ΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΡΠ²Π΅ΡΠ°, ΠΏΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌΡ Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π° Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
Π Π΅ΡΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΠΈ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²ΡΡ ΡΠΎ, ΡΡΠΎ ΠΌΡ ΡΠΆΠ΅ Π½Π°Π±Π»ΡΠ΄Π°Π»ΠΈ Π² New Relic:
Π Π½Π°Π»ΠΈΡΠΈΠΈ ΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΏΠΎ ΡΠ΅ΡΡΡΡΡ, ΠΈ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ
Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ ΠΊΠΎΠ΄Ρ ΠΎΡΠ²Π΅ΡΠ°β¦ Π ΡΠ»ΠΎΠ²Ρ, ΡΡΠ° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»Π°ΡΡ Π½Π°ΡΠΈΠΌ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ°ΠΌ.
ΠΡΠ±ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ΡΡΡΡΠ° Π² Datadog ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΠΊΡΡΡΡ ΠΈ ΠΈΠ·ΡΡΠΈΡΡ:
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π°ΠΏΡΠΎΡΠ°, ΡΠ²ΠΎΠ΄Π½Π°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎ Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°-Π²ΠΎΠ΄ΠΎΠΏΠ°Π΄, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΠΈΠ΄Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ². Π ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡΠΉ Π²ΠΈΠ΄ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ-Π²ΠΎΠ΄ΠΎΠΏΠ°Π΄Π°:
Π ΡΠ°ΠΌΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ β ΠΏΡΠΎΡΠΌΠΎΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Ρ
ΠΎΡΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ» ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ Π·Π°ΠΏΡΠΎΡ, ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡ Π»ΠΎΠ³ΠΎΠ² Π·Π°ΠΏΡΠΎΡΠ°.
ΠΡΠ»ΠΈΡΠ½Π°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ!
ΠΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π²ΠΎΠΏΡΠΎΡ, Π³Π΄Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Databases ΠΈ External Services, ΠΊΠ°ΠΊ Π² New Relic. ΠΠ΄Π΅ΡΡ ΠΈΡ
Π½Π΅Ρ: ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Datadog ΡΠ°Π·Π±ΠΈΡΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, PostgreSQL Π±ΡΠ΄Π΅Ρ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ, Π° Π²ΠΌΠ΅ΡΡΠΎ External Services ΡΡΠΎΠΈΡ ΠΈΡΠΊΠ°ΡΡ aws.storage
(Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅).
Π Π²ΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Ρ postgres
:
ΠΠΎ ΡΡΡΠΈ Π΅ΡΡΡ Π²ΡΡ ΡΠΎ ΠΆΠ΅, ΡΡΠΎ ΠΌΡ Ρ
ΠΎΡΠ΅Π»ΠΈ:
ΠΠΈΠ΄Π½ΠΎ, ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Β«ΡΠ΅ΡΠ²ΠΈΡΠ°Β» ΠΏΡΠΈΡΠ΅Π» Π·Π°ΠΏΡΠΎΡ.
ΠΠ΅ Π±ΡΠ΄Π΅Ρ Π»ΠΈΡΠ½ΠΈΠΌ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ Datadog ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Ρ NGINX Ingress ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΡΠΊΠ²ΠΎΠ·Π½ΡΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΡ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° Π² ΠΊΠ»Π°ΡΡΠ΅Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ statsd, ΡΠΎΠ±ΠΈΡΠ°ΡΡ Π»ΠΎΠ³ΠΈ ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Ρ ΠΎΡΡΠΎΠ².
ΠΠ³ΡΠΎΠΌΠ½ΡΠΉ ΠΏΠ»ΡΡ Datadog Π² ΡΠΎΠΌ, ΡΡΠΎ Π΅Π³ΠΎ ΡΠ΅Π½Π° ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ ΠΈΠ· ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ, APM, Log Management ΠΈ Synthetics test, Ρ.Π΅. ΠΌΠΎΠΆΠ½ΠΎ Π³ΠΈΠ±ΠΊΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°ΡΡ ΠΏΠ»Π°Π½.
2. Atatus
ΠΠΎΠΌΠ°Π½Π΄Π° ΠΡΠ°ΡΡΡ ΡΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ, ΡΡΠΎ ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡ β Β«ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ New Relic, Π½ΠΎ Π»ΡΡΡΠ΅Β». ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΠ°ΠΊ Π»ΠΈ ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅.
ΠΠ°Π³Π»Π°Π²Π½Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Redis ΠΈ memcached Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ.
APM ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ±ΠΈΡΠ°Π΅Ρ Π²ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Ρ
ΠΎΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½ΡΠΆΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Web. ΠΠ°ΠΊ ΠΈ Π² Datadog, Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° Π½ΡΠΆΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΡΠΎ Π΄Π»Ρ APM Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½Π΅ ΠΎΡΠ΅Π½Ρ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ.
Π ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡ Ρ Atatus Π²ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° New Relic. ΠΠΈΠ½ΡΡ β ΡΡΠ°Π·Ρ Π½Π΅ Π²ΠΈΠ΄Π½ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ². ΠΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΈΡΠΊΠ°ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ², ΡΠΎΡΡΠΈΡΡΡ ΠΏΠΎ Most Time Consumed:
ΠΡΠΈΠ²ΡΡΠ½ΡΠΉ Π½Π°ΠΌ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Explore:
Π§Π΅ΠΌ-ΡΠΎ Π΄Π°Π½Π½Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ° Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Datadog ΠΈ Π½ΡΠ°Π²ΠΈΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΉ Π² New Relic.
ΠΠ°ΠΆΠ΄ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΡΠ΅ΠΌ Π·Π°Π½ΠΈΠΌΠ°Π»ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:
ΠΠ°Π½Π΅Π»Ρ ΡΠΎΠΆΠ΅ ΡΠΊΠΎΡΠ΅Π΅ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Datadog: Π΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΎΠ±ΡΠ°Ρ ΠΊΠ°ΡΡΠΈΠ½Π° Π²ΡΠ·ΠΎΠ²ΠΎΠ². ΠΠ΅ΡΡ
Π½ΡΡ ΠΏΠ°Π½Π΅Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΊΠ»Π°Π΄ΠΊΡ Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ HTTP Failures ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ² Session Traces:
ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, Π²ΠΈΠ΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ΅ΠΉΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ Π±Π°Π·Π΅ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠ°. ΠΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ New Relic:
ΠΠΎΠΎΠ±ΡΠ΅, Atatus ΠΏΠΎΡΠ°Π΄ΠΎΠ²Π°Π» ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΌΠΈ ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ β Π±Π΅Π· ΡΠΈΠΏΠΈΡΠ½ΡΡ
Π΄Π»Ρ New Relic ΡΠΊΠ»Π΅ΠΈΠ²Π°Π½ΠΈΠΉ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π² reminder-Π±Π»ΠΎΠΊ:
ΠΠ΄Π½Π°ΠΊΠΎ Π·Π΄Π΅ΡΡ Π½Π΅ Ρ
Π²Π°ΡΠ°Π΅Ρ ΡΠΈΠ»ΡΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±Ρ (ΠΊΠ°ΠΊ Π² New Relic) ΠΎΡΡΠ΅ΠΊΠ°Π» ΡΠ²Π΅ΡΡ
Π±ΡΡΡΡΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ (<5ΠΌΡ). Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ (ΡΡΠΏΠ΅ΡΠ½ΡΠΉ ΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠ°) ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΎΡΡ.
ΠΠ°Π½Π΅Π»Ρ Databases ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΡΡΠΈΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΊ Π²Π½Π΅ΡΠ½ΠΈΠΌ Π±Π°Π·Π°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ°ΠΏΠΎΠΌΠ½Ρ, Atatus Π½Π°ΡΠ΅Π» ΡΠΎΠ»ΡΠΊΠΎ PostgreSQL ΠΈ MySQL, Ρ ΠΎΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Ρ Π΅ΡΡ Redis ΠΈ memcached.
ΠΠ°ΠΏΡΠΎΡΡ ΡΠΎΡΡΠΈΡΡΡΡΡΡ ΠΏΠΎ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠΌ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌ: ΡΠ°ΡΡΠΎΡΠ° ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΡ, ΡΡΠ΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΎΡΠ²Π΅ΡΠ° ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΡΠ΄Π΅Π»ΡΠ½ΠΎ Ρ
ΠΎΡΠ΅ΡΡΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π²ΠΊΠ»Π°Π΄ΠΊΡ Ρ ΡΠ°ΠΌΡΠΌΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌΠΈ Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ β ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π΄Π°Π½Π½ΡΠ΅ Π² ΡΡΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Π΄Π»Ρ PostgreSQL ΡΠΎΠ²ΠΏΠ°Π»ΠΈ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΎΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ
ΠΠΊΠ»Π°Π΄ΠΊΠ° 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.
Π§ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π² Π½Π°ΡΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅:
- Β«
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΡ Π² Kubernetes Β»; - Β«
ΠΠ»Π°Π³ΠΈΠ½ kubectl-debug Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π² pod’Π°Ρ Kubernetes Β»; - Β«
ΠΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ: ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Kubernetes Β».
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com