Commit Graph
17111 Commits
Author SHA1 Message Date
Aditya Tripathi faca466cd6 fix(metrics): align fleet series by time bucket, harden fleet page inputs
Address review findings on the fleet metrics page.

Data correctness:
- bucket raw Sentinel samples into epoch-aligned windows (5m/30m/2h per range)
  and average them, replacing per-server LTTB. Every server now reports the
  same bucket timestamps, so the fleet sums add up point by point instead of
  zigzagging between servers (and RX+TX really combine)
- keep only the root mount in disk history, matching HasMetrics::getDiskMetrics
- leave sparkline gaps as null instead of 0, so absent samples read as gaps

Robustness:
- normalize containerMetric in mount()/updatedContainerMetric(), so
  /metrics?cmetric=foo no longer throws an undefined array key
- include the server uuid in the container row wire:key; system containers
  share one Sentinel id across servers
- round the range start to the minute so the 60s history cache can hit
- cap the Sentinel curl with --max-time 10, so one hung request cannot stall
  the serial per-server loop

UI:
- pass the spark time axis on first paint, so tooltips no longer show 1970
- show the active series name (RX/TX) in the server network chart tooltip
2026-09-18 07:44:22 +00:00
Aditya Tripathi ab436942c9 feat(metrics): polish fleet + server metrics UI/UX
Refine the /metrics fleet page and align the per-server metrics page with it.

Fleet overview:
- add live sparklines to the CPU/Memory/Disk/Network KPI tiles (shared axis,
  capped to ~40 points per sparkline)
- fill the Servers online + Containers tiles (fleet-health bar, hottest
  container) so all six tiles read as one system
- scope-aware labels: drop the "Fleet" prefix and helper copy when a single
  server is selected

Trend charts:
- hero layout: CPU spans full width, the other four form a 2x2 grid
- apply the same hero layout + skeleton to the per-server page for consistency

Hottest containers table:
- add a rank column and a per-row magnitude bar scaled to the busiest container
- fix a leaked Blade @break directive that rendered literally and forced
  horizontal scroll on the Network tab
- keep the value column a fixed width so bars align across rows

Live refresh:
- add analytics-style loading feedback to the range tabs and server filter
- stable wire:key on table rows + width transitions on bars so data glides
  on live refresh instead of snapping

Generalize the shared _sparkline partial (optional color/label/format) so it
serves non-traffic metrics without changing analytics behaviour.
2026-09-17 06:30:59 +00:00
Aditya Tripathi 701c81b28f fix(metrics): custom chart tooltip so it has a background (default is stripped) 2026-09-16 09:30:56 +00:00
Aditya Tripathi 90e6efadad fix(metrics): rAF chart render, container image resolution, tab loading state, hi-fi skeleton 2026-09-16 09:29:32 +00:00
Aditya Tripathi 6b0c97211a fix(metrics): downsample history, re-rank containers without refetch, add live refresh 2026-09-16 09:18:05 +00:00
Aditya Tripathi 2aa656bece refactor(metrics): mirror analytics header/overview card, declutter KPI tiles 2026-09-16 08:49:20 +00:00
Aditya Tripathi f3fdee90da feat(metrics): add disk/network/load charts to the per-server metrics page 2026-09-16 08:43:37 +00:00
Aditya Tripathi 9fced09bd1 fix(metrics): div-grid tables, chart initial render, metrics skeleton, graph icon 2026-09-16 08:39:14 +00:00
Aditya Tripathi fbce977dbf test(metrics): assert KPI tiles, stale badge, and container toggle render 2026-09-16 08:07:01 +00:00
Aditya Tripathi c2310a7465 docs(metrics): refresh DESIGN for disk/network/load history and fleet page 2026-09-16 08:06:08 +00:00
Aditya Tripathi 6b9086795f feat(metrics): render fleet KPIs, tables, and trend charts 2026-09-16 08:05:41 +00:00
Aditya Tripathi 5273a4c035 feat(metrics): build and dispatch fleet trend chart payloads 2026-09-16 08:01:11 +00:00
Aditya Tripathi fb021c3d9d feat(metrics): populate fleet KPIs, server rows, and container ranking 2026-09-16 07:58:55 +00:00
Aditya Tripathi ba8ed4e8fb feat(metrics): add SentinelMetricsClient with graceful degradation 2026-09-16 07:56:44 +00:00
Aditya Tripathi bc3ec590d0 feat(metrics): add bucket series merge and container ranking 2026-09-16 07:55:50 +00:00
Aditya Tripathi 30aadf0367 feat(metrics): aggregate fleet KPIs with weighted math 2026-09-16 07:55:29 +00:00
Aditya Tripathi f950f9058b feat(metrics): add pressure threshold helper 2026-09-16 07:54:57 +00:00
Aditya Tripathi dbcef807ae feat(metrics): add reachable /metrics fleet page skeleton 2026-09-16 07:54:34 +00:00
github-actions[bot] 69d1e89ac2 Merge remote-tracking branch 'origin/main' into next 2026-09-16 03:14:20 +00:00
Andras Bacsai ede9d8417a build(minio): use packaged mx client in development images 2026-09-15 23:00:45 +02:00
Andras Bacsai 113a2f229d fix(restarts): reset legacy restart limits during migration
Normalize existing resources with the old restart limit defaults so restart limits remain opt-in.
v4.3.21
2026-09-15 13:28:50 +02:00
Andras Bacsai ab30f95ad9 feat(restarts): make resource restart limits opt-in
Default restart limits to zero for applications, previews, and services, and bump the Coolify version to 4.3.21.
2026-09-15 12:58:59 +02:00
Andras Bacsai 8ab54da2ac style(ui): remove description placeholders and normalize control heights 2026-09-15 12:28:16 +02:00
Andras Bacsai 776c56f947 fix(helper): hide deployment details unless explicitly requested 2026-09-15 11:38:33 +02:00
Andras Bacsai 596cb39849 chore(traefik): update supported image versions 2026-09-15 10:14:03 +02:00
github-actions[bot] 02ab8db270 Merge remote-tracking branch 'origin/main' into next 2026-09-15 03:14:58 +00:00
Andras Bacsai 065ca9c861 fix(helper): prefer newer fetched helper version
Use a CDN-fetched helper version when it is newer than the bundled
version, while ignoring stale stored versions.
v4.3.20
2026-09-14 20:50:16 +02:00
Andras Bacsai 398f32712a docs(ai): consolidate engineering lessons 2026-09-14 20:41:06 +02:00
Andras Bacsai 246b2cfe0a chore(release): bump Coolify version to 4.3.20 2026-09-14 17:01:53 +02:00
Andras Bacsai 22fbbd74ff fix(sentinel): restore hourly version checks for enabled servers
Dispatch Sentinel checks hourly for eligible servers, including healthy
installations, while continuing to exclude build servers.
2026-09-14 15:43:52 +02:00
Andras Bacsai 9b07be2d68 chore(helper): bump helper version to 1.0.17 2026-09-14 13:36:46 +02:00
github-actions[bot] b903def71b Merge remote-tracking branch 'origin/main' into next 2026-09-14 11:33:22 +00:00
Andras Bacsai b692b27b4e chore(docker): pin AIStor MinIO client release 2026-09-14 13:32:30 +02:00
Andras Bacsai fc6c3e1953 chore: merge main into next (#11784) 2026-09-14 13:31:30 +02:00
Andras Bacsai 2c1744fbd2 Merge remote-tracking branch 'origin/next' into pr-11784-automation/sync-main-to-next 2026-09-14 13:30:17 +02:00
Andras Bacsai e07d929927 chore: merge main into next (#11732) 2026-09-14 13:27:46 +02:00
Andras Bacsai 6a8cee4630 Merge remote-tracking branch 'origin/next' into automation/sync-main-to-next 2026-09-14 13:26:19 +02:00
Andras Bacsai fde274c358 chore(development): switch MinIO client to AIStor image 2026-09-14 13:02:49 +02:00
Andras Bacsai 59eacc9ff8 fix(services): keep Traefik subtype from stored service type
Label service apps as application even after the compose image looks like a database. Do not auto-heal existing deployments.
2026-09-13 21:09:01 +02:00
Andras Bacsai 7d11bc92f7 feat(logs): accept all for log lines and keep -1
API log endpoints and the GetLogs UI now treat `all` as unbounded
output, with `-1` remaining as a compatibility alias. MCP still
falls back to a positive default. Traefik version checks run from
CheckForUpdatesJob instead of a weekly schedule.
2026-09-13 15:25:20 +02:00
Andras Bacsai 6f58ad4b97 fix(backups): keep service DB context after deleting a schedule
Cache the related database before deleting the backup so authorization,
server lookup, and the service redirect do not touch a deleted morph.
Skip rendering after delete and cover the service-database path.
2026-09-12 08:54:17 +02:00
Andras Bacsai 33f453912a chore(sentinel): bump sentinel version from 0.0.22 to 1.0.1 v4.3.19 2026-09-10 17:41:29 +02:00
Andras Bacsai fc9e61b7b4 feat(services): open resource settings in a modal with restart limits
Move service application and database settings into an embedded modal with a footer, subtitle helper, and Docker restart-count control. Accept max_restart_count on the service applications API, cap compose YAML collection aliases, and tighten status, backup, and database sidebar layouts.
2026-09-10 17:39:56 +02:00
Andras Bacsai d24ee35824 fix(s3): allow uppercase letters in S3 bucket names
S3-compatible and legacy buckets may include uppercase letters. Relax the bucket name pattern, validation messages, and tests so those names are accepted while still rejecting invalid characters and formats.
2026-09-10 15:12:53 +02:00
Andras Bacsai 3f1235158d fix(domains): detect Docker Compose domain conflicts
Normalize schemes when comparing routing identities and include per-service
Compose domains in conflict checks. Show the conflicting service name and
align the service domains heading layout.
2026-09-10 14:53:01 +02:00
Andras Bacsai 3229141126 fix(domains): compact service cards at medium widths 2026-09-10 14:08:46 +02:00
Andras Bacsai 6028461f92 fix(domains): unify editing and queued DNS checks
Add indexing, redirect, and hostname regeneration controls to domain editors. Queue DNS checks only for scheme or hostname changes and show progress consistently across application, service, and preview domains.
2026-09-10 14:00:50 +02:00
Andras Bacsai a0a8c86752 fix(domains): ignore hostless URLs in deployment and port overrides 2026-09-10 12:33:50 +02:00
Andras Bacsai 36befcfecd fix(service): avoid storing inherited ports as overrides 2026-09-10 12:08:06 +02:00
Andras Bacsai 0134401f7c fix(service): write compose .env files atomically via temp rename
Replace direct .env overwrite with a unique temp file and mv so a
partial write cannot leave a truncated environment file on disk.
2026-09-10 09:24:37 +02:00