Commit Graph
6 Commits
Author SHA1 Message Date
tiennm99 1a894935d1 fix: expand one-line rule blocks (river requires newline-separated attrs)
caught by new ci — alloy fmt rejected `rule { a = b c = d }` on one line.
river/flow config language requires each attribute on its own line.
2026-04-24 09:55:15 +07:00
tiennm99 2ff943190c ci: add mit license + validate workflow
workflow runs on push to main and all prs:
- docker compose config -q (yaml + env interpolation)
- yq extract embedded alloy config
- alloy fmt (syntax check)
2026-04-24 09:54:03 +07:00
tiennm99 ca22737dfb docs: add readme with quick-start, multi-host pattern, security posture, free-tier budget 2026-04-24 09:49:34 +07:00
tiennm99 f5955a82f0 refactor: simplify for standalone single-host deployment
- merge discovery.relabel "metrics" into prometheus.relabel "filter"
  (instance label + keep-filter in one component)
- move logs 'instance' label to loki.write external_labels (DRY, one source)
- drop alloy container log exclusion (~500kb/day trivial; adds visibility
  into alloy's own health via loki)

net: -5 lines, one fewer component, same functionality
2026-04-24 09:43:32 +07:00
tiennm99 b055d4f66b refactor: tighten filters, add missing metrics + journal labels
correctness:
- drop dead ALLOY_HOSTNAME env passthrough (alloy uses constants.hostname)
- tighten netdev regex so iface names like 'lore0' no longer match 'lo'
- widen alloy-container drop to /alloy.* (catches renamed variants)

more info for same cost (~80 extra series, still ~1.6k of 10k):
- add MemFree, disk IOPS (reads/writes_completed), disk saturation
  (io_time_weighted), inode tracking (filesystem_files, _files_free),
  network drops, container working_set memory, container_last_seen,
  machine_scrape_error
- add journal unit + level labels (log querying by service/severity)
- docker discovery refresh 60s -> 5s (fast pickup of new containers)

efficiency:
- loki batch_wait=5s, batch_size=1MiB (~5x fewer push requests)

layout:
- drop redundant expose: [12345] (other containers can reach it anyway)
2026-04-24 09:27:57 +07:00
tiennm99 d0fb74ca58 feat: initial single-container alloy setup for grafana cloud free
- node_exporter (host) + cadvisor (containers) via one scrape job
- docker container logs + systemd journal to loki
- filter regex keeps only metrics needed for standard dashboards
- sized for grafana cloud free tier (~10k active series cap)
- shell env driven (no .env file); fail-fast on missing vars
- least-privilege: cap_drop all, no privileged, no pid host, ui not published
2026-04-24 09:21:29 +07:00