ํต์ฌ๋ก
newrelic_set_error_group_callback($callback)์ฌ์ฉ์ ์ ์๋ ํ๊ฑฐํ๋ฆฐํ ์ฝ๋ฐฑ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ฅ๋ฅผ ๊ทธ๋ฃนํํฉ๋๋ค.
์๊ตฌ ์ฌํญ
์์ด์ ํธ ๋ฒ์ 10.12 ์ด์.
์ค๋ช
์ด API๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๋ ํธ์ถ๋๋ PHP ์์ด์ ํธ์ ์ฌ์ฉ์ ์ ์ ์ฝ๋ฐฑ ํจ์๋ฅผ ๋ฑ๋กํ ์ ์์ต๋๋ค.
์ฝ๋ฐฑ์ ์์ด์ ํธ๋ก๋ถํฐ ๋ ๊ฐ์ PHP ๋ฐฐ์ด์ ์ ๊ณตํฉ๋๋ค. ํ๋๋ ํธ๋์ญ์ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๊ณ ๋ค๋ฅธ ํ๋๋ ์ค๋ฅ ๋ฐ์ดํฐ๋ฅผ ํฌํจํฉ๋๋ค.
์ ๊ณต๋ ์ปจํ ์คํธ ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋ฐฑ์ ์ค๋ฅ ๋ฐ์ ํธ์งํจ UI์ ํ์๋๋ ์ค๋ฅ ๊ทธ๋ฃน ์ด๋ฆ ์ญํ ์ ํ ์ฌ์ฉ์ ์ ์ ๋ ผ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋น์ด ์์ง ์์ ๋ฌธ์์ด์ ๋ฐํํด์ผ ํฉ๋๋ค.
์ค์
- ๋จ์ผ ํธ๋์ญ์ ์์ ์ด ํจ์์ ๋ํ ์ฌ๋ฌ ํธ์ถ์ด ์๋ ๊ฒฝ์ฐ PHP ์์ด์ ํธ๋ ๋ง์ง๋ง ํธ์ถ์ ์ฝ๋ฐฑ๋ง ์ ์งํฉ๋๋ค.
- ์ฝ๋ฐฑ์ ์์ฒญ๋ณ๋ก ๋ฑ๋ก๋ฉ๋๋ค. ์ด API๋ ๊ฐ ์์ฒญ์ ๋ํด ์คํ์ด ๋ณด์ฅ๋๋ ์ฝ๋ ๊ฒฝ๋ก์์ ํธ์ถ๋์ด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฝ๋ฐฑ์ด ํธ์ถ๋์ง ์์ต๋๋ค.
- ์ฝ๋ฐฑ ๊ธฐ๋ฅ์ ๊ฐ๋ฅํ ํ ์ต์ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค. CPU๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ์ฝ๋ฐฑ(์: ๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ์ถ) ๋๋ ๊ธฐํ ๋ณต์กํ ๋ก์ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
๋งค๊ฐ๋ณ์
์ด API๋ ๋จ์ผ ํจ์ ์ ํ ์ฝ๋ฐฑ์ ์ธ์๋ก ํ์ฉํฉ๋๋ค. ์ ๊ณต๋ ์ฝ๋ฐฑ์ 2๊ฐ์ ๋งค๊ฐ๋ณ์๋ฅผ ํ์ฉํด์ผ ํฉ๋๋ค.
API ๋งค๊ฐ๋ณ์ | ์ค๋ช |
|---|---|
| ํ์์. PHP ์์ด์ ํธ์ ๋ฑ๋กํ ์ฝ๋ฐฑ ํจ์๋ฅผ ์ ๊ณตํฉ๋๋ค. |
์ฝ๋ฐฑ ๋งค๊ฐ๋ณ์ | ์ค๋ช |
|---|---|
| ํ์์. PHP ์์ด์ ํธ๊ฐ ์ฝ๋ฐฑ์ ์ ๊ณตํ ํธ๋์ญ์ ๋ฐ์ดํฐ ๋ฐฐ์ด์ ๋๋ค. |
| ํ์์. PHP ์์ด์ ํธ๊ฐ ์ฝ๋ฐฑ์ ์ ๊ณตํ ์ค๋ฅ ๋ฐ์ดํฐ ๋ฐฐ์ด์ ๋๋ค. |
๋ฐฐ์ด ํค/๊ฐ ์
$transaction_data - ์ฝ๋ฐฑ์ ์ ๊ณต๋๋ PHP ์์ด์ ํธ ํธ๋์ญ์
๋ฐ์ดํฐ
์ด์ | ๊ฐ |
|---|---|
"request_uri" | (๋ฌธ์์ด) ์์ฒญ URI |
"๊ธธ" | (๋ฌธ์์ด) ํ์ผ ๊ฒฝ๋ก |
"๋ฐฉ๋ฒ" | (๋ฌธ์์ด) HTTP ๋ฉ์๋( |
"์ํ_์ฝ๋" | (int) HTTP ์ํ ์ฝ๋( |
$error_data - ์ฝ๋ฐฑ์ ์ ๊ณต๋ PHP ์์ด์ ํธ ์ค๋ฅ ๋ฐ์ดํฐ
์ด์ | ๊ฐ |
|---|---|
"ํด๋์ค" | (๋ฌธ์์ด) ํด๋์ค ์ด๋ฆ |
"๋ฉ์ธ์ง" | (๋ฌธ์์ด) ์ค๋ฅ ๋ฉ์์ง |
"ํ์ผ" | (๋ฌธ์์ด) ํ์ผ ๊ฒฝ๋ก |
"์คํ" | (๋ฌธ์์ด) JSON ์ค๋ฅ ์ถ์ ์ถ์ |
์ค์
- ๋ชจ๋ ํค์ ๊ฐ์ด ํฌํจ๋์ด ์๋ค๊ณ ๋ณด์ฅ๋๋ ๊ฒ์ ์๋๋๋ค. ์ด๋ ์ฌ์ฉ์ ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ์ค๋ฅ์ ์ฑ๊ฒฉ์ ๋ฐ๋ผ ํฌ๊ฒ ๋ฌ๋ผ์ง๋๋ค.
- ๋ฐฐ์ด ํค๋ ๋น ๊ฐ์ด ํฌํจ๋์ด ์๋์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด ํญ์ ์ค์ ๋ฉ๋๋ค.
๋ฐํ ๊ฐ
API๋ ์ฝ๋ฐฑ์ด ์ฑ๊ณต์ ์ผ๋ก ๋ฑ๋ก๋๋ฉด true ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด false ๋ฐํํฉ๋๋ค.
์
if (extension_loaded('newrelic')) { // Ensure PHP agent is available $callback = function(array $transaction_data, array $error_data) { $fingerprint = "";
// // Add custom code to parse array data //
// Example code if ($error_data["klass"] == "E_USER_ERROR") { $fingerprint = "USER ERROR"; };
return $fingerprint; // Non-empty string error group name };
newrelic_set_error_group_callback($callback);};