# Sentry 2026: คู่มือ Open-Source Error Tracking & APM Monitoring สำหรับ SME ไทย
ทุกครั้งที่แอปพลิเคชันของคุณเกิด error ในโลกจริง ลูกค้ามักไม่ใช่คนแรกที่บอกคุณ — และเมื่อพวกเขาบอก ก็มักสายเกินไป SME ไทยจำนวนมากยังพึ่งพาการเฝ้าดู log ด้วยตาเปล่าหรือรอให้ทีมซัพพอร์ตแจ้งปัญหา ซึ่งทำให้เสียทั้งรายได้และความเชื่อมั่นของลูกค้า
Sentry เป็น Open-Source platform ที่จับ error อัตโนมัติพร้อม stack trace, breadcrumb และ context ของ user ทุกคนที่เจอปัญหา ใช้งานได้ทั้งแบบ Self-Hosted และ Cloud รองรับ JavaScript, Laravel, Next.js, React, Node.js, Python และอีกกว่า 100 frameworks
ในคู่มือนี้คุณจะได้เรียนรู้ตั้งแต่หลักการพื้นฐานของ Error Tracking และ APM (Application Performance Monitoring) วิธีติดตั้ง Sentry ใน Laravel และ Next.js การตั้งค่า Alert การวิเคราะห์ Performance Bottleneck พร้อมเปรียบเทียบกับ Datadog และ New Relic เพื่อให้ทีมเลือกใช้เครื่องมือได้ถูกต้องตามงบประมาณ
Sentry คืออะไร และทำไม SME ไทยจึงต้องใช้
Sentry เริ่มต้นในปี 2008 ในฐานะเครื่องมือ Error Tracking สำหรับ Django ปัจจุบันเป็น Application Monitoring ที่ครอบคลุม Error, Performance, Profiling, Session Replay และ Logs ในแพลตฟอร์มเดียว ใช้งานโดย Microsoft, Disney, Cloudflare และอีกหลายร้อยบริษัททั่วโลก
สิ่งที่ Sentry ช่วยทีม SME ไทย:
Self-Hosted vs Cloud
| ตัวเลือก | จุดเด่น | ข้อจำกัด |
|---|---|---|
| Sentry SaaS | ตั้งค่า 5 นาที, ไม่ต้องดูแล server | ราคาเริ่ม $26/เดือน, data ออกนอกประเทศ |
| Self-Hosted | Free, data อยู่ใน Thailand, customize ได้ | ต้องการ Docker + 16GB RAM, ดูแลเอง |
| Developer Plan | Free 5K errors/เดือน | จำกัด team size + retention 30 วัน |
หลักการ Error Tracking และ APM
ก่อนใช้ Sentry ทีมต้องเข้าใจคำสำคัญ:
Sentry ใช้ source maps + DSN (Data Source Name) เพื่อ associate error จาก minified JS กลับไปที่ source code ที่อ่านง่าย
วิธีติดตั้ง Sentry ใน Laravel
ขั้นตอนการ setup สำหรับ Laravel project:
ขั้นที่ 1: ติดตั้ง package
```bash
composer require sentry/sentry-laravel
php artisan sentry:publish --dsn=https://xxxxx@sentry.io/1234
```
ขั้นที่ 2: configure `.env`
```
SENTRY_LARAVEL_DSN=https://xxxxx@sentry.io/1234
SENTRY_TRACES_SAMPLE_RATE=0.1
SENTRY_PROFILES_SAMPLE_RATE=0.1
SENTRY_SEND_DEFAULT_PII=false
```
ค่า `traces_sample_rate=0.1` หมายถึงเก็บ 10% ของ transactions เพื่อประหยัด quota สำหรับ SME แนะนำ 0.1-0.2
ขั้นที่ 3: ทดสอบ
```bash
php artisan sentry:test
```
ขั้นที่ 4: เพิ่ม user context ใน `app/Exceptions/Handler.php`:
```php
\Sentry\configureScope(function (Sentry\State\Scope $scope) {
if (auth()->check()) {
$scope->setUser([
'id' => auth()->id(),
'email' => auth()->user()->email,
]);
}
});
```
วิธีติดตั้ง Sentry ใน Next.js
ขั้นที่ 1: ใช้ wizard
```bash
npx @sentry/wizard@latest -i nextjs
```
Wizard จะสร้างไฟล์ `sentry.client.config.ts`, `sentry.server.config.ts`, `sentry.edge.config.ts` พร้อมตั้งค่า source maps อัตโนมัติ
ขั้นที่ 2: ใน `next.config.js`:
```js
const { withSentryConfig } = require('@sentry/nextjs');
module.exports = withSentryConfig(nextConfig, {
silent: true,
hideSourceMaps: true,
disableLogger: true,
});
```
ขั้นที่ 3: เปิด Session Replay เพื่อ debug bug ที่ reproduce ยาก:
```ts
Sentry.init({
dsn: process.env.SENTRY_DSN,
replaysSessionSampleRate: 0.05,
replaysOnErrorSampleRate: 1.0,
integrations: [
Sentry.replayIntegration({
maskAllText: true,
blockAllMedia: true,
}),
],
});
```
`maskAllText: true` ป้องกันข้อมูล PII ถูกเก็บใน replay ซึ่งสำคัญมากสำหรับ PDPA compliance
ตั้งค่า Alert ที่ไม่รบกวนทีม
หลายบริษัทเปิด Sentry แล้วได้ alert วันละ 200 ฉบับ จนทีมปิด notification ทั้งหมด คำแนะนำในการตั้ง alert:
ใช้ Inbound Filters เพื่อ ignore noise เช่น bot traffic, browser extension errors, third-party script errors ที่ควบคุมไม่ได้
Performance Monitoring & Profiling
Sentry APM ทำให้เห็นว่าจุดไหนช้าโดยไม่ต้องเดา:
เปรียบเทียบ Sentry กับ Datadog และ New Relic
| คุณสมบัติ | Sentry | Datadog APM | New Relic |
|---|---|---|---|
| Error Tracking | เด่นที่สุด | พื้นฐาน | ดี |
| APM/Tracing | ดี | เด่นที่สุด | เด่น |
| Self-Hosted | ใช่ | ไม่ | ไม่ |
| Session Replay | ใช่ | Limited | ใช่ |
| ราคาเริ่มต้น | Free / $26 | $31/host | $0.30/GB |
| เหมาะกับ | SME, Frontend-heavy | Enterprise, DevOps | Mid-market |
สำหรับ SME ไทยที่เน้น Web App และต้องการเก็บ data ในประเทศ Sentry Self-Hosted คือทางเลือกที่ตอบโจทย์ทั้งงบและ PDPA
Best Practices สำหรับ Sentry ใน Production
1. ตั้ง `release` ทุก deploy เพื่อ rollback ได้ไว
2. Mask PII ทั้ง form input + Session Replay
3. ใช้ `beforeSend` hook กรอง error sensitive ก่อนส่ง
4. ตั้ง quota alert ใน Sentry เพื่อกัน bill shock
5. รวม Sentry กับ CI/CD ผ่าน GitHub Action `getsentry/action-release`
สรุปและขั้นตอนถัดไป
หากต้องการให้ทีมผู้เชี่ยวชาญ adsfit ช่วย setup Sentry, ออกแบบ alert policy, หรือ integrate กับ CI/CD pipeline ของคุณ ติดต่อเราได้ที่ [adsfit.co.th/contact](https://www.adsfit.co.th/contact) หรืออ่านบทความ DevOps อื่น ๆ ในหมวด Development เพิ่มเติม