Skip to content

dawarich

v1.7.7 Breaking

This release includes 4 breaking changes for platform teams planning a safe upgrade.

Published 25d Privacy & Ad-blocking
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

google-maps gpslogger self-hosted maps memory owntracks
+1 more
timeline

Summary

AI summary

Prometheus metrics backend migrated to Yabeda, requiring config updates and metric name changes.

Full changelog

⚠️ Breaking changes

Prometheus metrics backend migrated to Yabeda.

Dawarich now uses the Yabeda monitoring framework instead of discourse/prometheus_exporter. Self-hosters who scrape Prometheus metrics from Dawarich should update their configuration.

If Sidekiq is unreachable during a scrape, web returns its own metrics only and
logs a warning. Prometheus sees a momentary gap in sidekiq_* rather than a
failed scrape.

Scrape target (requires HTTP basic auth with METRICS_USERNAME / METRICS_PASSWORD):

  • Web: http://dawarich_app:3000/metrics

Custom dawarich_archive_* metric names are unchanged. Dashboards and alerts built on these metrics continue to work.

Infrastructure metric names have changed. If you have dashboards built on ruby_*, active_record_*, or similar metrics emitted by prometheus_exporter, you must update them:

| Category | Before | After |
|---|---|---|
| HTTP requests (total) | ruby_http_requests_total | rails_requests_total |
| HTTP request duration | ruby_http_request_duration_seconds | rails_request_duration |
| Sidekiq job count | ruby_sidekiq_jobs_total | sidekiq_jobs_executed_total |
| Sidekiq failed jobs | ruby_sidekiq_failed_jobs_total | sidekiq_jobs_failed_total |
| Sidekiq job duration | ruby_sidekiq_job_duration_seconds | sidekiq_job_runtime_seconds |
| Sidekiq queue latency | ruby_sidekiq_queue_latency_seconds | sidekiq_queue_latency |
| Sidekiq queue backlog | ruby_sidekiq_queue_backlog_total | sidekiq_jobs_waiting_count |
| Sidekiq process count | ruby_sidekiq_process_count | sidekiq_active_processes |
| Puma workers | ruby_puma_workers | puma_workers |
| Puma backlog | ruby_puma_request_backlog | puma_backlog |
| Puma thread pool capacity | ruby_puma_thread_pool_capacity | puma_pool_capacity |
| ActiveRecord pool | active_record_connection_pool_connections | activerecord_connection_pool_size |
| Process/GC (e.g. ruby_rss, ruby_heap_live_slots) | emitted | not emitted by default; add a custom Yabeda group if needed |

Removed environment variables:

  • PROMETHEUS_EXPORTER_HOST, PROMETHEUS_EXPORTER_HOST_SIDEKIQ — no longer needed. Metrics are served in-process by each application.

Retained environment variables:

  • PROMETHEUS_EXPORTER_ENABLED — still the single on/off switch.
  • METRICS_USERNAME, METRICS_PASSWORD — unchanged.
  • PROMETHEUS_EXPORTER_PORT — port the in-process Sidekiq metrics exporter binds to (default 9394).

New optional environment variable:

  • SIDEKIQ_METRICS_URL — internal URL the web container uses to fetch Sidekiq metrics (default http://dawarich_sidekiq:9394/metrics). Override on Dokku, Kubernetes, or any deployment where the worker container's hostname differs from the docker-compose default.

Prometheus scrape config example:

scrape_configs:
  - job_name: dawarich
    metrics_path: /metrics
    basic_auth:
      username: prometheus     # set via METRICS_USERNAME
      password: prometheus     # set via METRICS_PASSWORD
    static_configs:
      - targets: ['dawarich_app:3000']

Fixed

  • Fixed monthly stats failing with a "Stats update failed" notification when the month's distance exceeded the int4 limit (2,147,483,647 m ≈ 2.15M km). Affected months stayed stuck on the prior value until recalculated. #1996
  • 500 error on the imports page. #2683
  • Insights weekly pattern now refreshes after monthly stats change, instead of showing a stale snapshot until the next monthly digest job runs. #2478
  • Points with no reverse-geocoding result (ocean, wilderness) are now marked as attempted instead of being re-queued every nightly run; use "Start Reverse Geocoding" to retry after switching providers. #2271
  • Activity detection now falls back to displacement when the tracker reports 0 m/s, so OwnTracks Significant Change mode and similar low-power setups stop misclassifying real movement as stationary. Run Map v2 → Settings → Recalculate tracks & stats to apply to existing tracks. #2390
  • Redis no longer balloons (multi-GB) when browsing photos with Immich or Photoprism connected. Photo thumbnails are no longer copied into the server-side Redis cache; the browser caches them directly via Cache-Control instead. #1609
  • Drag-selecting a region on the map now includes visits attached to your saved Areas (Home, Work, etc.), instead of silently dropping area-only visits from the visit tray. #2420

💙 This release is supported by Steven B., James Manolios, chenrik, aldumil, derpderpington, Chippie, dint, jhalpern, Lex Fradski, Schlufo, cyberswan.at, craftyklaus, Andre, hogenf, naraxius, Embrace, martin4861, Alex, evetters, GregF, Jon Coffee, Lukas, Robbie G, Kilian, Hans G, Chris, tabaha, Andre, Michael C, Chris, Jonah B., Dante, daallex, Tanner A., Milien M., Mathias, Travis S., Matthew F., Johnathan D., bleibdirtroy, no1etal, dixet, Bailey J., Alex D., Benjamin M., Daniel A., Florian, BeeHappy, ChemistryDachshund, OrangeWindies, Michelangelo V., Edward, Erazem Z., Denis Abt, Tony G., Andrew D., Lomky, Osamu Y., Simon van B., Linus T., Christian C., Sebastian, Jan K., Nathan T., Max G., Lars N., Karol B., Konstantin, Johannes H., t3hero, g3lin, Tim, Philipp M., Brand K., Pablo F. M., Jon H., fkB, Mikael, Dániel A., Hai_Tsung, ShooTex, GreenTentacle, PinkahPandah, David, Ken, Denna G., Andre, Hendl91, Jon H., MrRed, Arkadiusz Z., Jake, Bator T., Alex J. H., eps-dev, twiggu, Dragan V., Jerome G., Carsten M., Sheya B., ArnyminerZ, Gustav B., higgs01, Frank F., F. J. Kruz, Jon D., Alexander J. H., Daniel D., Gonzalo M., Ricardo T., Christof Z., Abc123, Narrator, JohnSmith21, smartbert, A.M., Matthew Z., Dror T., Jonathan K., Henrik H., Kyle C., Mario B., Albin H., RN, Phillip S., Bernd, Tom on Patreon and KoFi 💙


What's Changed

  • Introduce yabeda by @Freika in https://github.com/Freika/dawarich/pull/2524
  • Fix stats distance overflow by @Freika in https://github.com/Freika/dawarich/pull/2628
  • Recalculate monthly insights digest when stale (#2478) by @Freika in https://github.com/Freika/dawarich/pull/2662
  • Stamp reverse_geocoded_at when geocoder returns no result (#2271) by @Freika in https://github.com/Freika/dawarich/pull/2651
  • Treat stored zero velocity as 'unknown' and fall back to displacement (#2390) by @Freika in https://github.com/Freika/dawarich/pull/2668
  • Add multiversion safety to migrations by @Freika in https://github.com/Freika/dawarich/pull/2671
  • Stop server-side photo thumbnail caching; use browser cache instead (#1609) by @Freika in https://github.com/Freika/dawarich/pull/2665
  • Match area-only visits in bounding box queries (#2420) by @Freika in https://github.com/Freika/dawarich/pull/2663
  • 1.7.7 by @Freika in https://github.com/Freika/dawarich/pull/2685

Full Changelog: https://github.com/Freika/dawarich/compare/1.7.6...1.7.7

Breaking Changes

  • Removed environment variables: `PROMETHEUS_EXPORTER_HOST`, `PROMETHEUS_EXPORTER_HOST_SIDEKIQ`
  • Infrastructure metric names changed (e.g., `ruby_http_requests_total` → `rails_requests_total`, `ruby_sidekiq_jobs_total` → `sidekiq_jobs_executed_total`, etc.)
  • Prometheus metrics backend migrated from `discourse/prometheus_exporter` to Yabeda; scrape target updated to `http://dawarich_app:3000/metrics` with HTTP basic auth.
  • Process/GC metrics (e.g., `ruby_rss`, `ruby_heap_live_slots`) are no longer emitted by default; must add a custom Yabeda group if needed.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track dawarich

Get notified when new releases ship.

Sign up free

About dawarich

Your favorite self-hostable alternative to Google Timeline (Google Location History)

All releases →

Related context

Earlier breaking changes

  • v1.7.9 Place deletion no longer deletes visits; sets dependent: :nullify.
  • v1.7.9 Visit detection creates one Place per visit, not 25 candidates.
  • v1.7.8 Places without linked visits are permanently deleted during ownership migration.
  • v1.7.8 `ALLOW_EMAIL_PASSWORD_REGISTRATION` no longer controls login; use `ALLOW_EMAIL_PASSWORD_LOGIN` (defaults true).
  • v1.7.8 Self-hosters must set ALLOW_EMAIL_PASSWORD_LOGIN=false for OIDC-only sign-in after upgrade.

Beta — feedback welcome: [email protected]