Π‘Π΅ΡΠ²ΠΈΡ Sentry ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΡΡ Π±Π°Π³ΠΈ Π² ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ , Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° JavaScript.
ΠΠΎΠΏΡΡΠΊΠ° ΡΡΡΡΠ°Π½ΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Π½Π° JavaScript ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΠΏΡΠΎΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΊΠΎΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊ ΡΠ΅ΠΌΡ, Π·Π°ΡΠ°ΡΡΡΡ, Ρ Π²Π°Ρ Π½Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ°. ΠΠ΄Π½Π°ΠΊΠΎ, Sentry Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΡΡ Π±Π°Π³ΠΈ.
Π§ΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠΈΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ, ΡΠΎ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ:
Node.js : ΠΠ½ΠΎΠ³ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡ ΡΠΊΠ°ΡΠΈΠ²Π°Π»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ LTS-Π²Π΅ΡΡΠΈΡ (8.12.0)- Sentry: ΠΠΈΠ±ΠΎ ΠΠΊΠΊΠ°ΡΠ½Ρ Π² ΡΠ΅ΡΠ²ΠΈΡΠ΅ Sentry (ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π΄ΠΎ 10 ΡΡΡ. Π±Π°Π³ΠΎΠ² Π² ΠΌΠ΅ΡΡΡ) Π»ΠΈΠ±ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ Sentry β
https://github.com/getsentry/onpremise
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π½Π° Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ
Π§ΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Sentry On-Premise Π½Π° Π²Π°ΡΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΉΡΠΈ 2 ΠΏΡΡΡΠΌΠΈ
-
Π‘ΠΎΠ±ΡΠ°ΡΡ rpm ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΡ β
https://habr.com/ru/post/500632/ -
ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠΎΠΌ:
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ docker ΠΈ docker-compose git clone https://github.com/getsentry/onpremise.git ./install.sh
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Ρ ΡΠ°ΠΉΡΠ° ΡΠ΅ΡΠ²ΠΈΡΠ° Π½ΠΎΠ²ΡΠΉ Sentry-ΠΏΡΠΎΠ΅ΠΊΡ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΡΠ»Π΅ Π²ΡΠ±ΠΎΡΠ° Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ Π²ΡΠ±ΡΠ°Π»ΠΈ JavaScript.
ΠΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ β ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ JavaScript. ΠΠ΄Π΅ΡΡ Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ: Β«HelloΒ» (ΠΡΠΈΠ²Π΅Ρ) ΠΈ Β«ErrorΒ» (ΠΡΠΈΠ±ΠΊΠ°).
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΠΊΠ»ΠΈΠΊΠ½Π΅ΡΠ΅ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Β«HelloΒ», ΡΠΊΡΠ°Π½ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡΡ, Π° Π±Π»ΠΎΠΊ try ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡ ΠΈ ΠΏΠΎΠΉΠΌΠ°Π΅Ρ Π±Π°Π³. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±Π°Π³ Β«ΠΏΠΎΠΉΠΌΠ°Π½Β», ΠΎΡΡΠ΅Ρ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΡΡΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΡΠ΅ΡΠ²ΠΈΡ Sentry.
ΠΠ½ΠΎΠΏΠΊΠ° Β«ErrorΒ» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ Π±Π°Π³.
vanilla / index.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, ΠΈ Π²Π²ΠΎΠ΄ΠΈΠΌ (ΠΎΠΏΡΠΈΡ Ρ ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅) ΡΠ»Π΅Π΄ΡΡΡΡ ΡΡΡΠΎΠΊΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Π°Π΄ΡΠ΅Ρ
ΠΠ°ΠΊ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΏΠΎΠΉΠΌΠ°Π½Π½ΡΠ΅ Π±Π°Π³ΠΈ
Π‘ΠΏΠ΅ΡΠ²Π° ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Β«HelloΒ».
ΠΡ ΡΠ»ΠΎΠ²ΠΈΠ»ΠΈ Π±Π°Π³, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ Π½Π΅ Π²ΡΠΏΠ»ΡΠ²Π΅Ρ Π²Π²Π΅ΡΡ ΠΏΠΎ ΡΡΠ΅ΠΊΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ ΠΈ Π½Π΅ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΡΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΠΎΡΡΡΠ»Π°Π΅ΠΌ Π² Sentry ΠΎΡΡΠ΅Ρ ΠΎ Π±Π°Π³Π΅ Π²ΡΡΡΠ½ΡΡ, ΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π½Π΅ΠΌ Π² Π°ΠΊΠΊΠ°ΡΠ½ΡΠ΅.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ:
- ΠΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΡΡ, Π² ΠΊΠ°ΠΊΠΎΠΉ ΡΡΡΠΎΡΠΊΠ΅ (24) Π·Π°ΡΠ΅ΡΠ°Π»ΡΡ Π±Π°Π³
- Π ΡΠΎΠΌΡ ΠΆΠ΅, Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠ΅ΠΏΠΎΡΠΊΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΈ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅.
ΠΠ°ΠΊ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π½Π΅ΠΏΠΎΠΉΠΌΠ°Π½Π½ΡΠ΅ Π±Π°Π³ΠΈ
ΠΠ»ΠΈΠΊΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ErrorΒ».
ΠΠ°Π³ Π²ΡΠΏΠ»ΡΠ²Π°Π΅Ρ Π²Π²Π΅ΡΡ ΠΏΠΎ ΡΡΠ΅ΠΊΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Sentry Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΡ Π±Π°Π³, Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ:
- ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ, Π² ΠΊΠ°ΠΊΠΎΠΉ ΡΡΡΠΎΡΠΊΠ΅ (30) Π·Π°ΡΠ΅ΡΡΠ»ΡΡ Π±Π°Π³
- ΠΠ΅ ΠΏΡΠ΅Π΄ΡΡΡΠΌΠΎΡΡΠ΅Π½Π° Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠ΅ΠΏΠΎΡΠΊΠ° (Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΠΏΠΎΡΠ΅ΠΌΡ)
ΠΠ°ΠΊ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ±ΡΠ°ΡΠΈΠ»ΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΏΠΎΡΠΎΠ±, ΠΊΠ°ΠΊ ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΡΡΠ΅Ρ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ Π² Π½Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ Sentry; ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ dsn Π·Π°ΠΏΠΈΡΠΈ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ, ΠΊΡΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π²Π°ΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΡ.
Π§ΡΠΎΠ±Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ Π±ΡΠ»ΠΎ, Π½ΡΠΆΠ½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π·Π°Π½ΠΎΡΠΈΡΡ Π² Π½Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ ΠΎΡΡΠ΅ΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ . Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ localhost (Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ Ρ ΠΎΡΡ). ΠΠ°Π½Π½Π°Ρ ΠΎΠΏΡΠΈΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Sentry-ΠΏΡΠΎΠ΅ΠΊΡΠ°, Sentry Project Setting.
Π Π΅Π»ΠΈΠ·Ρ
ΠΡΠ»ΠΈ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Sentry Π² ΡΠ°Π·Π½ΡΡ Π²Π°ΡΠΈΠ°ΡΠΈΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎ Π·Π΄Π΅ΡΡ Π½ΡΠΆΠ΅Π½ Π½Π΅ΠΊΠΈΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ Π²Π΅ΡΡΠΈΠΈ.
ΠΠ΅ Π½ΡΠΆΠ½ΠΎ Π²Π΅Π΄Ρ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π½Π°ΠΌΠΈ Π±Π°Π³ Π²ΡΠΏΠ»ΡΠ» ΠΎΠΏΡΡΡ, Π° ΠΌΡ Π΄ΡΠΌΠ°Π»ΠΈ, ΡΡΠΎ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΡΠΎ, ΡΡΠΎ ΠΌΡ ΠΏΠΎΡΠΈΠΊΡΠΈΠ»ΠΈ. ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²Π΅Π΄Ρ ΠΈ ΡΠ°ΠΊΠΎΠ΅, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·Π°ΠΏΡΡΡΠΈΠ» Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΡ, ΠΊΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π§ΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½ΡΠΆΠ½ΠΎ Π²ΠΏΠΈΡΠ°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ΅Π»ΠΈΠ·Π° (Π²Π΅ΡΡΠΈΠΈ) ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Sentry.
vanilla / index.html
...
var RELEASE = '0.1.0';
Sentry.init({
dsn: 'https://[email protected]/1289664',
release: RELEASE,
});
...
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π±ΡΠ΄ΡΡ ΠΎΡΠΌΠ΅ΡΠ΅Π½Ρ ΠΊΠ°ΠΊ release (0.1.0), ΡΠΎ Π΅ΡΡΡ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Ρ ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΊΠΎΠ΄Π°.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ:
- ΠΡ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π»ΠΈΠ·Ρ
- Sentry ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π±ΠΎΠ»Π΅Π΅
ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ , ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ΅ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ GitHub. Π’Π°ΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π±Π°Π³ΠΈ Π΄ΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ.
P.S. ΠΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½Π°Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΅.
P.S Π’Π΅Π»Π΅Π³ΡΠ°ΠΌ ΡΠ°Ρ Sentry
P.S. ΠΠ°Π±ΡΠ» ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΎ ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΏΠΎΡΡΠ°
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com