Stop Waking Up for False Positives
If I have to edit one more Nagios configuration file to add a new host, I might just `rm -rf /` my workstation. We are halfway through 2015, and the infrastructure landscape is shifting under our feet. We aren't just deploying monoliths to static bare metal anymore. We are breaking apps into microservices, wrapping them in Docker containers, and expecting them to spin up and down dynamically.
The old guard of monitoring—Nagios, Zabbix, Cacti—was built for a world where servers lived for years. In the age of ephemeral containers, these tools are noisy, brittle, and frankly, a bottleneck. You cannot manually configure a check for a container that only exists for ten minutes.
Enter Prometheus. It’s a new open-source system released by the engineers at SoundCloud. It is rapidly becoming the de-facto standard for the new "cloud-native" approach, and for good reason: it understands that in a distributed system, the aggregate state matters more than the individual health of a single PID.
The Push vs. Pull Debate: Why Prometheus Wins
Most legacy monitoring systems wait for agents to push data to a central server. This sounds fine until your traffic spikes. Suddenly, your monitoring server is DDoS-ed by your own infrastructure trying to report that it's busy.
Prometheus flips this. It uses a pull model over HTTP. Your services expose a simple /metrics endpoint, and Prometheus scrapes them at a set interval. If a service goes down, Prometheus records it immediately because the scrape fails. No queues to clog, no agents to crash.
Configuration: Simplicity in YAML
Forget complex XML. Here is what a basic prometheus.yml looks like to scrape a local Docker service running on port 8080. This works perfectly on a CoolVDS CentOS 7 instance:
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'microservice_api'
target_groups:
- targets: ['localhost:8080']
With Docker 1.6, you can link containers and have Prometheus scrape them by service name. It is clean, it is lightweight, and it handles the churn of microservices without manual intervention.
The Storage Bottleneck: TSDB Needs IOPS
Here is the "war story" part. We recently helped a client migrating a high-traffic ad-tech platform to a microservices architecture. They deployed Prometheus to monitor roughly 500 containers. Within two days, their monitoring server crawled to a halt.
Why? Time Series Databases (TSDB) eat Disk I/O for breakfast.
Every metric, every label, every timestamp requires a write operation. Prometheus (currently roughly v0.14) is efficient, but if you are writing thousands of samples per second to a standard spinning HDD (or a cheap, oversold VPS), your iowait will skyrocket. The CPU sits idle while the disk struggles to keep up.
Pro Tip: Check your disk latency. If your write latency exceeds 10ms consistently, your monitoring data will have gaps. Runiostat -x 1and watch the%utilcolumn. If it hits 100%, you need better storage.
This is where CoolVDS differs from the budget providers. We utilize high-performance SSD storage backed by robust RAID controllers. For a heavy write workload like Prometheus, you don't just need space; you need consistent IOPS. We don't throttle your I/O just because you decided to log every HTTP request.
Data Sovereignty in Norway
Monitoring data often contains more sensitive information than developers realize. URLs, user IDs in labels, or database query snippets can leak into your metrics. Under the Norwegian Personal Data Act (Personopplysningsloven), you are responsible for where this data lives.
Hosting your monitoring stack on a US-based cloud giant introduces latency and legal ambiguity. By keeping your Prometheus instance on a generic VPS Norway provider, you might get the location right, but miss the performance. CoolVDS gives you both: low latency connection to the NIX (Norwegian Internet Exchange) in Oslo, and strict adherence to Norwegian privacy standards. Your data stays in our Oslo data center, protected by Norwegian law, not buried in a massive foreign server farm.
Next Steps
The transition to microservices is not just about code; it is about visibility. Don't let your monitoring stack become the single point of failure.
1. Spin up a CoolVDS SSD VPS (CentOS 7 or Ubuntu 14.04 recommended).
2. Download the latest Prometheus binary.
3. Point it at your Docker containers.
Need raw I/O power for your metrics? Deploy your CoolVDS instance in 55 seconds and see the difference.