Π ΡΡΠ΅Π΄Π°ΡΠ° Π½Π° ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡΠ΅ Π½Π° SRE/DevOps Π½ΡΠΌΠ° Π΄Π° ΠΈΠ·Π½Π΅Π½Π°Π΄Π° Π½ΠΈΠΊΠΎΠ³ΠΎ, ΡΠ΅ Π΅Π΄ΠΈΠ½ Π΄Π΅Π½ ΠΊΠ»ΠΈΠ΅Π½Ρ (ΠΈΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅) ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π° ΠΈ ΡΡΠΎΠ±ΡΠ°Π²Π°, ΡΠ΅ βΠ²ΡΠΈΡΠΊΠΎ Π΅ Π·Π°Π³ΡΠ±Π΅Π½ΠΎβ: ΡΠ°ΠΉΡΡΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ, ΠΏΠ»Π°ΡΠ°Π½ΠΈΡΡΠ° Π½Π΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Ρ, ΠΆΠΈΠ²ΠΎΡΡΡ ΡΠ΅ ΡΠ°Π·ΠΏΠ°Π΄Π° ... ΠΠΎΠ»ΠΊΠΎΡΠΎ ΠΈ Π΄Π° ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ΡΠ΅ Π² ΡΠ°ΠΊΠ°Π²Π° ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ΄Π½ΠΎ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π° Π±Π΅Π· ΠΏΡΠΎΡΡ ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. Π§Π΅ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ ΡΠ΅ ΠΊΡΠΈΠ΅ Π² ΡΠ°ΠΌΠΈΡ ΠΊΠΎΠ΄ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΎ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅.
Π Π² ΡΠΊΡΡΠ± ΠΈ Π² ΡΠ°Π΄ΠΎΡΡ...
Π’Π°ΠΊΠ° ΡΠ΅ ΡΠ»ΡΡΠΈ, ΡΠ΅ ΠΎΡΠ΄Π°Π²Π½Π° ΠΈ Π΄ΡΠ»Π±ΠΎΠΊΠΎ ΡΠ΅ Π²Π»ΡΠ±ΠΈΡ
ΠΌΠ΅ Π² New Relic. Π’ΠΎΠΉ Π±Π΅ΡΠ΅ ΠΈ ΠΎΡΡΠ°Π²Π° ΠΎΡΠ»ΠΈΡΠ΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ°ΡΠ΅ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈΡΠ΅ (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π½Π΅ΠΉΠ½ΠΈΡ Π°Π³Π΅Π½Ρ) ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅. Π Π²ΡΠΈΡΠΊΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΅ ΡΡΡΠ°Ρ
ΠΎΡΠ½ΠΎ, Π°ΠΊΠΎ Π½Π΅ Π±ΡΡ
Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΡΠ΅Π½ΠΎΠ²Π°ΡΠ° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ°: ΡΡ ΡΠ΅Π½Π°
ΠΠ±ΠΈΡΠ°ΠΉΠ½Π°ΡΠ° ΡΠΈΡΡΠ°ΡΠΈΡ: ΠΠΎΠ²Π° ΡΠ΅Π»ΠΈΠΊΠ²Π° Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ° Π½Π° βΠΏΠΎΡΡΠΎΡΠ½Π½Π° ΠΎΡΠ½ΠΎΠ²Π°β, ΡΠ΅ Ρ ΠΏΠΎΠΌΠ½ΡΡ ΡΠ°ΠΌΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ°, Π² ΠΊΠΎΠΉΡΠΎ Π·Π°ΠΏΠΎΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅. ΠΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠ»Π°ΡΠ°ΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π½ΠΎ (140 USD Π½Π° ΡΡΡΠ²ΡΡ Π½Π° ΠΌΠ΅ΡΠ΅Ρ), Π° Π² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°ΡΠ° ΡΠ΅ ΠΎΠ±Π»Π°ΡΠ½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΡΡΠΌΠΈΡΠ΅ ΡΠ° Π΄ΠΎΡΡΠ° Π³ΠΎΠ»Π΅ΠΌΠΈ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΈΠΌΠ° ΠΎΠΏΡΠΈΡ Pay-As-You-Go, Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° New Relic ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΎΡ Π²Π°Ρ Π΄Π° ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π·Π°Π³ΡΠ±Π° Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½Π°ΡΠ° ΡΠΈΡΡΠ°ΡΠΈΡ, Π·Π° ΠΊΠΎΡΡΠΎ Π΅ ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΎ. ΠΠ΅ΠΎΡΠ΄Π°Π²Π½Π° New Relic ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈ Π½ΠΎΠ² ΡΠ°ΡΠΈΡΠ΅Π½ ΠΏΠ»Π°Π½ -
Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° Π·Π°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅ Π΄Π° ΠΌΠΈΡΠ»ΠΈΠΌ Π΄Π° ΡΡΡΡΠΈΠΌ ΠΏΠΎ-Π΅Π²ΡΠΈΠ½Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° ΠΈ ΠΈΠ·Π±ΠΎΡΡΡ Π½ΠΈ ΠΏΠ°Π΄Π½Π° Π²ΡΡΡ Ρ Π΄Π²Π΅ ΡΡΠ»ΡΠ³ΠΈ: Datadog ΠΈ Atatus. ΠΠ°ΡΠΎ Π½Π° ΡΡΡ ?
ΠΠ° ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΡΠ΅
ΠΠ΅Π΄Π½Π°Π³Π° Π΄Π° ΠΊΠ°ΠΆΠ°, ΡΠ΅ Π½Π° ΠΏΠ°Π·Π°ΡΠ° ΠΈΠΌΠ° ΠΈ Π΄ΡΡΠ³ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠΈΠ΅ Π΄ΠΎΡΠΈ ΠΎΠ±ΠΌΠΈΡΠ»ΡΡ ΠΌΠ΅ ΠΎΠΏΡΠΈΠΈ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, Π½ΠΎ Π½Π΅ Π²ΡΠ΅ΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈΠΌΠ° ΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½ ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅Ρ Π·Π° Ρ ΠΎΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΎ Ρ ΠΎΡΡΠ²Π°Π½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ... - ΠΎΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°. ΠΠ²ΠΎΠΉΠΊΠ°ΡΠ°, ΠΊΠΎΡΡΠΎ ΠΈΠ·Π±ΡΠ°Ρ ΠΌΠ΅, ΡΠ΅ ΠΎΠΊΠ°Π·Π° Π½Π°ΠΉ-Π±Π»ΠΈΠ·ΠΊΠ° Π½Π°ΡΠΈΡΠ΅ Π½ΡΠΆΠ΄ΠΈ:
- Π²Π³ΡΠ°Π΄Π΅Π½Π° ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° 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 ΡΠ΅Π± ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·Π±ΠΈΡΠ°Ρ Π²Π΅Π΄Π½Π°Π³Π° Π·Π° ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΡΠ° ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈ Π² Π³ΡΠ°ΡΠΈΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, ΠΈΠΌΠ° ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π° ΠΏΡΠΎΡΠ΅Π½Ρ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, ΠΏΡΠΎΡΠ΅Π½Ρ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ... ΠΠ°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡΠΎ Π΅, ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΡ ΡΠ΅Π·ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ Π΄Π²ΠΈΠΆΠΈΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°ΡΡΠΈ ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ°ΠΊΠ²Π°Π½Π΅ΡΠΎ Π²ΡΡΡ
Ρ MySQL ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΡΠ΅ΠΊΡΠΈΡΡΠ° Ρ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ).
Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π² ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΡΠΊΠΎΠΊ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° PHP, ΡΡΠ°ΠΊΠ½Π΅ΡΠ΅ Π²ΡΡΡ Ρ ΡΠ°Π·ΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ° ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΡΠΈΠ΄Π΅ΡΠ΅ Π½Π° Π‘Π΄Π΅Π»ΠΊΠΈ:
Π‘ΠΏΠΈΡΡΠΊΡΡ Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ ΡΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ ΠΎΡ ΠΌΠΎΠ΄Π΅Π»Π° MVC, Π²Π΅ΡΠ΅ Π΅ ΡΠΎΡΡΠΈΡΠ°Π½ ΠΏΠΎ ΠΡΠ½Π΅ΠΌΠ° Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ: Π²Π΅Π΄Π½Π°Π³Π° Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ°Π²ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΡΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° Π΄ΡΠ»Π³ΠΈ Π·Π°ΡΠ²ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΡΠ±ΠΈΡΠ°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΡ New Relic. Π§ΡΠ΅Π· ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈ:
- Π½Π°ΠΉ-Π½Π°ΡΠΎΠ²Π°ΡΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ;
- Π½Π°ΠΉ-ΡΠ΅ΡΡΠΎ ΡΡΡΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ;
- Π½Π°ΠΉ-Π±Π°Π²Π½ΠΈΡΡ ΠΎΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈΡΠ΅.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π·Π³ΡΠ½Π΅ΡΠ΅ Π²ΡΡΠΊΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ°Π²ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄Π°:
Π Π½Π°ΠΊΡΠ°Ρ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΡΡ
ΡΠ°Π½ΡΠ²Π° ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° ΡΠ»Π΅Π΄ΠΈ ΠΎΡ Π΄ΡΠ»Π³ΠΈ Π·Π°ΡΠ²ΠΊΠΈ (ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠ½Π΅ΠΌΠ°Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 2 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ). ΠΡΠΎ ΠΏΠ°Π½Π΅Π»Π° Π·Π° Π΄ΡΠ»Π³Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ:
ΠΠΈΠΆΠ΄Π° ΡΠ΅, ΡΠ΅ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΠΎΡΠ½Π΅ΠΌΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΊΠ°ΡΠΎ Π² ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΈ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ Π·Π°ΡΠ²ΠΊΠ°ΡΠ° Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½Π°, Π½Π΅ΠΉΠ½ΠΈΡΡ URI ΠΈ Π΄ΠΎΠΌΠ΅ΠΉΠ½. ΠΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΎ ΡΠΎΠ²Π° ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈ Π·Π°ΡΠ²ΠΊΠ°ΡΠ° Π² ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. ΠΡΠΈΠ²Π°ΠΌ Π΄ΠΎ ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ Π·Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΎΡΠΊΡΠ΄Π΅ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ ΡΠ΅Π·ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ:
Π Π² ΠΠ°ΡΠ²ΠΊΠΈ ΠΊΡΠΌ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ β ΠΎΡΠ΅Π½ΡΠ²Π°ΠΉΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈ ΠΊΡΠΌ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π±ΠΈΠ»ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈ, Π΄ΠΎΠΊΠ°ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅ ΡΠ°Π±ΠΎΡΠ΅Π»ΠΎ:
ΠΡΠΎΡΡΠΆΠ΅Π½ΠΈ Ρ ΡΠ΅Π·ΠΈ Π·Π½Π°Π½ΠΈΡ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠ΅ΡΠ΅Π½ΠΈΠΌ Π·Π°ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ Π·Π°Π±Π°Π²Ρ ΠΈ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΠΌ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, Π·Π° Π΄Π° ΠΈΠ·Π»Π΅Π·Π΅ΠΌ ΡΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. Π Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎΡΡ New Relic Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Π΄Π°Π²Π° ΡΡΠ½Π° ΠΊΠ°ΡΡΠΈΠ½Π°, Π½ΠΎ ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅ΡΠ΅ Π²Π΅ΠΊΡΠΎΡΡΡ Π½Π° ΡΠ°Π·ΡΠ»Π΅Π΄Π²Π°Π½Π΅:
- Π΄ΡΠ»Π³ΠΎ
PDO::Construct
Π½ΠΈ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΡΡΡΠ°Π½Π½ΠΎΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅ Π½Π° pgpoll; - Π½Π΅ΡΡΠ°Π±ΠΈΠ»Π½ΠΎΡΡ Π²ΡΠ² Π²ΡΠ΅ΠΌΠ΅ΡΠΎ
Memcache::Get
ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°, ΡΠ΅ Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π° Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π° Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ; - ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠ°Π±Π»ΠΎΠ½Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π²Π»ΠΎΠΆΠ΅Π½ ΡΠΈΠΊΡΠ», ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° 500 Π°Π²Π°ΡΠ°ΡΠ° Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΠΎΠ±Π΅ΠΊΡΠ°;
- ΠΈ ΡΠ°ΠΊΠ° Π½Π°ΡΠ°ΡΡΠΊβ¦
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ»ΡΡΠ²Π°, ΡΠ΅ Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΊΠΎΠ΄, Π½Π΅ΡΠΎ, ΡΠ²ΡΡΠ·Π°Π½ΠΎ Ρ Π²ΡΠ½ΡΠ½ΠΎ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ, ΡΠ°ΡΡΠ΅ Π½Π° Π³Π»Π°Π²Π½ΠΈΡ Π΅ΠΊΡΠ°Π½ - ΠΈ Π½ΡΠΌΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ Π±ΡΠ΄Π΅: Redis ΠΈΠ»ΠΈ PostgreSQL - Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ ΡΠ° ΡΠΊΡΠΈΡΠΈ Π² ΡΠ°Π·Π΄Π΅Π»Π° ΠΠ°Π½Π½ΠΈ.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° Π±Π°Π·Π° Π·Π° ΠΏΡΠΎΡΡΠ²Π°Π½Π΅ ΠΈ ΡΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ - ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° Π½Π°ΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΏΡΠ°Π²ΠΈ Π² Transactions. Π ΠΊΠ°ΡΠΎ ΠΎΡΠΈΠ΄Π΅ΡΠ΅ Π² ΡΠ°Π·Π΄Π΅Π»Π° Π·Π° Π·Π°ΡΠ²ΠΊΠΈ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΡΠΈ ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π° ΡΠ°Π·ΠΈ Π·Π°ΡΠ²ΠΊΠ° Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄Π° ΠΏΡΠ΅ΡΠ΅Π½ΠΈΡΠ΅ ΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΡΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π°. ΠΠ½ΠΎΠ³ΠΎ Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ:
Π Π°Π·Π΄Π΅Π»ΡΡ ΡΡΠ΄ΡΡΠΆΠ° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΡΠ½ΡΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ, ΠΊΠΎΠΉΡΠΎ ΡΠΊΡΠΈΠ²Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΊΡΠΌ Π²ΡΠ½ΡΠ½ΠΈ HTTP ΡΡΠ»ΡΠ³ΠΈ, ΠΊΠ°ΡΠΎ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ, ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΡΡΠ±ΠΈΡΠΈΡ ΠΊΡΠΌ ΡΠ°ΡΠΎΠ²ΠΈΡ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ. Π‘ΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°Π·Π΄Π΅Π»Π° Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΠΠ°Π·ΠΈ Π΄Π°Π½Π½ΠΈ:
ΠΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈ: Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΡ
Π‘Π΅Π³Π° Π½Π°ΠΉ-ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΡΠΎ Π΅ Π΄Π° ΡΡΠ°Π²Π½ΠΈΠΌ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° New Relic Ρ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΡΠ΅. ΠΠ° ΡΡΠΆΠ°Π»Π΅Π½ΠΈΠ΅, Π½Π΅ ΡΡΠΏΡΡ ΠΌΠ΅ Π΄Π° ΡΠ΅ΡΡΠ²Π°ΠΌΠ΅ ΠΈ ΡΡΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π½Π° Π΅Π΄Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° Π΅Π΄Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°Π±ΠΎΡΠ΅ΡΠΎ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π° ΡΡΠ΅Π΄Π°. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ°Ρ ΠΌΠ΅ Π΄Π° ΡΡΠ°Π²Π½ΠΈΠΌ ΡΠΈΡΡΠ°ΡΠΈΠΈ/ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ Π±ΡΡ Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΈ.
1.Datadog
Datadog Π½ΠΈ ΠΏΠΎΡΡΠ΅ΡΠ° Ρ ΠΏΠ°Π½Π΅Π» ΡΡΡ ΡΡΠ΅Π½Π° ΠΎΡ ΡΡΠ»ΡΠ³ΠΈ:
ΠΠΏΠΈΡΠ²Π° ΡΠ΅ Π΄Π° ΡΠ°Π·Π΄Π΅Π»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ/ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ° Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Django ΡΠ΅ Π²ΠΈΠ΄ΠΈΠΌ 2 Π²ΡΡΠ·ΠΊΠΈ ΠΊΡΠΌ PostgreSQL (defaultdb
ΠΈ postgres
), ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠ΅Π»ΠΈΠ½Π°, Redis. Π Π°Π±ΠΎΡΠ°ΡΠ° Ρ Datadog ΠΈΠ·ΠΈΡΠΊΠ²Π° Π΄Π° ΠΈΠΌΠ°ΡΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ ΠΏΠΎΠ·Π½Π°Π½ΠΈΡ Π·Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΡΠ΅ Π½Π° MVC: ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΎΡΠΊΡΠ΄Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠ΄Π²Π°Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈ. Π’ΠΎΠ²Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΏΠΎΠΌΠ°Π³Π° ΠΊΠ°ΡΡΠ° Π½Π° ΡΡΠ»ΡΠ³ΠΈΡΠ΅:
ΠΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, ΠΈΠΌΠ° Π½Π΅ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π² New Relic:
... ΠΈ ΡΡΡ
Π½Π°ΡΠ° ΠΊΠ°ΡΡΠ° ΡΠΏΠΎΡΠ΅Π΄ ΠΌΠ΅Π½ Π΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½Π° ΠΏΠΎ-ΠΎΠΏΡΠΎΡΡΠ΅Π½Π° ΠΈ ΠΏΠΎ-ΡΡΠ½Π°: Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π½Π° Π΅Π΄Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (ΠΊΠΎΠ΅ΡΠΎ Π±ΠΈ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΏΡΠ΅ΠΊΠ°Π»Π΅Π½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ, ΠΊΠ°ΠΊΡΠΎ Π² ΡΠ»ΡΡΠ°Ρ Ρ Datadog), Π° ΡΠ°ΠΌΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ.
ΠΠ° ΡΠ΅ ββΠ²ΡΡΠ½Π΅ΠΌ ΠΊΡΠΌ Datadog: ΠΎΡ ΠΊΠ°ΡΡΠ°ΡΠ° Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ, ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈ ΠΈΠ΄Π²Π°Ρ ΠΊΡΠΌ Django. ΠΠ΅ΠΊΠ° ΠΎΡΠΈΠ΄Π΅ΠΌ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° Django ΠΈ Π½Π°ΠΉ-Π½Π°ΠΊΡΠ°Ρ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡΠ°ΠΊΠ²Π°Ρ ΠΌΠ΅:
ΠΠ° ΡΡΠΆΠ°Π»Π΅Π½ΠΈΠ΅ ΡΡΠΊ Π½ΡΠΌΠ° Π³ΡΠ°ΡΠΈΠΊΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΡΠ΅ΠΌΠ΅ Π·Π° ΡΠ΅Π± ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΠΏΠ°Π½Π΅Π» New Relic. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΡΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ Π²ΠΌΠ΅ΡΡΠΎ Π³ΡΠ°ΡΠΈΠΊΠ° % ΠΎΡ ΠΈΠ·ΡΠ°Π·Ρ
ΠΎΠ΄Π²Π°Π½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅. ΠΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΅ Π΄Π° Π³ΠΎ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠΈΡΠ΅ Π½Π° Π‘ΡΠ΅Π΄Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π·Π°ΡΠ²ΠΊΠ° ΠΏΠΎ ΡΠΈΠΏ... ΠΈ ΡΠ΅Π³Π° ΠΏΠΎΠ·Π½Π°ΡΠ°ΡΠ° Π³ΡΠ°ΡΠΈΠΊΠ° Π½ΠΈ Π³Π»Π΅Π΄Π°!
ΠΠ°ΡΠΎ Datadog ΠΈΠ·Π±ΡΠ° ΡΠ°Π·Π»ΠΈΡΠ½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ° Π΅ Π·Π°Π³Π°Π΄ΠΊΠ° Π·Π° Π½Π°Ρ. ΠΡΡΠ³ΠΎ ΡΠ°Π·ΠΎΡΠ°ΡΠΎΠ²Π°ΡΠΎ Π½Π΅ΡΠΎ Π΅, ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π½Π΅ ΠΏΠΎΠΌΠ½ΠΈ ΠΈΠ·Π±ΠΎΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ (Π·Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ Π΄Π²Π°ΡΠ° ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ°) ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΅ Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π°Ρ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ.
ΠΠΎ Π±ΡΡ Π΄ΠΎΠ²ΠΎΠ»Π΅Π½ ΠΎΡ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π² Datadog Π΄Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°ΠΌ ΠΎΡ ΡΠ΅Π·ΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΊΡΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈΡΠ΅ Π½Π° ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΡΡΡΠ²ΡΡΠΈ, Π΄Π° ΡΠ΅ΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π΄Π° ΠΎΡΠ΅Π½ΡΠ²Π°ΠΌ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈΡΠ΅ Π½Π° ΡΠ΅Π± ΡΡΡΠ²ΡΡΠ° (Gunicorn). ΠΡΠΈΡΠΊΠΎ Π΅ ΠΏΠΎΡΡΠΈ ΡΡΡΠΎΡΠΎ ΠΊΠ°ΡΠΎ Π² New Relic... ΠΈ Π΄ΠΎΡΠΈ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ (Π΄Π½Π΅Π²Π½ΠΈΡΠΈ)!
ΠΠΎΠ΄ Π³ΡΠ°ΡΠΈΠΊΠΈΡΠ΅ ΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° New Relic:
Π Datadog ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ ΡΠ΅ΡΡΡΡΠΈ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠΎΡΡΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈΡΠ΅ ΠΏΠΎ Π±ΡΠΎΠΉ Π·Π°ΡΠ²ΠΊΠΈ, ΠΏΠΎ ΡΡΠ΅Π΄Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡ ΠΈ ΠΏΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎ ΠΈΠ·ΡΠ°Π·Ρ
ΠΎΠ΄Π²Π°Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·Π±ΡΠ°Π½ ΠΏΠ΅ΡΠΈΠΎΠ΄ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π·ΡΠΈΡΠΈΡΠ΅ ΡΠ΅ΡΡΡΡΠ° ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ Π²Π΅ΡΠ΅ ΡΠΌΠ΅ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°Π»ΠΈ Π² New Relic:
ΠΠΌΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° Π·Π° ΡΠ΅ΡΡΡΡΠ°, ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ ΡΠΏΠΈΡΡΠΊ Ρ Π²ΡΡΡΠ΅ΡΠ½ΠΈ ΠΎΠ±Π°ΠΆΠ΄Π°Π½ΠΈΡ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠΎΡΡΠΈΡΠ°Π½ΠΈ ΠΏΠΎ ΠΊΠΎΠ΄ Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡ... ΠΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, Π½Π°ΡΠΈΡΠ΅ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈ Π½Π°ΠΈΡΡΠΈΠ½Π° Ρ
Π°ΡΠ΅ΡΠ°Ρ
Π° ΡΠΎΠ²Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅.
ΠΡΠ΅ΠΊΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ΅Π½ ΡΠ΅ΡΡΡΡ Π² Datadog ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΈ ΠΏΡΠΎΡΡΠ΅Π½:
ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΈ ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ°, ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ° Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ, ΠΈΠ·ΡΠ°Π·Ρ
ΠΎΠ΄Π²Π°Π½ΠΎ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΈ ΠΊΠ°ΡΠΊΠ°Π΄Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°, ΠΏΠΎΠΊΠ°Π·Π²Π°ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡΡΠ°. ΠΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ Π΄Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΊΡΠΌ Π΄ΡΡΠ²ΠΎΠ²ΠΈΠ΄Π΅Π½ ΠΈΠ·Π³Π»Π΅Π΄ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ° Π½Π° Π²ΠΎΠ΄ΠΎΠΏΠ°Π΄Π°:
Π Π½Π°ΠΉ-ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΡΠΎ Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Ρ
ΠΎΡΡΠ°, Π½Π° ΠΊΠΎΠΉΡΠΎ Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ°, ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅.
Π‘ΡΡΠ°Ρ
ΠΎΡΠ½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ!
ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΠ΄ΠΈΡΠ΅ ΠΊΡΠ΄Π΅ ΡΠ° ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅ ΠΠ°Π½Π½ΠΈ ΠΈ ΠΡΠ½ΡΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ, ΠΊΠ°ΠΊΡΠΎ Π² New Relic. Π’ΡΠΊ Π½ΡΠΌΠ° ΡΠ°ΠΊΠΈΠ²Π°: ΡΡΠΉ ΠΊΠ°ΡΠΎ Datadog ΡΠ°Π·Π»Π°Π³Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ, ΡΠ΅ ΡΠ΅ Π²Π·Π΅ΠΌΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ PostgreSQL ΠΎΡΠ΄Π΅Π»Π½Π° ΡΡΠ»ΡΠ³Π°, ΠΈ Π²ΠΌΠ΅ΡΡΠΎ Π²ΡΠ½ΡΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ ΡΠΈ ΡΡΡΡΠ²Π° Π΄Π° ΠΏΠΎΡΡΡΡΠΈΡΠ΅ aws.storage
(ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π·Π° Π²ΡΡΠΊΠ° Π΄ΡΡΠ³Π° Π²ΡΠ½ΡΠ½Π° ΡΡΠ»ΡΠ³Π°, Π΄ΠΎ ΠΊΠΎΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠΌΠ° Π΄ΠΎΡΡΡΠΏ).
ΠΡΠΎ Π΅Π΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ Ρ postgres
:
ΠΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ ΠΈΠΌΠ° Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΈΡΠΊΠ°Ρ
ΠΌΠ΅:
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΎΡ ΠΊΠΎΡ βΡΡΠ»ΡΠ³Π°β Π΅ Π΄ΠΎΡΠ»Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ°.
ΠΡΠΌΠ° Π΄Π° Π΅ ΠΈΠ·Π»ΠΈΡΠ½ΠΎ Π΄Π° Π²ΠΈ Π½Π°ΠΏΠΎΠΌΠ½Ρ, ΡΠ΅ Datadog ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ° ΠΏΠ΅ΡΡΠ΅ΠΊΡΠ½ΠΎ Ρ NGINX Ingress ΠΈ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ ΠΎΡ ΠΊΡΠ°ΠΉ Π΄ΠΎ ΠΊΡΠ°ΠΉ ΠΎΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, Π² ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΈΡΡΠΈΠ³Π½Π΅ Π·Π°ΡΠ²ΠΊΠ° Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΡΠ΅ statsd ΠΌΠ΅ΡΡΠΈΠΊΠΈ, Π΄Π° ΡΡΠ±ΠΈΡΠ°ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Ρ ΠΎΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ .
ΠΠΎΠ»ΡΠΌ ΠΏΠ»ΡΡ Π½Π° Datadog Π΅ Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΡΠ΅Π½Π° ΡΠ΅ ΠΎΡΠΎΡΠΌΡ ΠΎΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ°, APM, Log Management ΠΈ Synthetics ΡΠ΅ΡΡ, Ρ.Π΅. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΡΠ²ΠΎΡ ΠΏΠ»Π°Π½ Π³ΡΠ²ΠΊΠ°Π²ΠΎ.
2.ΠΡΠ°ΡΡΡ
ΠΠΊΠΈΠΏΡΡ Π½Π° Atatus ΡΠ²ΡΡΠ΄ΠΈ, ΡΠ΅ ΡΡΡ Π½Π°ΡΠ° ΡΡΠ»ΡΠ³Π° Π΅ βΡΡΡΠ°ΡΠ° ΠΊΠ°ΡΠΎ New Relic, Π½ΠΎ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ°β. ΠΠ° Π²ΠΈΠ΄ΠΈΠΌ Π΄Π°Π»ΠΈ Π½Π°ΠΈΡΡΠΈΠ½Π° Π΅ ΡΠ°ΠΊΠ°.
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΠΏΠ°Π½Π΅Π» Π½Π°ΠΈΡΡΠΈΠ½Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ, Π½ΠΎ Π½Π΅ Π±Π΅ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ Redis ΠΈ memcached, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
APM ΠΈΠ·Π±ΠΈΡΠ° Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ ΡΠ°ΠΌΠΎ ΡΠ΅Π± ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° Datadog, Π½ΡΠΌΠ° Π½Π°ΡΠΈΠ½ Π΄Π° Π½Π°Π²ΠΈΠ³ΠΈΡΠ°ΡΠ΅ Π΄ΠΎ ΠΆΠ΅Π»Π°Π½Π°ΡΠ° ΡΡΠ»ΡΠ³Π° ΠΎΡ Π³Π»Π°Π²Π½ΠΈΡ ΠΏΠ°Π½Π΅Π». ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅ ΡΠ° ΠΈΠ·Π±ΡΠΎΠ΅Π½ΠΈ ΡΠ»Π΅Π΄ Π³ΡΠ΅ΡΠΊΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π½Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π·Π° APM.
Π ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅ Π½Π° Atatus Π²ΡΠΈΡΠΊΠΎ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° New Relic. ΠΠ΅Π΄ΠΎΡΡΠ°ΡΡΠΊΡΡ Π΅, ΡΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ°ΡΠ° Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Π½Π΅ ΡΠ΅ Π²ΠΈΠΆΠ΄Π° Π²Π΅Π΄Π½Π°Π³Π°. Π’ΡΡΠ±Π²Π° Π΄Π° Π³ΠΎ ΠΏΠΎΡΡΡΡΠΈΡΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ°, ΡΠΎΡΡΠΈΡΠ°ΠΉΠΊΠΈ ΠΏΠΎ ΠΠ°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΡΠ°Π·Ρ ΠΎΠ΄Π²Π°Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅:
ΠΠ±ΠΈΡΠ°ΠΉΠ½ΠΈΡΡ ΡΠΏΠΈΡΡΠΊ Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ Π΅ Π½Π°Π»ΠΈΡΠ΅Π½ Π² ΡΠ°Π·Π΄Π΅Π»Π° ΠΈΠ·ΡΠ»Π΅Π΄Π²Π°ΠΉΡΠ΅:
Π Π½ΡΠΊΠΎΠΈ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΈ ΡΠ°Π±Π»ΠΈΡΠ° Π½Π°ΠΏΠΎΠΌΠ½Ρ Π½Π° Datadog ΠΈ ΠΌΠΈ Ρ
Π°ΡΠ΅ΡΠ²Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΠΏΠΎΠ΄ΠΎΠ±Π½Π°ΡΠ° Π² New Relic.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π·ΡΠΈΡΠΈΡΠ΅ Π²ΡΡΠΊΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ°Π²ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ:
ΠΠ°Π½Π΅Π»ΡΡ ΡΡΡΠΎ Π½Π°ΠΏΠΎΠΌΠ½Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ Π½Π° Datadog: ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π·Π°ΡΠ²ΠΊΠΈ, ΠΎΠ±ΡΠ° ΠΊΠ°ΡΡΠΈΠ½Π° Π½Π° ΠΎΠ±Π°ΠΆΠ΄Π°Π½ΠΈΡΡΠ°. ΠΠΎΡΠ½ΠΈΡΡ ΠΏΠ°Π½Π΅Π» ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠ°Π·Π΄Π΅Π» Π·Π° Π³ΡΠ΅ΡΠΊΠ° HTTP Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° Π±Π°Π²Π½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ Π‘Π»Π΅Π΄ΠΈ Π½Π° ΡΠ΅ΡΠΈΠΈ:
ΠΠΊΠΎ ΠΎΡΠΈΠ΄Π΅ΡΠ΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠΏΠΈΡΡΠΊ ΡΡΡ Π·Π°ΡΠ²ΠΊΠΈ ΠΊΡΠΌ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΈ Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ Π·Π°Π³Π»Π°Π²ΠΊΠΈΡΠ΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅. ΠΡΠΈΡΠΊΠΎ Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° New Relic:
ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ Atatus Π΅ Π΄ΠΎΠ²ΠΎΠ»Π΅Π½ ΠΎΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΈ ΡΠ»Π΅Π΄ΠΈ - Π±Π΅Π· ΡΠΈΠΏΠΈΡΠ½ΠΎΡΠΎ Π·Π°Π»Π΅ΠΏΠ²Π°Π½Π΅ Π½Π° ΠΎΠ±Π°ΠΆΠ΄Π°Π½ΠΈΡ Π² New Relic Π² Π±Π»ΠΎΠΊ Π·Π° Π½Π°ΠΏΠΎΠΌΠ½ΡΠ½Π΅:
ΠΠΈΠΏΡΠ²Π° ΠΎΠ±Π°ΡΠ΅ ΡΠΈΠ»ΡΡΡ, ΠΊΠΎΠΉΡΠΎ (ΠΊΠ°ΡΠΎ New Relic) Π±ΠΈ ΠΎΡΡΡΠ·Π°Π» ΡΠ»ΡΡΠ°-Π±ΡΡΠ·ΠΈ Π·Π°ΡΠ²ΠΊΠΈ (<5ms). ΠΡ Π΄ΡΡΠ³Π° ΡΡΡΠ°Π½Π° ΠΌΠΈ Ρ
Π°ΡΠ΅ΡΠ° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΡΠ°ΠΉΠ½ΠΈΡ ΠΎΡΠ³ΠΎΠ²ΠΎΡ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° (ΡΡΠΏΠ΅Ρ
ΠΈΠ»ΠΈ Π³ΡΠ΅ΡΠΊΠ°).
ΠΏΠ°Π½Π΅Π» ΠΠ°Π½Π½ΠΈ ΡΠ΅ Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π΄Π° ΠΏΡΠΎΡΡΠΈΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΠΊΡΠΌ Π²ΡΠ½ΡΠ½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΏΡΠ°Π²ΠΈ. ΠΠ΅ΠΊΠ° Π²ΠΈ Π½Π°ΠΏΠΎΠΌΠ½Ρ, ΡΠ΅ Atatus Π½Π°ΠΌΠ΅ΡΠΈ ΡΠ°ΠΌΠΎ PostgreSQL ΠΈ MySQL, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Redis ΠΈ memcached ΡΡΡΠΎ ΡΡΠ°ΡΡΠ²Π°Ρ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠ°ΡΠ²ΠΊΠΈΡΠ΅ ΡΠ΅ ΡΠΎΡΡΠΈΡΠ°Ρ ΡΠΏΠΎΡΠ΅Π΄ ΠΎΠ±ΠΈΡΠ°ΠΉΠ½ΠΈΡΠ΅ ΠΊΡΠΈΡΠ΅ΡΠΈΠΈ: ΡΠ΅ΡΡΠΎΡΠ° Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡ, ΡΡΠ΅Π΄Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡ ΠΈ Ρ.Π½. ΠΠΈΡ
ΠΈΡΠΊΠ°Π» ΡΡΡΠΎ Π΄Π° ΡΠΏΠΎΠΌΠ΅Π½Π° ΡΠ°Π·Π΄Π΅Π»Π° Ρ Π½Π°ΠΉ-Π±Π°Π²Π½ΠΈΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈ - ΡΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π² ΡΠΎΠ·ΠΈ ΡΠ°Π·Π΄Π΅Π» Π·Π° PostgreSQL ΡΡΠ²ΠΏΠ°Π΄Π°Ρ
Π° Ρ Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΎΡ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ
Π Π°Π·Π΄Π΅Π» ΠΡΠ½ΡΠ½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Π½ Ρ Π±Π°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ.
ΠΠ°Π½Π½ΠΈ
Π Π΄Π²Π°ΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡ Π° Π΄ΠΎΠ±ΡΠ΅ Π² ΡΠΎΠ»ΡΡΠ° Π½Π° APM. ΠΡΠ΅ΠΊΠΈ ΠΎΡ ΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ. ΠΠ°ΡΠΈΡΠ΅ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΡ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈ Π½Π°ΠΊΡΠ°ΡΠΊΠΎ, ΠΊΠ°ΠΊΡΠΎ ΡΠ»Π΅Π΄Π²Π°:
ΠΡΡΠ΅ Π·Π° Π΄Π°Π½Π½ΠΈ
ΠΏΠ»ΡΡΠΎΠ²Π΅:
- ΡΠ΄ΠΎΠ±Π΅Π½ ΡΠ°ΡΠΈΡΠ΅Π½ Π³ΡΠ°ΡΠΈΠΊ (APM ΡΡΡΡΠ²Π° 31 USD Π½Π° Ρ ΠΎΡΡ);
- ΡΠ°Π±ΠΎΡΠΈ Π΄ΠΎΠ±ΡΠ΅ Ρ Python;
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ OpenTracing
- ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Kubernetes;
- ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ NGINX Ingress.
ΠΏΡΠΎΡΠΈΠ²:
- Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΈΡΡ APM, ΠΊΠΎΠΉΡΠΎ Π΅ Π½Π°ΠΊΠ°ΡΠ°Π» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΄Π° ΡΡΠ°Π½Π΅ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΏΠΎΡΠ°Π΄ΠΈ Π³ΡΠ΅ΡΠΊΠ° Π² ΠΌΠΎΠ΄ΡΠ»Π° (predis);
- ΡΠ»Π°Π±Π° PHP Π°Π²ΡΠΎ-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ;
- ΠΎΡΡΠ°ΡΡΠΈ ΡΡΡΠ°Π½Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈΡΠ΅ ΠΈ ΡΡΡ Π½Π°ΡΠ° ΡΠ΅Π».
ΠΡΠ°ΡΡΡ
ΠΏΠ»ΡΡΠΎΠ²Π΅:
- Π΄ΡΠ»Π±ΠΎΠΊΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π΅ Π½Π° PHP;
- ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° New Relic.
ΠΏΡΠΎΡΠΈΠ²:
- Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ Π½Π° ΠΏΠΎ-ΡΡΠ°ΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ (Ubuntu 12.05, CentOS 5);
- ΡΠ»Π°Π±Π° Π°Π²ΡΠΎΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ;
- ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° ΡΠ°ΠΌΠΎ Π½Π° Π΄Π²Π° Π΅Π·ΠΈΠΊΠ° (Node.js ΠΈ PHP);
- ΠΠ°Π²Π΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
ΠΠΌΠ°ΠΉΠΊΠΈ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠ΅Π½Π°ΡΠ° Π½Π° Atatus ΠΎΡ 69 USD Π½Π° ΠΌΠ΅ΡΠ΅Ρ Π½Π° ΡΡΡΠ²ΡΡ, Π±ΠΈΡ ΠΌΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅Π»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Datadog, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ° Π΄ΠΎΠ±ΡΠ΅ Ρ Π½Π°ΡΠΈΡΠ΅ Π½ΡΠΆΠ΄ΠΈ (ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² K8s) ΠΈ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ.
PS
ΠΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΡΡΠΎ Π² Π½Π°ΡΠΈΡ Π±Π»ΠΎΠ³:
- Β«
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π½Π° Kubernetes Β»; - Β«
kubectl-debug ΠΏΠ»ΡΠ³ΠΈΠ½ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π² Kubernetes pods Β»; - Β«
ΠΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ: Π Π°Π·ΠΌΠ΅ΡΡΡ ΠΈΠΌΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΄ΠΎΡΠΈ Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ Kubernetes ".
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com