Sebuah proyek hobby untuk mendemonstrasikan setup monitoring lengkap:
- Aplikasi backend Express.js yang diekspos metriknya.
- Prometheus untuk mengumpulkan metrik secara periodik.
- Grafana untuk memvisualisasikan data metrik.
- Digunakan bersama Podman Compose untuk orkestrasi kontainer.
- Biome digunakan untuk code formatting dan linting.
Lihat demo langsung:
- Homepage Proyek: https://prometheus-grafana-expressjs-podman.vercel.app/ (Pengantar)
- Dashboard Prometheus: https://prometheus-grafana-expressjs-podman.vercel.app/dashboard (Membutuhkan akses yang sesuai)
- Endpoint Metrik: https://prometheus-grafana-expressjs-podman.vercel.app/metrics (Metrik aplikasi)
| Komponen | Deskripsi |
|---|---|
| Backend | Express.js (Node.js) |
| Code Quality | Biome (Formatter & Linter) |
| Monitoring | Prometheus |
| Visualisasi | Grafana |
| Kontainerisasi | Podman & Podman Compose (Alternatif Docker Compose) |
Anda memiliki dua opsi untuk menjalankan proyek ini: menggunakan Podman Compose (direkomendasikan untuk meniru lingkungan produksi containerized) atau menjalankan Express.js secara native dan layanan monitoring melalui Vercel.
Pastikan Anda telah menginstal Podman dan Podman Compose (atau Docker Compose sebagai alternatif).
-
Clone repositori:
git clone [https://www.andarepository.com/](https://www.andarepository.com/) cd [NAMA REPO] -
Jalankan layanan: Gunakan
podman-composeataudocker-compose(jika Anda tidak menggunakan Podman):podman compose up -d # ATAU # docker-compose up -d
-
Akses Aplikasi:
- Express.js (Aplikasi Anda):
http://localhost:3000 - Prometheus:
http://localhost:9090 - Grafana:
http://localhost:3001(Default login:admin/admin)
Metrik Express.js dapat diakses di
http://localhost:3000/metrics. Prometheus akan secara otomatis scrape metrik dari alamat ini. - Express.js (Aplikasi Anda):
-
Menghentikan layanan:
podman compose down # ATAU # docker-compose down
Untuk pengembangan lokal dan debugging cepat tanpa layanan monitoring:
-
Instal dependensi:
npm install
-
Jalankan mode pengembangan:
npm run dev
Aplikasi akan berjalan di
http://localhost:3000.
| Skrip | Perintah | Deskripsi |
|---|---|---|
dev |
npm run dev |
Menjalankan aplikasi Express.js dalam mode pengembangan (nodemon). |
start |
npm start |
Menjalankan aplikasi Express.js dalam mode produksi. |
format |
npx biome format . --write |
Melakukan formatting kode menggunakan Biome. |
lint |
npx biome lint . |
Melakukan linting kode menggunakan Biome. |
check |
npm run format && npm run lint |
Menjalankan formatting dan linting. |
Kami menerima kontribusi! Silakan baca CONTRIBUTING.md untuk panduan lebih lanjut.