Eric Gullickson
c88fbcdc4e
fix: Update grafana dashboards
Deploy to Staging / Build Images (push) Successful in 35s
Deploy to Staging / Deploy to Staging (push) Successful in 51s
Deploy to Staging / Verify Staging (push) Successful in 2m31s
Deploy to Staging / Notify Staging Ready (push) Successful in 7s
Deploy to Staging / Notify Staging Failure (push) Has been skipped
2026-02-06 13:50:17 -06:00
Eric Gullickson
462d306783
fix: resolve staging deployment issues with Traefik, Loki, and Alloy (refs #105 )
...
Deploy to Staging / Build Images (pull_request) Successful in 1m21s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 48s
Deploy to Staging / Verify Staging (pull_request) Successful in 2m37s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 8s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
- Exclude blue-green.yml from staging Traefik by mounting dynamic-staging/
directory (only grafana.yml + middleware.yml) instead of dynamic/ which
contains production-only blue-green routing config
- Disable Loki healthcheck: distroless image has no /bin/sh so CMD-SHELL
healthchecks cannot execute; Alloy and Grafana verify Loki connectivity
- Fix Alloy healthcheck: replace wget (not in image) with bash /dev/tcp
- Add Grafana staging domain override (logs.staging.motovaultpro.com)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-06 10:51:00 -06:00
Eric Gullickson
842b0eb945
docs: update config/CLAUDE.md with Grafana subdirectories (refs #111 )
...
Deploy to Staging / Build Images (pull_request) Successful in 34s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 51s
Deploy to Staging / Verify Staging (pull_request) Successful in 2m36s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 8s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-06 10:32:58 -06:00
Eric Gullickson
4b2b318aff
feat: add Grafana alerting rules and documentation (refs #111 )
...
Deploy to Staging / Build Images (pull_request) Successful in 36s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 51s
Deploy to Staging / Verify Staging (pull_request) Successful in 2m36s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 8s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
Configure Grafana Unified Alerting with file-based provisioned alert
rules, contact points, and notification policies. Add stable UID to
Loki datasource for alert rule references. Update LOGGING.md with
dashboard descriptions, alerting rules table, and LogQL query reference.
Alert rules: Error Rate Spike (critical), Container Silence for
backend/postgres/redis (warning), 5xx Response Spike (critical).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-06 10:19:00 -06:00
Eric Gullickson
c891250946
feat: add Infrastructure Grafana dashboard (refs #110 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-06 10:11:38 -06:00
Eric Gullickson
0345e3976f
feat: add Error Investigation Grafana dashboard (refs #109 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-06 09:54:52 -06:00
Eric Gullickson
9e6f130fa6
feat: add API Performance Grafana dashboard (refs #108 )
...
Log-based dashboard with 6 panels: request rate, response time
distribution (p50/p95/p99), HTTP status code distribution, request
volume by endpoint, slowest endpoints, and status code breakdown.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-06 09:48:11 -06:00
Eric Gullickson
33e561e537
feat: add Application Overview Grafana dashboard (refs #107 )
...
Adds file-provisioned dashboard with 5 panels:
- Container Log Volume Over Time (all 9 containers)
- Error Rate Across All Containers (percentage stat)
- Log Level Distribution Per Container (stacked bar chart)
- Container Health Status (green/red per container)
- Total Request Count Over Time (backend requests/min)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-06 08:24:08 -06:00
Eric Gullickson
6f1195d907
feat: add Grafana dashboard provisioning infrastructure (refs #106 )
...
Add file-based dashboard provisioning config and mount dashboards
directory into Grafana container for auto-loading dashboard JSON files.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-06 08:19:28 -06:00
Eric Gullickson
10d604463f
Merge branch 'main' of 172.30.1.72:egullickson/motovaultpro
Deploy to Staging / Build Images (push) Successful in 6m0s
Deploy to Staging / Deploy to Staging (push) Successful in 51s
Deploy to Staging / Verify Staging (push) Successful in 2m31s
Deploy to Staging / Notify Staging Ready (push) Successful in 7s
Deploy to Staging / Notify Staging Failure (push) Has been skipped
2026-02-05 21:49:45 -06:00
Eric Gullickson
87ee498af7
chore: update docs
2026-02-05 21:49:35 -06:00
Eric Gullickson
38cc8ba5c2
fix: remove broken request-id middleware with invalid Go template (refs #103 )
...
Deploy to Staging / Build Images (pull_request) Successful in 4m50s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 1m1s
Deploy to Staging / Verify Staging (pull_request) Successful in 2m36s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 8s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
The request-id middleware used {{ .Request.Host }} which is not available
at config load time in the file provider. This template error blocked
the entire file provider from loading, preventing all file-based
middlewares (including grafana-ipwhitelist) from being registered.
The middleware was unused (not referenced by any router or chain) and
the backend already generates X-Request-Id via randomUUID().
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-05 20:54:49 -06:00
Eric Gullickson
9ed4afb9a8
fix: rename ipWhiteList to ipAllowList for Traefik v3 compatibility (refs #103 )
...
Deploy to Staging / Build Images (pull_request) Successful in 33s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 52s
Deploy to Staging / Verify Staging (pull_request) Failing after 6m8s
Deploy to Staging / Notify Staging Ready (pull_request) Has been skipped
Deploy to Staging / Notify Staging Failure (pull_request) Failing after 9s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-05 20:40:28 -06:00
Eric Gullickson
8331bde4b0
docs: update 5-container refs to 9-container architecture (refs #101 )
...
Deploy to Staging / Build Images (pull_request) Successful in 34s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 51s
Deploy to Staging / Verify Staging (pull_request) Successful in 2m37s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 8s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
Update all documentation to reflect the current 9-container architecture
(6 application + 3 logging) after the logging stack upgrades. Add missing
OCR, Loki, Alloy, and Grafana services to context.json.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-05 20:11:31 -06:00
Eric Gullickson
fc2dc21547
chore: upgrade Loki 2.9.0 to 3.6.1 with tsdb/v13 schema (refs #98 )
...
Deploy to Staging / Build Images (pull_request) Successful in 34s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 53s
Deploy to Staging / Verify Staging (pull_request) Successful in 2m31s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 8s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
- Update Loki image from 2.9.0 to 3.6.1 in docker-compose.yml
- Migrate schema from v11 to v13, store from boltdb-shipper to tsdb
- Update storage_config to use tsdb_shipper with new index paths
- Remove deprecated shared_store config (removed in Loki 3.0)
- Disable structured metadata (not needed for current setup)
- Preserve 30-day retention policy (720h)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-05 19:26:08 -06:00
Eric Gullickson
1b20673ff6
chore: replace Promtail with Grafana Alloy for log collection (refs #97 )
...
Promtail 2.9.0 embeds Docker client API v1.42 which is incompatible with
Docker Engine v29 (minimum API v1.44). Grafana Alloy v1.12.2 resolves this
by using a compatible Docker client.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-05 19:04:41 -06:00
Eric Gullickson
bac4d340bc
fix: Prod deployment fixes
Deploy to Staging / Build Images (push) Successful in 32s
Deploy to Staging / Deploy to Staging (push) Successful in 22s
Deploy to Staging / Verify Staging (push) Successful in 3m21s
Deploy to Staging / Notify Staging Ready (push) Successful in 34s
Deploy to Staging / Notify Staging Failure (push) Has been skipped
2026-02-04 21:31:39 -06:00
Eric Gullickson
1cf54fb254
feat: add Promtail, Loki, and Grafana log aggregation stack (refs #86 )
...
Deploy to Staging / Build Images (pull_request) Successful in 31s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 35s
Deploy to Staging / Verify Staging (pull_request) Successful in 2m37s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 8s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
- Add Promtail for Docker log scraping with container discovery
- Add Loki for log storage with 30-day retention
- Add Grafana with Loki datasource auto-provisioned
- Add IP whitelist middleware restricting Grafana to RFC1918 ranges
- Container count: 6 → 9
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-04 20:16:53 -06:00
Eric Gullickson
2ecefc1e10
chore: configure Traefik X-Request-Id header forwarding (refs #83 )
...
Deploy to Staging / Build Images (pull_request) Successful in 30s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 31s
Deploy to Staging / Verify Staging (pull_request) Successful in 2m19s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 7s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
- Add X-Request-Id to access log fields for request correlation
- Add request-id middleware documenting backend UUID generation
- Add X-Request-Id to CORS allowed headers
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-03 19:41:19 -06:00
Eric Gullickson
b933329539
feat: update docs for token efficient usage
Deploy to Staging / Build Images (push) Has started running
Deploy to Staging / Deploy to Staging (push) Has been cancelled
Deploy to Staging / Verify Staging (push) Has been cancelled
Deploy to Staging / Notify Staging Ready (push) Has been cancelled
Deploy to Staging / Notify Staging Failure (push) Has been cancelled
2026-01-03 11:59:47 -06:00
Eric Gullickson
17d868a766
fix: Traefik errors.
Deploy to Staging / Build Images (push) Successful in 21s
Deploy to Staging / Deploy to Staging (push) Successful in 27s
Deploy to Staging / Verify Staging (push) Successful in 6s
Deploy to Staging / Notify Staging Ready (push) Successful in 6s
Deploy to Staging / Notify Staging Failure (push) Has been skipped
2025-12-30 10:48:57 -06:00
Eric Gullickson
9b0de6a5b8
fix: I dunno, I'm making git server changes
2025-12-29 08:44:49 -06:00
Eric Gullickson
09410c3c3f
fix: ETL vehicle db import fixes
2025-12-26 14:54:51 -06:00
Eric Gullickson
9eb025a21f
Update to production Let's Encrypt certificates
2025-12-20 11:14:44 -06:00
Eric Gullickson
7a2e11953a
Update config defs
2025-12-18 13:40:57 -06:00
Eric Gullickson
667632f54b
Track config files for CI/CD deployment
...
Config files were previously gitignored, causing CI/CD pipeline to fail
because Docker would create directories instead of mounting the expected files.
- Remove config/** from .gitignore
- Track all config files (secrets still ignored)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-18 13:28:27 -06:00
Eric Gullickson
d8d0ada83f
Docs Cleanup
2025-11-03 16:12:29 -06:00
Eric Gullickson
eeb20543fa
Homepage Redesign
2025-11-03 14:06:54 -06:00
Eric Gullickson
3693ce5761
Docs Cleanup
2025-11-02 10:34:43 -06:00
Eric Gullickson
225520ad30
Agentic AI Implementation
2025-10-10 23:26:07 -05:00
Eric gullickson
cb98336d5e
k8s prepwork
2025-09-18 11:04:41 -05:00