Monitoring dan Logging: Awasi Aplikasi
Error tracking, performance monitoring, dan logging
Tujuan Pembelajaran
- Memahami pentingnya monitoring dan logging
- Bisa mengintegrasikan Sentry dan logging
Analogi
Monitoring = CCTV dan Alarm:
[Website] → Error! → [Sentry] → Notifikasi ke Developer
[Website] → Lambat → [APM] → Alert ke Team
[Server] → Penuh → [Grafana] → Dashboard merah
Monitoring seperti CCTV — memantau kesehatan aplikasi 24/7
Penjelasan Konsep
Monitoring
Monitoring adalah proses memantau kesehatan aplikasi di production.
Logging
Logging adalah mencatat aktivitas dan error untuk debugging.
Kenapa penting?
Tanpa monitoring, kamu tidak tahu kalau:
- Website down (user complain dulu).
- Error terjadi (data hilang).
- Performa menurun (user kabur).
Tools Monitoring
Error Tracking
- Sentry → Capture error real-time,
Stack trace, user context.
Performance Monitoring
- New Relic/Datadog → APM (Application Performance Monitoring).
Logging
- Winston/Pino → Structured logging di Node.js.
- CloudWatch/Logtail → Centralized log management.
Inti yang Perlu Dipahami
Bagian ini berfokus pada memahami pentingnya monitoring dan logging., dan bisa mengintegrasikan Sentry dan logging. Jangan terburu-buru menghafal istilahnya. Lebih penting untuk memahami peran setiap konsep dan kapan konsep itu muncul dalam pekerjaan web development.
Saat membaca Monitoring dan Logging, gunakan tujuan belajar sebagai penanda arah. Kalau kamu sudah bisa menjelaskan tujuan itu dengan kata-katamu sendiri, berarti fondasinya mulai terbentuk.
Cara Membayangkannya
Monitoring seperti CCTV — memantau kesehatan aplikasi 24/7. Analogi ini dipakai supaya konsep teknis tidak terasa melayang. Hubungkan setiap istilah dengan perannya: siapa yang meminta, siapa yang memproses, data apa yang berpindah, dan hasil apa yang diharapkan.
Kalau analoginya sudah terasa masuk akal, barulah lihat istilah teknisnya. Cara ini membuat materi lebih mudah dipahami daripada langsung menghafal definisi.
Saat Melihat Contoh Kode
Contoh kode pada chapter ini memakai bahasa javascript. Bacalah contoh kode sebagai ilustrasi alur, bukan sebagai bagian yang harus langsung dihafal. Baris 2-7: Sentry init. Baris 10-14: Capture exception. Baris 17-33: Winston logger.
Perhatikan nama fungsi, urutan langkah, dan data yang berpindah. Biasanya tiga hal itu sudah cukup untuk memahami hubungan antara teori dan praktik.
Konteks dalam Perjalanan Belajar
Setiap konsep di platform ini dipilih karena dipakai di industri. Fokus pada pemahaman, bukan hafalan.
Kamu sedang membangun skill inti. Setelah bagian ini, kamu bisa memilih spesialisasi sesuai minat: frontend, backend, atau DevOps.
Gunakan pertanyaan reflektif dan prompt AI di akhir chapter sebagai latihan aktif. Membaca saja tidak cukup — kamu perlu menjelaskan ulang dengan kata-katamu sendiri.
Contoh Kode
// SENTRY — Error Tracking
import * as Sentry from '@sentry/react';
Sentry.init({
dsn: 'https://xxx@o123.ingest.sentry.io/456',
environment: 'production',
tracesSampleRate: 1.0
});
// Capture error manual
try {
riskyOperation();
} catch (error) {
Sentry.captureException(error);
}
// LOGGING DENGAN WINSTON
import winston from 'winston';
const logger = winston.createLogger({
level: 'info',
format: winston.format.combine(
winston.format.timestamp(),
winston.format.json()
),
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
logger.info('User logged in', { userId: 123 });
logger.error('Payment failed', { orderId: 456, reason: 'insufficient_funds' });Penjelasan Kode
Prompt AI
Jelaskan bedanya logging dan monitoring.
Pertanyaan Reflektif
Integrasikan Sentry ke proyekmu. Simulasikan error — apakah muncul di dashboard?