์๋น์ค ๋ณด์ด ๋ค์์ผ๋ก ์์ฑ๋ ํ๋ฐํธ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฒ๊ทธ๋ฅผ ์๊ฒฉ์ผ๋ก ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค. ์๋ฐ ์คํฌ๋ฆฝํธ.
ํ๋ฐํธ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ํฉ๋๋ค. ์๋ฐ ์คํฌ๋ฆฝํธ ์ด๋ ์ข ์ข ์ก์ธ์คํ ์ ์๋ ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ์์ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๊น๋ค๋ก์ธ ์ ์์ต๋๋ค. ํ์ง๋ง, ๋ณด์ด ๋ฒ๊ทธ๋ฅผ ์๊ฒฉ์ผ๋ก ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค.
ํ์ํ ๊ฒ
์ด๋ฌํ ์์ ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ค์์ด ํ์ํฉ๋๋ค.
Node.js๋ฅผ : ์ ํ๋ฆฌ์ผ์ด์ ์ ์ผ๋ถ๊ฐ ์๋ ๊ธฐ๋ฅ์ด ํ๋ถํ ๊ฐ๋ฐ ๋๊ตฌ์ ๋๋ค. ์ต์ LTS ๋ฒ์ (8.12.0)์ ๋ค์ด๋ก๋ํ์ต๋๋ค.- ๋ณด์ด: Sentry ์๋น์ค์ ๊ณ์ (์ ์ต๋ 10๊ฐ์ ๋ฒ๊ทธ๋ฅผ ๋ฌด๋ฃ๋ก ๊ธฐ๋กํ ์ ์์) ๋๋ ์ค์น๋ ๋ก์ปฌ Sentry -
https://github.com/getsentry/onpremise
์๋ฒ์ ์ค์น
์๋ฒ์ Sentry On-Premise๋ฅผ ์ค์นํ๋ ค๋ฉด ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
-
rpm์ ๋น๋ํ๊ณ ์ค์นํ์ญ์์ค -
https://habr.com/ru/post/500632/ -
๊ณต์ ์ค์น ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์ธ์:
ะฃััะฐะฝะพะฒะธัั ะฝะฐ ัะตัะฒะตั docker ะธ docker-compose git clone https://github.com/getsentry/onpremise.git ./install.sh
ํ์ค ์ฌ์ฉ
์์ํ๋ ค๋ฉด ์๋น์ค ์น์ฌ์ดํธ์์ ์ ์๋น์ค๋ฅผ ์ถ๊ฐํ์ธ์. ๋ณด์ด-์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํ ํ๋ก์ ํธ์ ๋๋ค. ์ํ๋ ์ธ์ด๋ฅผ ์ ํํ๋ฉด ํด๋น ๋ฌธ์๋ฅผ ๋ฐ๊ฒ ๋ฉ๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ์๋ ์ ํํ์ต๋๋ค. ์๋ฐ ์คํฌ๋ฆฝํธ.
์ฒซ ๋ฒ์งธ ์๋ ํ์ค์ ๋๋ค. ์๋ฐ ์คํฌ๋ฆฝํธ. ์ฌ๊ธฐ์๋ ๋ ๊ฐ์ ๋ฒํผ์ด ์์ต๋๋ค. "์๋ ํ์ธ์" (์๋ ํ์ธ์) ๊ทธ๋ฆฌ๊ณ "์ค๋ฅ" (์ค๋ฅ).
๋ฒํผ์ ํด๋ฆญํ์ ํ "์๋ ํ์ธ์", ํ๋ฉด์ด ์ฌ๋ถํ ๋๊ณ ์ฐจ๋จ๋ฉ๋๋ค. ์๋ ๋ฒ๊ทธ๋ฅผ ๊ฐ์งํ๊ณ ์ก์๋ผ ๊ฒ์ ๋๋ค. ๋ฒ๊ทธ๊ฐ "๋ฐ๊ฒฌ"๋ ํ ์ค๋ฅ ๋ณด๊ณ ์๊ฐ ์๋น์ค์ ์๋์ผ๋ก ์ ์ก๋ฉ๋๋ค. ๋ณด์ด.
"์ค๋ฅ" ๋ฒํผ์ ์ฌ์ฉํ๋ฉด ๋ฒ๊ทธ๋ฅผ ์ฝ๊ฒ ๊ฐ์งํ ์ ์์ต๋๋ค.
๋ฐ๋๋ผ/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์์ ์ค์น๋์ด ์ ์ญ ๋ณ์๋ก ๋ ธ์ถ๋ฉ๋๋ค.
- ์กฐ๊ธ ๋ ์ผ์ฐ ์ฐ๋ฆฌ๋ JavaScript๋ก Sentry๋ฅผ ์ถ์ํ์ต๋๋ค.
์ด ์๋ฅผ ํ
์คํธํ๊ธฐ ์ํด ์ ์ ์น ์๋ฒ ํ๋ซํผ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. Node.js๋ฅผ: http ์๋ฒ. ํ์ผ์ด ์ ์ฅ๋ ํด๋๋ก ์ด๋ index.html ํ์ด์ง, ๋ค์ ์ค์ ์
๋ ฅ(์บ์ฑ ๋นํ์ฑํ ์ต์
)ํ์ฌ ๋ธ๋ผ์ฐ์ ์์ ์ฃผ์๋ฅผ ์ฝ๋๋ค.
์กํ ๋ฒ๊ทธ๊ฐ ํ์๋๋ ๋ฐฉ์
๋จผ์ ๋ฒํผ์ ํด๋ฆญํ์ธ์. "์๋ ํ์ธ์".
๋ฒ๊ทธ๊ฐ ๋ฐ๊ฒฌ๋์ด ํธ์ถ ์คํ์ด ํ์ ๋์ง ์์ผ๋ฏ๋ก ์ฝ์์์ ๋ชจ๋ํฐ๋ง๋์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ๋ค์์ผ๋ก ๋ณด๋ด๋ฏ๋ก ๋ณด์ด ๋ฒ๊ทธ๋ฅผ ์๋์ผ๋ก ๋ณด๊ณ ํ๋ฉด ๊ณ์ ์ ๊ด๋ จ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
์ฐธ๊ณ ์ฌํญ :
- ๋ฒ๊ทธ๊ฐ ํฌํจ๋ ํ(24)์ ์ถ์ ํ ์ ์์ต๋๋ค.
- ๋ํ ์ด๋ ๊ฒฝ๋ก ์ถ์ ์๋ ์ค๋ฅ๋ฅผ ๋ฐ์์ํจ ๋ธ๋ผ์ฐ์ ์์ ์ด ํ์๋ฉ๋๋ค.
๋ฐ๊ฒฌ๋์ง ์์ ๋ฒ๊ทธ๊ฐ ํ์๋๋ ๋ฐฉ๋ฒ
๋ฒํผ ํด๋ฆญ "์ค๋ฅ".
๋ฒ๊ทธ๊ฐ ํธ์ถ ์คํ์ ๋ํ๋๋ฏ๋ก ์ค๋ฅ ๋ฉ์์ง๊ฐ ์ฝ์์ ํ์๋ฉ๋๋ค. ์ดํ Sentry๋ ์ถ๊ฐ ์กฐ์น ์์ด ์๋์ผ๋ก ๋ฒ๊ทธ๋ฅผ ๋ชจ๋ํฐ๋งํฉ๋๋ค.
์ฐธ๊ณ ์ฌํญ :
- ์ด๋ ์ค(30)์์ ๋ฒ๊ทธ๊ฐ ์์ค๋์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
- ํ์๊ฒฝ๋ก ํธ๋ ์ผ์ด ์์ต๋๋ค(์ด์ ๋ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค).
ํ๋ก์ ํธ ๋ณด์์ ๋ณด์ฅํ๋ ๋ฐฉ๋ฒ
ํ๋ก์ ํธ์ ์ค๋ฅ๋ฅผ ๋ณด๊ณ ํ ์ ์๋ ํ์ด์ง๋ฅผ ์ ์ดํ๋ โโ๋ฐฉ์์ ๋์น์ฑ์ ๊ฒ์ ๋๋ค. ๋ณด์ด; ๋์์ ๋ฐ์ DSN ๊ธฐ๋ก. ๋ฌธ์ ๋ ํ์ด์ง์ ์์ค ์ฝ๋๋ฅผ ๋ณด๋ ์ฌ๋์ด ์ ๋ ฅ ๋ด์ฉ์ ๋ณผ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
์ด๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด ํ๋ก์ ํธ์ ์ค๋ฅ ๋ณด๊ณ ์๋ฅผ ์ ์ถํ ์ ์๋ ๋๋ฉ์ธ ์๋ฅผ ์ ํํด์ผ ํฉ๋๋ค. ์ด ์์์๋ ๋ก์ปฌ ํธ์คํธ (๋ก์ปฌ ํธ์คํธ). ์ด ์ต์ ์ ์ค์ ํญ์์ ๊ตฌ์ฑ๋ฉ๋๋ค. ๋ณด์ด-ํ๋ก์ ํธ, ์ผํธ๋ฆฌ ํ๋ก์ ํธ ์ค์ .
๋ฆด๋ฆฌ์ค
์ด๋ป๊ฒ ํ์ฉํ ๊น ์๊ฐํด๋ณด๋ฉด ๋ณด์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ํ ๋ณํ์์๋ ๋ฒ์ ๋ฒํธ๋ก ์ค๋ฅ๋ฅผ ํ์ํ๋ ์ผ์ข ์ ๋ฉ์ปค๋์ฆ์ด ํ์ํฉ๋๋ค.
๊ฒฐ๊ตญ ์ฐ๋ฆฌ๋ ์ฐ๋ฆฌ๊ฐ ๊ณ ์น ๋ฒ๊ทธ๊ฐ ๋ค์ ๋ํ๋๋ ๊ฒ์ ์ํ์ง ์์ผ๋ฉฐ, ์ฐ๋ฆฌ๊ฐ ๊ณ ์น ๊ฒ์ด ์๋ํ์ง ์์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ํ ์ฌ์ฉ์๊ฐ ์บ์๋ ์ด์ ๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ์ ์๋ ์์ต๋๋ค.
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ์๋ณ์๋ฅผ ์ ๋ ฅํด์ผ ํฉ๋๋ค. ์๋ฐฉํ๋ค (๋ฒ์ ) ์์ ์ ๋ณด์ด.
๋ฐ๋๋ผ/index.html
...
var RELEASE = '0.1.0';
Sentry.init({
dsn: 'https://[email protected]/1289664',
release: RELEASE,
});
...
์ดํ์๋ ๋ชจ๋ ์๋ก์ด ์ค๋ฅ๊ฐ ๋ค์๊ณผ ๊ฐ์ด ํ์๋ฉ๋๋ค. ๋ฆด๋ฆฌ์ค (0.1.0)์ฆ, ์ฌ๋ฐ๋ฅธ ๋ฒ์ ์ ์ฝ๋์ ์ฐ๊ฒฐ๋ฉ๋๋ค.
์ฐธ๊ณ ์ฌํญ :
- ์ฐ๋ฆฌ๋ ๋ฆด๋ฆฌ์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์์๋์ต๋๋ค.
- Sentry๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ๋ง์ ๊ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค
๋ณต์กํ ๊ทธ๋ค์ ์ ์ฌ์ฉ , ์ด๋ ์ ๋ฐ์ ํ ๊ด๋ จ์ด ์์ต๋๋ค. GitHub์. ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ํน์ ์์ ์ ์ํํ๊ธฐ ์ ์ ๋ฒ๊ทธ๋ฅผ ์ถ์ ํ ์ ์์ต๋๋ค.
PS XNUMX๋ถ๋ ๋ด์ฉ์ด ๊ธธ์ด์ ๋ฐ๋ก ํฌ์คํ ํ๊ฒ ์ต๋๋ค.
PS ํ
๋ ๊ทธ๋จ ์ฑํ
์ผํธ๋ฆฌ
PS ๋๋ ์ด๊ฒ์ด ๊ฒ์๋ฌผ์ ๋ฒ์ญ์์ ํ์ํ๋ ๊ฒ์ ์์์ต๋๋ค.
์ถ์ฒ : habr.com