Episode ini membahas observability dan monitoring untuk Gatsby: monitoring performa situs dengan analytics, tracking build metrics dan deployment status, error reporting untuk interaksi client-side, serta user behavior analytics.

Membangun situs hanyalah setengah pekerjaan; menjaganya tetap sehat adalah setengah lainnya. Observability menjawab tiga pertanyaan: apakah situs cepat, apakah build sukses, dan apakah pengguna mengalami error.
Episode 22 membahas monitoring performa dengan analytics, tracking build metrics dan deployment status, error reporting untuk interaksi client-side, serta user behavior dan performance monitoring.
Analytics seperti Google Analytics 4 mencatat kunjungan, sumber traffic, dan perilaku pengguna. Integrasi di Gatsby menggunakan plugin resmi:
npm install gatsby-plugin-google-gtagTambahkan plugin dengan measurement ID:
module.exports = {
plugins: [
{
resolve: "gatsby-plugin-google-gtag",
options: {
trackingIds: ["G-XXXXXXXXXX"],
pluginConfig: { head: true },
},
},
],
}Measurement ID seperti G-XXXXXXXXXX diambil dari dashboard Google Analytics; jangan pernah menuliskan nilai asli ke dalam kode.
Analytics tradisional mencatat halaman, bukan pengalaman nyata. Library web-vitals mengukur LCP, INP, dan CLS pada perangkat pengguna sesungguhnya, lalu mengirim nilainya ke analytics:
import { onCLS, onINP, onLCP } from "web-vitals"
const report = (metric) => {
console.log(metric.name, metric.value)
}
onCLS(report)
onINP(report)
onLCP(report)onLCP, onINP, dan onCLS memanggil callback setiap kali metrik dihitung di browser pengguna, sehingga kalian mendapat gambaran performa nyata, bukan hanya hasil audit.
Build yang gagal harus diketahui secepat mungkin. GitHub Actions menampilkan status setiap workflow, dan platform seperti Gatsby Cloud mencatat durasi build, ukuran bundle, dan jumlah halaman yang dibangun ulang.
Jalankan Lighthouse di CI untuk memastikan metrik performa tidak turun sebelum merge:
npx lhci autorun --config=./lighthouserc.jslhci autorun membangun situs, menjalankan Lighthouse, dan membandingkan skor dengan budget yang didefinisikan di lighthouserc.js. Regresi langsung memblokir pull request.
Error yang terjadi di browser pengguna tidak pernah terlihat di log server. Sentry menangkapnya dan mengirim detail lengkap — stack trace, browser, dan langkah sebelum error:
npm install @sentry/gatsbyInisialisasi di gatsby-browser:
import * as Sentry from "@sentry/gatsby"
export const onClientEntry = () => {
Sentry.init({
dsn: process.env.GATSBY_SENTRY_DSN,
})
}onClientEntry dijalankan sekali saat aplikasi client dimuat, menjadi titik yang tepat untuk inisialisasi error tracker.
Selain global tracker, pasang error boundary di komponen utama agar UI memberikan pesan yang jelas saat terjadi kegagalan render, bukan halaman putih yang membingungkan.
Lacak aksi penting seperti klik tombol atau submit form dengan event tracking. Data ini menjawab pertanyaan produk, misalnya halaman mana yang paling banyak memulai perjalanan pengguna.
Kumpulkan semua metrik di satu dashboard: performa, build, dan error. Pasang alert untuk nilai yang menyimpang — LCP naik, build mulai melambat, atau error rate meningkat — sehingga masalah ditangani sebelum pengguna mengeluh.
Inti yang harus dibawa pulang:
web-vitals mengukur performa di perangkat pengguna nyata.Di episode 23 selanjutnya — episode terakhir series ini — kita akan membahas stable modern features dan future trends, merangkum strategi agar skill Gatsby tetap relevan di ekosistem yang terus berubah.