An open-source monitoring system with a dimensional data model.
Prometheus is a powerful open-source monitoring and alerting toolkit.
It features a multi-dimensional data model, a flexible query language (PromQL), and integrates tightly with Grafana.
Key strengths:
We started this exact setup from scratch in a clean Linux machine on Nov 1, 2026 and checked it through Prometheus's own API: every check passed. Recipes are re-checked regularly and removed if they stop working.
mkdir -p prometheus && cd prometheus
curl -fsSL https://open-source.store/tools/prometheus/compose.yml -o compose.ymltouch .envdocker compose up -dservices:
prometheus:
image: prom/prometheus:v3.15.1
ports:
- "127.0.0.1:9090:9090"
command:
- "--config.file=/etc/prometheus/prometheus.yml"
- "--storage.tsdb.path=/prometheus"
volumes:
- prometheus_data:/prometheus
restart: always
healthcheck:
test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://127.0.0.1:9090/-/healthy"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
volumes:
prometheus_data: {}
Ubuntu 24.04 · Apple container, Docker 29.1.3, Compose 2.40.3+ds1-0ubuntu1~24.04.1. Images pulled in 43 s: prom/prometheus:v3.15.1.
Based on the upstream setup. Official Docker setup with named volume for TSDB data. Image pinned to v3.15.1, bound to 127.0.0.1 because Prometheus has no native authentication, web lifecycle disabled, and healthcheck added.
prometheus-1 | 2026-11-01T08:06:32.916513047Z time=2026-11-01T08:06:32.916Z level=INFO source=main.go:1770 msg="updated GOGC" old=100 new=75 prometheus-1 | 2026-11-01T08:06:32.917295464Z time=2026-11-01T08:06:32.917Z level=INFO source=main.go:824 msg="Leaving GOMAXPROCS=2: CPU quota undefined" component=automaxprocs prometheus-1 | 2026-11-01T08:06:32.917356797Z time=2026-11-01T08:06:32.917Z level=INFO source=memlimit.go:198 msg="GOMEMLIMIT is updated" component=automemlimit package=github.com/KimMachineGun/automemlimit/memlimit GOMEMLIMIT=3820057804 previous=9223372036854775807 prometheus-1 | 2026-11-01T08:06:32.917370839Z time=2026-11-01T08:06:32.917Z level=INFO source=main.go:933 msg="Starting Prometheus Server" mode=server version="(version=3.15.1, branch=HEAD, revision=bae3eced0a5369e050e83ea73bc381d7c4b1a719)" prometheus-1 | 2026-11-01T08:06:32.917413339Z time=2026-11-01T08:06:32.917Z level=INFO source=main.go:938 msg="operational information" build_context="(go=go1.27.3, platform=linux/arm64, user=root@03bc6b0f3ef7, date=20261021-13:34:13, tags=netgo,builtinassets)" host_details="(Linux 6.18.35 #1 SMP Mon Jun 15 12:55:27 UTC 2026 aarch64 712eaad3ab2d (none))" fd_limits="(soft=1048575, hard=1048576)" vm_limits="(soft=unlimited, hard=unlimited)" prometheus-1 | 2026-11-01T08:06:33.004309714Z time=2026-11-01T08:06:33.004Z level=INFO source=web.go:727 msg="Start listening for connections" component=web address=0.0.0.0:9090 prometheus-1 | 2026-11-01T08:06:33.004683339Z time=2026-11-01T08:06:33.004Z level=INFO source=main.go:1499 msg="Starting TSDB ..." prometheus-1 | 2026-11-01T08:06:33.006650047Z time=2026-11-01T08:06:33.006Z level=INFO source=tls_config.go:381 msg="Listening on" component=web address=[::]:9090 prometheus-1 | 2026-11-01T08:06:33.006685422Z time=2026-11-01T08:06:33.006Z level=INFO source=tls_config.go:384 msg="TLS is disabled." component=web http2=false address=[::]:9090 prometheus-1 | 2026-11-01T08:06:33.007210256Z time=2026-11-01T08:06:33.007Z level=INFO source=head.go:753 msg="Replaying on-disk memory mappable chunks if any" component=tsdb prometheus-1 | 2026-11-01T08:06:33.007213006Z time=2026-11-01T08:06:33.007Z level=INFO source=head.go:838 msg="On-disk memory mappable chunks replay completed" component=tsdb duration=958ns prometheus-1 | 2026-11-01T08:06:33.007221256Z time=2026-11-01T08:06:33.007Z level=INFO source=head.go:846 msg="Replaying WAL, this may take a while" component=tsdb prometheus-1 | 2026-11-01T08:06:33.007453006Z time=2026-11-01T08:06:33.007Z level=INFO source=head.go:941 msg="WAL segment loaded" component=tsdb segment=0 maxSegment=0 duration=163.958µs prometheus-1 | 2026-11-01T08:06:33.007457089Z time=2026-11-01T08:06:33.007Z level=INFO source=head.go:978 msg="WAL replay completed" component=tsdb checkpoint_replay_duration=38µs wal_replay_duration=174.542µs wbl_replay_duration=42ns chunk_snapshot_load_duration=0s mmap_chunk_replay_duration=958ns total_replay_duration=225.667µs prometheus-1 | 2026-11-01T08:06:33.008324839Z time=2026-11-01T08:06:33.008Z level=INFO source=main.go:1520 msg="filesystem information" fs_type=EXT4_SUPER_MAGIC prometheus-1 | 2026-11-01T08:06:33.008329089Z time=2026-11-01T08:06:33.008Z level=INFO source=main.go:1523 msg="TSDB started" prometheus-1 | 2026-11-01T08:06:33.008330381Z time=2026-11-01T08:06:33.008Z level=INFO source=main.go:1721 msg="Loading configuration file" filename=/etc/prometheus/prometheus.yml prometheus-1 | 2026-11-01T08:06:33.008485922Z time=2026-11-01T08:06:33.008Z level=INFO source=main.go:1137 msg="TSDB retention updated" duration=15d size=0B percentage=0 prometheus-1 | 2026-11-01T08:06:33.008894714Z time=2026-11-01T08:06:33.008Z level=INFO source=main.go:1763 msg="Completed loading of configuration file" db_storage=21.125µs remote_storage=1.291µs web_handler=333ns query_engine=583ns scrape=101µs scrape_sd=10.209µs notify=268.792µs notify_sd=6.208µs rules=875ns tracing=1.916µs filename=/etc/prometheus/prometheus.yml totalDuration=571.75µs prometheus-1 | 2026-11-01T08:06:33.008902089Z time=2026-11-01T08:06:33.008Z level=INFO source=main.go:1484 msg="Server is ready to receive web requests." prometheus-1 | 2026-11-01T08:06:33.008932006Z time=2026-11-01T08:06:33.008Z level=INFO source=manager.go:235 msg="Starting rule manager..." component="rule manager"
Lint, codegen, breaking-change checks and dependency management in one Git-native CLI. Open source, no registry lock-in.
Show that Prometheus is listed as an open-source alternative. Paste into your README: