Π£ΡΠ»ΡΠ³ΠΈ Sentry Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π°Π»Π΅ΡΠΈΠ½ΡΠΊΠΈ Π΄Π° Π³ΠΈ ΡΠ»Π΅Π΄ΠΈΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈΡΠ΅ Π²ΠΎ ΠΏΡΠ΅Π΄Π½ΠΈΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π²ΠΎ ΠΠΎ Π²ΠΊΠ»ΡΡΠΈΡΠ΅ Javascript-.
ΠΠΊΠ»ΡΡΠ΅Π½ΠΎ ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π° Π΄Π° Π³ΠΈ ΠΏΠΎΠΏΡΠ°Π²ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Π²ΠΎ ΠΏΡΠ΅Π΄Π½ΠΈΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΠΎ Π²ΠΊΠ»ΡΡΠΈΡΠ΅ Javascript- ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π½Π΅Π·Π³ΠΎΠ΄Π½ΠΎ Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΏΠΎΡΠ΅ΠΊΠ½ΡΠ²Π°Π°Ρ ΠΎΠ΄ ΠΏΡΠ΅Π»ΠΈΡΡΡΠ²Π°ΡΠΎΡ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ, Π΄ΠΎ ΠΊΠΎΡ ΡΠ΅ΡΡΠΎ Π½Π΅ΠΌΠ°ΡΠ΅ ΠΏΡΠΈΡΡΠ°ΠΏ. Π‘Π΅ΠΏΠ°ΠΊ, Sentry ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π°Π»Π΅ΡΠΈΠ½ΡΠΊΠΎ ΡΠ»Π΅Π΄Π΅ΡΠ΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ.
Π¨ΡΠΎ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ
ΠΠΊΠΎ ΡΠ°ΠΊΠ°ΡΠ΅ Π΄Π° Π³ΠΈ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΠΎΠ²ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΈ, ΡΠ΅ Π²ΠΈ ΡΡΠ΅Π±Π°Π°Ρ:
Node.js : Π Π°Π·Π²ΠΎΡΠ½Π° Π°Π»Π°ΡΠΊΠ° Π±ΠΎΠ³Π°ΡΠ° ΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠΎ Π½Π΅ Π΅ Π΄Π΅Π» ΠΎΠ΄ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°. ΠΠ° ΠΏΡΠ΅Π·Π΅ΠΌΠ°Π²ΠΌΠ΅ Π½Π°ΡΠ½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° LTS (8.12.0)- Sentry: ΠΠ»ΠΈ ΡΠΌΠ΅ΡΠΊΠ° Π²ΠΎ ΡΡΠ»ΡΠ³Π°ΡΠ° Sentry (ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ½ΠΈΠΌΠ°ΡΠ΅ Π΄ΠΎ 10 ΠΈΠ»ΡΠ°Π΄ΠΈ Π³ΡΠ΅ΡΠΊΠΈ ΠΌΠ΅ΡΠ΅ΡΠ½ΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ) ΠΈΠ»ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ Π»ΠΎΠΊΠ°Π»Π΅Π½ Sentry -
https://github.com/getsentry/onpremise
ΠΠ½ΡΡΠ°Π»Π°ΡΠΈΡΠ° Π½Π° Π²Π°ΡΠΈΠΎΡ ΡΠ΅ΡΠ²Π΅Ρ
ΠΠ° Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Sentry On-Premise Π½Π° Π²Π°ΡΠΈΠΎΡ ΡΠ΅ΡΠ²Π΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΠ΄ΠΈΡΠ΅ Π½Π° 2 Π½Π°ΡΠΈΠ½ΠΈ
-
ΠΠ°ΠΏΡΠ°Π²Π΅ΡΠ΅ Π²ΡΡΠ΅ΠΆΠΈ Π²ΠΎ ΠΌΠΈΠ½ΡΡΠ° ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΡΠ΅ Π³ΠΈ -
https://habr.com/ru/post/500632/ -
ΠΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π³ΠΎ ΠΎΡΠΈΡΠΈΡΠ°Π»Π½ΠΈΠΎΡ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠ΅Ρ:
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ docker ΠΈ docker-compose git clone https://github.com/getsentry/onpremise.git ./install.sh
Π‘ΡΠ°Π½Π΄Π°ΡΠ΄Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π°
ΠΠ° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅, Π΄ΠΎΠ΄Π°Π΄Π΅ΡΠ΅ Π½ΠΎΠ²Π° ΠΎΠ΄ Π²Π΅Π±-Π»ΠΎΠΊΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° Sentry-ΠΏΡΠΎΠ΅ΠΊΡ Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°. ΠΡΠΊΠ°ΠΊΠΎ ΡΠ΅ Π³ΠΎ ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΡΠ°ΠΊΠ°Π½ΠΈΠΎΡ ΡΠ°Π·ΠΈΠΊ, ΡΠ΅ ΡΠ° Π΄ΠΎΠ±ΠΈΠ΅ΡΠ΅ ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½Π°ΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°. ΠΠΎ Π½Π°ΡΠΈΠΎΡ ΡΠ»ΡΡΠ°Ρ Π½ΠΈΠ΅ ΠΈΠ·Π±ΡΠ°Π²ΠΌΠ΅ ΠΠΎ Π²ΠΊΠ»ΡΡΠΈΡΠ΅ Javascript-.
ΠΡΠ²ΠΈΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π΅ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π΅Π½ ΠΠΎ Π²ΠΊΠ»ΡΡΠΈΡΠ΅ Javascript-. Π’ΡΠΊΠ° ΠΈΠΌΠ° Π΄Π²Π΅ ΠΊΠΎΠΏΡΠΈΡΠ°: "ΠΠ΄ΡΠ°Π²ΠΎ" (ΠΠ΄ΡΠ°Π²ΠΎ) ΠΈ "ΠΡΠ΅ΡΠΊΠ°" (ΠΡΠ΅ΡΠΊΠ°).
ΠΡΠΊΠ°ΠΊΠΎ ΡΠ΅ ΠΊΠ»ΠΈΠΊΠ½Π΅ΡΠ΅ Π½Π° ΠΊΠΎΠΏΡΠ΅ΡΠΎ "ΠΠ΄ΡΠ°Π²ΠΎ", Π΅ΠΊΡΠ°Π½ΠΎΡ ΡΠ΅ ΡΠ΅ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ° ΠΈ Π±Π»ΠΎΠΊΠΎΡ ΡΠ΅ ΠΎΠ±ΠΈΠ΄Π΅ ΡΠ΅ ΡΠ° ΠΎΡΠΊΡΠΈΠ΅ ΠΈ ΡΠ°ΡΠΈ Π±ΡΠ±Π°ΡΠΊΠ°ΡΠ°. ΠΡΠΊΠ°ΠΊΠΎ ΡΠ΅ ΡΠ΅ βΡΠ°ΡΠΈ Π³ΡΠ΅ΡΠΊΠ°ΡΠ°β, ΠΈΠ·Π²Π΅ΡΡΠ°ΡΠΎΡ Π·Π° Π³ΡΠ΅ΡΠΊΠ° ΡΠ°ΡΠ½ΠΎ ΡΠ΅ ΠΈΡΠΏΡΠ°ΡΠ° Π΄ΠΎ ΡΡΠ»ΡΠ³Π°ΡΠ° Sentry.
ΠΠΎΠΏΡΠ΅ΡΠΎ βΠΡΠ΅ΡΠΊΠ°β Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π»Π΅ΡΠ½ΠΎ Π΄Π° ΠΎΡΠΊΡΠΈΠ΅ΡΠ΅ Π³ΡΠ΅ΡΠΊΠ°.
Π²Π°Π½ΠΈΠ»Π°/ΠΈΠ½Π΄Π΅ΠΊΡ.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Vanilla</title>
</head>
<body>
<button id="hello">Hello</button>
<button id="error">Error</button>
<div id="output"></div>
<script src="https://browser.sentry-cdn.com/4.0.5/bundle.min.js" crossorigin="anonymous"></script>
<script>
(function () {
'use strict';
Sentry.init({ dsn: 'https://[email protected]/1289664' });
var helloEl = document.getElementById('hello');
var errorEl = document.getElementById('error');
var outputEl = document.getElementById('output');
helloEl.addEventListener('click', handleHelloClick);
errorEl.addEventListener('click', handleErrorClick);
function handleHelloClick() {
outputEl.innerHTML = 'Hello World';
try {
throw new Error('Caught');
} catch (err) {
Sentry.captureException(err);
}
}
function handleErrorClick() {
throw new Error('Uncaught');
}
})();
</script>
</body>
</html>
ΠΠ°Π±Π΅Π»Π΅ΡΠΊΠΈ:
- Sentry Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ ΠΎΠ΄ CDN ΠΈ Π΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ ΠΊΠ°ΠΊΠΎ Π³Π»ΠΎΠ±Π°Π»Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°
- ΠΠ°Π»ΠΊΡ ΠΏΠΎΡΠ°Π½ΠΎ Π³ΠΎ Π»Π°Π½ΡΠΈΡΠ°Π²ΠΌΠ΅ Sentry Π²ΠΎ Π½Π°ΡΠΈΠΎΡ JavaScript
ΠΠ° Π΄Π° Π³ΠΎ ΡΠ΅ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΎΠ²ΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅ ΡΡΠ°ΡΠΈΡΠ½Π° Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΡΠΊΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Node.js: http ΡΠ΅ΡΠ²Π΅Ρ. ΠΠ΄Π΅ΡΠ΅ Π²ΠΎ ΠΏΠ°ΠΏΠΊΠ°ΡΠ° ΠΊΠ°Π΄Π΅ ΡΡΠΎ Π΅ Π·Π°ΡΡΠ²Π°Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° index.html, ΠΈ Π²Π½Π΅ΡΠ΅ΡΠ΅ (ΠΎΠΏΡΠΈΡΠ° ΡΠΎ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° ΠΊΠ΅ΡΠΈΡΠ°ΡΠ΅) ΡΠ»Π΅Π΄Π½Π°Π²Π° Π»ΠΈΠ½ΠΈΡΠ° Π·Π° Π΄Π° ΡΠ° ΠΎΡΠ²ΠΎΡΠΈΡΠ΅ Π°Π΄ΡΠ΅ΡΠ°ΡΠ° Π²ΠΎ ΠΏΡΠ΅Π»ΠΈΡΡΡΠ²Π°ΡΠΎΡ
ΠΠ°ΠΊΠΎ ΡΠ΅ ΠΏΡΠΈΠΊΠ°ΠΆΡΠ²Π°Π°Ρ ΡΠ°ΡΠ΅Π½ΠΈΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ
ΠΡΠ²ΠΎ ΠΊΠ»ΠΈΠΊΠ½Π΅ΡΠ΅ Π½Π° ΠΊΠΎΠΏΡΠ΅ΡΠΎ "ΠΠ΄ΡΠ°Π²ΠΎ".
Π€Π°ΡΠΈΠ²ΠΌΠ΅ Π³ΡΠ΅ΡΠΊΠ°, ΡΠ°ΠΊΠ° ΡΡΠΎ Π½Π΅ΠΌΠ° Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ°Π²ΠΈ Π²ΠΎ ΡΡΠ΅ΠΊΠΎΡ Π½Π° ΠΏΠΎΠ²ΠΈΡΠΈ ΠΈ Π·Π°ΡΠΎΠ° Π½Π΅ ΡΠ΅ ΡΠ»Π΅Π΄ΠΈ Π²ΠΎ ΠΊΠΎΠ½Π·ΠΎΠ»Π°ΡΠ°. Π‘Π΅ΠΏΠ°ΠΊ, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΈΡΠΏΡΠ°ΡΠ°ΠΌΠ΅ Π΄ΠΎ Sentry ΠΏΡΠΈΡΠ°Π²Π΅ΡΠ΅ Π³ΡΠ΅ΡΠΊΠ° ΡΠ°ΡΠ½ΠΎ, ΡΠ΅ Π²ΠΈΠ΄ΠΈΠΌΠ΅ ΠΏΠΎΡΠ°ΠΊΠ° Π·Π° ΡΠΎΠ° Π²ΠΎ Π²Π°ΡΠ°ΡΠ° ΡΠΌΠ΅ΡΠΊΠ°.
ΠΠ°Π±Π΅Π»Π΅ΡΠΊΠΈ:
- ΠΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΡΠ»Π΅Π΄ΠΈΠΌΠ΅ ΠΊΠΎΡΠ° Π»ΠΈΠ½ΠΈΡΠ° (24) ΡΠ° ΡΠΎΠ΄ΡΠΆΠΈ Π±ΡΠ±Π°ΡΠΊΠ°ΡΠ°
- ΠΠΎΠΊΡΠ°Ρ ΡΠΎΠ°, ΠΏΠ°ΡΠ΅ΠΊΠ°ΡΠ° Π·Π° Π»Π΅Π±Π½ΠΈΡΠΈ Π³ΠΈ ΠΏΡΠΈΠΊΠ°ΠΆΡΠ²Π° Π΄Π΅ΡΡΡΠ²Π°ΡΠ° Π½Π° ΠΏΡΠ΅Π»ΠΈΡΡΡΠ²Π°ΡΠΎΡ ΡΡΠΎ Π΄ΠΎΠ²Π΅Π΄ΠΎΠ° Π΄ΠΎ Π³ΡΠ΅ΡΠΊΠ°.
ΠΠ°ΠΊΠΎ ΡΠ΅ ΠΏΡΠΈΠΊΠ°ΠΆΡΠ²Π°Π°Ρ Π½Π΅ΡΠ°ΡΠ΅Π½ΠΈΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ
Π‘ΠΎ ΠΊΠ»ΠΈΠΊΠ½ΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠΏΡΠ΅ΡΠΎ "ΠΡΠ΅ΡΠΊΠ°".
ΠΡΠ΅ΡΠΊΠ°ΡΠ° Π³ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π° ΠΎΡΠ°ΠΊΠΎΡ Π½Π° ΠΏΠΎΠ²ΠΈΡΠΈ ΠΈ Π½Π° ΡΠΎΡ Π½Π°ΡΠΈΠ½ ΡΠ΅ ΠΏΡΠΈΠΊΠ°ΠΆΡΠ²Π° ΠΏΠΎΡΠ°ΠΊΠ° Π·Π° Π³ΡΠ΅ΡΠΊΠ° Π½Π° ΠΊΠΎΠ½Π·ΠΎΠ»Π°ΡΠ°. ΠΠΎΡΠ»Π΅ ΠΎΠ²Π°, Sentry Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ ΡΠ° ΡΠ»Π΅Π΄ΠΈ Π³ΡΠ΅ΡΠΊΠ°ΡΠ°, Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π΅ΡΡΡΠ²Π°.
ΠΠ°Π±Π΅Π»Π΅ΡΠΊΠΈ:
- ΠΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌΠ΅ Π²ΠΎ ΠΊΠΎΡΠ° Π»ΠΈΠ½ΠΈΡΠ° (30) Π±ΡΠ±Π°ΡΠΊΠ°ΡΠ° Π΅ ΠΈΠ·Π³ΡΠ±Π΅Π½Π°
- ΠΠ΅ΠΌΠ° ΡΡΠ°Π³Π° ΠΎΠ΄ Π»Π΅Π±Π½ΠΈΡΠΈ (Π½Π΅ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌ Π±Π°Ρ Π·ΠΎΡΡΠΎ)
ΠΠ°ΠΊΠΎ Π΄Π° ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ
ΠΠΎΠΆΠ΅Π±ΠΈ ΡΡΠ΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠ°Π»Π΅ ΠΊΠ°ΠΊΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°ΠΌΠ΅ ΠΊΠΎΠΈ ΡΡΡΠ°Π½ΠΈΡΠΈ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΠΏΡΠΈΡΠ°Π²Π°Ρ Π³ΡΠ΅ΡΠΊΠΈ Π½Π° Π½Π°ΡΠΈΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ Sentry; ΡΠΎ ΠΏΠΎΠΌΠΎΡ dsn ΡΠ΅ΠΊΠΎΡΠ΄ΠΈ. ΠΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π΅ ΡΡΠΎ Π²Π½Π΅ΡΡΠ²Π°ΡΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ Π²ΠΈΠ΄ΠΈ ΡΠ΅ΠΊΠΎΡ ΡΡΠΎ Π³ΠΎ Π³Π»Π΅Π΄Π° ΠΈΠ·Π²ΠΎΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ΄ Π½Π° Π²Π°ΡΠ°ΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ°.
ΠΠ° Π΄Π° Π³ΠΎ ΠΈΠ·Π±Π΅Π³Π½Π΅ΠΌΠ΅ ΠΎΠ²Π°, ΡΡΠ΅Π±Π° Π΄Π° Π³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠΌΠ΅ Π±ΡΠΎΡΠΎΡ Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΈ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΠΏΠΎΠ΄Π½Π΅ΡΡΠ²Π°Π°Ρ ΠΈΠ·Π²Π΅ΡΡΠ°ΠΈ Π·Π° Π³ΡΠ΅ΡΠΊΠΈ Π΄ΠΎ Π½Π°ΡΠΈΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ. ΠΠΎ ΠΎΠ²ΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠΎ Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠ΅Π²ΠΌΠ΅ localhost (Π»ΠΎΠΊΠ°Π»Π΅Π½ Π΄ΠΎΠΌΠ°ΡΠΈΠ½). ΠΠ²Π°Π° ΠΎΠΏΡΠΈΡΠ° Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π° Π²ΠΎ ΡΠ°Π±ΡΠ»Π°ΡΠΎΡΠΎΡ Π·Π° ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ Sentry-ΠΏΡΠΎΠ΅ΠΊΡ, ΠΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ Sentry.
ΠΠ·Π΄Π°Π½ΠΈΡΠ°
ΠΠΊΠΎ ΡΠ°Π·ΠΌΠΈΡΠ»ΡΠ²Π°ΡΠ΅ ΠΊΠ°ΠΊΠΎ Π΄Π° Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ Sentry Π²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²Π°ΡΠΈΡΠ°ΡΠΈΠΈ Π½Π° Π½Π°ΡΠ°ΡΠ° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°, ΡΠΎΠ³Π°Ρ Π½ΠΈ ΡΡΠ΅Π±Π° Π½Π΅ΠΊΠΎΡ Π²ΠΈΠ΄ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·Π°ΠΌ ΠΊΠΎΡ ΡΠ΅ ΠΎΠ·Π½Π°ΡΡΠ²Π° Π³ΡΠ΅ΡΠΊΠΈ ΡΠΎ Π±ΡΠΎΡ Π½Π° Π²Π΅ΡΠ·ΠΈΡΠ°.
ΠΠ° ΠΊΡΠ°ΡΠΎΡ Π½Π° ΠΊΡΠ°ΠΈΡΡΠ°ΡΠ°, Π½Π΅ ΡΠ°ΠΊΠ°ΠΌΠ΅ Π³ΡΠ΅ΡΠΊΠ°ΡΠ° ΡΡΠΎ ΡΠ° ΠΏΠΎΠΏΡΠ°Π²ΠΈΠ²ΠΌΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ°Π²ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈ ΠΌΠΈΡΠ»ΠΈΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΎΠ½Π° ΡΡΠΎ Π³ΠΎ ΠΏΠΎΠΏΡΠ°Π²ΠΈΠ²ΠΌΠ΅ Π½Π΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°ΡΠ΅. ΠΡΡΠΎ ΡΠ°ΠΊΠ°, ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π΄Π΅ΠΊΠ° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ Π·Π°ΠΏΠΎΡΠ½Π°Π» ΠΏΠΎΡΡΠ°ΡΠ°, ΠΊΠ΅ΡΠΈΡΠ°Π½Π° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°.
ΠΠ° Π΄Π° Π³ΠΎ ΡΠ΅ΡΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ, ΡΡΠ΅Π±Π° Π΄Π° Π³ΠΎ Π²Π½Π΅ΡΠ΅ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΡ ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΡΠ²Π°ΡΠ΅ (Π²Π΅ΡΠ·ΠΈΠΈ) ΠΏΡΠΈ ΡΡΠ°ΡΡΡΠ²Π°ΡΠ΅ Sentry.
Π²Π°Π½ΠΈΠ»Π°/ΠΈΠ½Π΄Π΅ΠΊΡ.html
...
var RELEASE = '0.1.0';
Sentry.init({
dsn: 'https://[email protected]/1289664',
release: RELEASE,
});
...
ΠΠΎΡΠ»Π΅ ΠΎΠ²Π°, ΡΠΈΡΠ΅ Π½ΠΎΠ²ΠΈ Π³ΡΠ΅ΡΠΊΠΈ ΡΠ΅ Π±ΠΈΠ΄Π°Ρ ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈ ΠΊΠ°ΠΊΠΎ ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΡΠ²Π°ΡΠ΅ (0.1.0), ΠΎΠ΄Π½ΠΎΡΠ½ΠΎ ΡΠ΅ Π±ΠΈΠ΄Π°Ρ Π²ΡΠ·Π°Π½ΠΈ Π·Π° ΠΏΡΠ°Π²ΠΈΠ»Π½Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° ΠΊΠΎΠ΄ΠΎΡ.
ΠΠ°Π±Π΅Π»Π΅ΡΠΊΠΈ:
- Π‘ΡΠ°ΡΠΈΠ²ΠΌΠ΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π΅Π½ Π½Π°ΡΠΈΠ½ Π·Π° ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΠΈΠ·Π΄Π°Π½ΠΈΡΠ°
- Sentry Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅
ΠΊΠΎΠΌΠΏΠ»ΠΈΡΠΈΡΠ°Π½ΠΎ Π½ΠΈΠ²Π½ΠΈΡΠ΅ ΡΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π½Π° , ΡΡΠΎ Π΅ ΡΠ΅ΡΠ½ΠΎ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΎ ΡΠΎ GitHub. ΠΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΡΠ° ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° ΡΠ»Π΅Π΄Π΅ΡΠ΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅Π΄ Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΠ°Ρ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
Π.Π‘ ΠΡΠΎΡΠΈΠΎΡ Π΄Π΅Π» Π΅ ΠΏΠΎΠ΄ΠΎΠ»Π³, ΠΏΠ° ΡΠ΅ Π±ΠΈΠ΄Π΅ Π²ΠΎ ΠΏΠΎΡΠ΅Π±Π΅Π½ ΠΏΠΎΡΡ.
PS Π’Π΅Π»Π΅Π³ΡΠ°ΠΌΡΠΊΠΈ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡ Sentry
PS ΠΠ°Π±ΠΎΡΠ°Π²ΠΈΠ² Π΄Π° Π½Π°Π²Π΅Π΄Π°ΠΌ Π΄Π΅ΠΊΠ° ΠΎΠ²Π° Π΅ ΠΏΡΠ΅Π²ΠΎΠ΄ Π½Π° ΠΏΠΎΡΡΠΎΡ
ΠΠ·Π²ΠΎΡ: www.habr.com