Vendor oban_web 2.12.1 and oban_met 1.1.0 (taken from the towerops-web2 vendor tree), bump oban to ~> 2.21, and mount the Oban dashboard at /admin/oban behind the existing require_admin on_mount hook. Adds an admin-only "Oban" nav link and extends the Dockerfile to copy vendor/ before deps.get so production builds pick up the path dependencies.
113 lines
3.5 KiB
Markdown
113 lines
3.5 KiB
Markdown
# Changelog for Oban Met v1.0
|
|
|
|
## v1.1.0 — 2026-03-25
|
|
|
|
### Enhancements
|
|
|
|
- [Met] Require a minimum of Oban v2.21
|
|
|
|
Oban v2.21 introduces the `suspended` state, which is now counted by the reporter along with the
|
|
other states.
|
|
|
|
## v1.0.6 — 2026-02-19
|
|
|
|
### Enhancements
|
|
|
|
- [Met] Add configurable time unit for timing metrics
|
|
|
|
Metrics stored in sketches now support configurable time units via the `:sketch_time_unit`
|
|
compile-time option. By default, timing values remain in `:native` units for backward
|
|
compatibility.
|
|
|
|
Setting `config :oban_met, sketch_time_unit: :millisecond` reduces sketch storage size by ~20%
|
|
and consolidates timing values into fewer bins by eliminating nanosecond-level measurement
|
|
noise.
|
|
|
|
- [Cronitor] Share crontab options as a map rather than nested lists
|
|
|
|
For compatibility with entries shared by python, we convert options to a
|
|
map structure rather than a list of lists.
|
|
|
|
## v1.0.5 — 2025-12-10
|
|
|
|
### Bug Fixes
|
|
|
|
- [Examiner] Normalize `limit` to `local_limit` for web consistency
|
|
|
|
Oban checks return `limit`, while Pro stores them as `local_limit`. That causes inconsistent
|
|
data when displaying OSS queue details in `oban_web`. This stores `limit` as `local_limit`
|
|
consistently, rather than checking for both keys.
|
|
|
|
## v1.0.4 — 2025-11-26
|
|
|
|
### Bug Fixes
|
|
|
|
- [Met] Match on config to auto-start named instances
|
|
|
|
The registry pattern only matched `Oban` instances, not modules created with `use Oban`. This
|
|
modifies the pattern to extract `Oban.Config` structs directly.
|
|
|
|
- [Met] Remove use of struct update syntax deprecated in Elixir v1.19
|
|
|
|
|
|
## v1.0.3 — 2025-05-06
|
|
|
|
### Enhancements
|
|
|
|
- [Examiner] Use parallel execution for health checks.
|
|
|
|
Minimize total time taken to scrape checks from producers by parallelizing calls. The worst case
|
|
time is now O(1) rather than O(n) when producers are busy.
|
|
|
|
## v1.0.2 — 2025-03-14
|
|
|
|
This release requires Oban v2.19 because of a dependency on the new JSON module.
|
|
|
|
### Bug Fixes
|
|
|
|
- [Met] Log unexpected messages from trapping servers
|
|
|
|
The `reporter` and `cronitor` have a small set of messages they expect. Rather than crashing on
|
|
unexpected messages, the processes now log a warning instead.
|
|
|
|
- [Meta] Override application options with passed options
|
|
|
|
Passed options weren't relayed to the underlying module and only application level options had
|
|
any effect. This ensures options from both locations are merged.
|
|
|
|
- [Met] Use conditional JSON derive and Oban.JSON wrapper
|
|
|
|
## v1.0.1 — 2025-01-16
|
|
|
|
### Bug Fixes
|
|
|
|
- [Value] Implement `JSON.Encoder` for value types
|
|
|
|
The encoder is necessary to work with official JSON encoded values as well as legacy Jason.
|
|
|
|
## v1.0.0 — 2025-01-16
|
|
|
|
This is the official v1.0 release _and_ the package is now open source!
|
|
|
|
### Enhancements
|
|
|
|
- [Reporter] Count queries work with all official Oban engines and databases (Postgres, SQLite,
|
|
and MySQL).
|
|
|
|
- [Migration] Add ability to explicitly create estimate function through a dedicated migration.
|
|
|
|
For databases that don't allow the application connect to create new functions, this adds an
|
|
`Oban.Met.Migration` module and an option to disable auto-migrating in the reporter.
|
|
|
|
### Bug Fixes
|
|
|
|
- [Reporter] Skip queries with empty states or queues to prevent query errors.
|
|
|
|
Querying with an empty list may cause the following error:
|
|
|
|
```
|
|
(Postgrex.Error) ERROR 42809 (wrong_object_type) op ANY/ALL (array)
|
|
```
|
|
|
|
This fixes the error by skipping queries for empty lists. This could happen if all of the states
|
|
were above the estimate threshold, or no active queues were found.
|