📖 Konsep Utama
- Monitoring:
- Memantau CPU, RAM, response time, error rate.
- Alat: Prometheus, Grafana, New Relic.
- Logging:
- Mencatat request, response, error, aktivitas user.
- Alat: Winston (Node.js), Morgan (Express), ELK Stack (Elasticsearch, Logstash, Kibana).
- Alerting: notifikasi otomatis jika ada error/penurunan performa.
🔹 Contoh Logging dengan Winston
// logger.js
const { createLogger, transports, format } = require("winston");
const logger = createLogger({
format: format.combine(
format.timestamp(),
format.json()
),
transports: [
new transports.Console(),
new transports.File({ filename: "app.log" })
]
});
module.exports = logger;
// app.js
const express = require("express");
const logger = require("./logger");
const app = express();
app.get("/", (req, res) => {
logger.info("Route / diakses");
res.send("Halo Monitoring & Logging");
});
app.listen(3000, () => logger.info("Server berjalan di http://localhost:3000"));
🔹 Contoh Monitoring dengan Morgan
const morgan = require("morgan");
app.use(morgan("combined")); // log request HTTP