This project follows Semantic Versioning.
Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable.
v0.7.0 - 2026-05-21
Changed
- Raised the minimum Elixir version to 1.15.
- Replaced the
uuiddependency withelixir_uuid. Theuuidhex package was rebranded aselixir_uuidstarting with v1.2.0, and keeping the old name causedmix releaseto fail with duplicatedElixir.UUIDmodules in projects that also depend onelixir_uuid. circular_bufferrequirement relaxed to~> 0.4 or ~> 1.0.
v0.6.1 - 2024-04-02
Changed
- Allow
:telemetry_metricsv1.0.0 and later now that it's been released - Fix
Logger.warndeprecations - Fix binary format validation issue due to map sort order change in Erlang 26.
v0.6.0 - 2022-09-09
The breaking change in Mobius is the removal of remote reporting and the functionality built around that such as configuring a remote reporter to send a metric report at some interval.
If this functionality is something you still want, you can provide a GenServer that executes your reporting code at some interval. This will allow the maximum flexibility to how you want your software to report metrics.
Changed
- Remove
Mobius.RemoteReporter - Remove
:remote_reporterconfiguration fromMobius.arg() - Remove
:remote_reporter_intervalconfiguration fromMobius.arg() - Remove
Mobius.RemoteReporters.LoggerReporter
Added
Mobius.EventMobius.EventLogMobius.ClockMobius.get_latest_metrics/1Mobius.get_latest_events/1:eventsoption toMobius.arg():event_log_sizeoption toMobius.arg():clockoption toMobius.arg():sessionoption toMobius.arg()Mobius.session()
v0.5.1 - 2022-06-01
Added
- Added the ability for a remote reporter to response with
{:error, reason, new_state}.
v0.5.0 - 2022-05-31
Breaking changes for three functions in the Mobius.Exports module:
If you are not directly calling these functions in your code you're safe to upgrade.
The first two used to return either {:ok, results} or {:error, reason} but
now they will only return their result. For Mobius.Exports.series/4 the return
value is now [integer()] and for Mobius.Exports.metrics/4 the return type is
now [Mobius.metric()]. Mobius.Exports.plot/4 still returns :ok on success,
but can now return {:error, UnsupportedMetricError.t()}.
Changed
Mobius.Exports.series/4return type was{:ok, [integer()]} | {:error, UnsupportedMetricError.t()}and now is[integer()].Mobius.Exports.metrics/4return type was{:ok, [Mobius.metric()]} | {:error, UnsupportedMetricError.t()}and now is[Mobius.metric()]Mobius.Exports.plot/4was just:okbut now is:ok | {:error, UnsupportedMetricError.t()}
Added
Mobius.RemoteReporterbehaviour to allow for reporting metrics to a remote server.- Add
:remote_reporterand:remote_report_intervaloptions to theMobius.arg()type. - Support for specifying which summary metric you want to export. (@ewildgoose)
- Support for summary metrics types in some exports. (@ewildgoose)
- Add standard deviation calculation to the summary metric type. (@ewildgoose)
- New
Mobius.Exports.export_metric_type()that allows for specifying the summary metric type.
Misc
- Update
ex_doctov.0.28.4 - Update
telemetrytov1.1.0 - Fix up typos (@kianmeng)
v0.4.0 - 2022-03-25
Changed
Mobius.plot/3is nowMobius.Exports.plot/4Mobius.to_csv/3is nowMobius.Exports.csv/4Mobius.filter_metrics/3is nowMobius.Exports.metrics/4Mobius.name()is nowMobius.instance()- Mobius functions that need to know the name of the mobius instance now
expect
:mobius_instanceand not:name Mobius.metric_name()is no longer a list ofatoms()but is now the metric name as a stringMobius.RRDinternal metric formatMobius.RRD.insert/3typespec now expects[Mobius.metric()]as the last parameter
Removed
Mobius.filter_opt()typeMobius.csv_opt()typeMobius.plot_opt()typeMobius.query_opts/1functionMobius.to_csv/3functionMobius.plot/3functionMobius.filter_metrics/3functionMobius.make_bundle/2function (useMobius.mbf/1instead)Mobius.BundlemoduleMobius.record()type
Added
Mobius.Exportsmodule for APIs concerning retrieving historical data in various formatsMobius.Exports.csv/4generates a CSV either as a string, to the console, or to a fileMobius.Exports.series/4generates a series for historical dataMobius.Exports.metrics/4retrieves the raw historical metric dataMobius.Exports.plot/4generates a line plot to the consoleMobius.Exports.mbf/1generates a binary that contains all current metricsMobius.Exports.parse_mbf/1parses a binary that is in the Mobius Binary FormatMobius.Exports.UnsupportedMetricErrorMobius.Exports.MBFParseErrorMobius.FileError:namefield toMobius.metric()type
v0.3.7 - 2022-03-16
This release brings in a bunch of new features and bug fixes. Along with basic maintenance like dependency updates and documentation improvements (@ewildgoose).
Added
- Create, save, and extract tar files that contain metric data, see
Mobius.BundlesandMobius.make_bundle/2for more information. Mobius.filter_metrics/3to filter for desired metrics to enable the metrics to be consumed externally (@ewildgoose)Mobius.save/1to manually save the state of the metric data for Mobius (@ewildgoose):autosave_intervaloption to Mobius to enable a saving data at the given interval (@ewildgoose)
Fixes
- Unit conversion not working correctly (@ewildgoose)
- Error handling for when the
:persistence_pathis missing (@ewildgoose) - Error handling when there is no data to plot (@ewildgoose)
- Crash when plotting an array of identical values (@ewildgoose)
- Correct off by one error when plotting (@ewildgoose)
v0.3.6 - 2022-01-25
Added
- Support for
Telemetry.Metrics.Summarymetric type
v0.3.5 - 2021-12-2
Fixes
- Fix crash when initializing metrics table when the ETS file cannot be read (@jfcloutier)
v0.3.4 - 2021-11-15
Fixes
- Fix crash when a history file is unreadable during initialization (@mdwaud)
v0.3.3 - 2021-10-20
Fixes
- Not able to pass a path for persistence that contains non-existing sub directories. Thank you LostKobrakai.
v0.3.2 - 2021-09-22
Added
- Support for
Telemetry.Metrics.Sumtype - Support for filtering CSV records by type with
:typeoption
v0.3.1 - 2021-09-08
Added
- Plot over the last
xseconds via the:lastplot option - Plot from an absolute time via the
:fromplot option - Plot to an absolute time via the
:toplot option - Print or save metric time series via
Mobius.to_csv/3 - Remove tracking a metric by dropping it from the metric list passed to Mobius
Changed
Mobius.plot/3will only show the last 3 minutes of data by default
v0.3.0 - 2021-8-19
Changed
- Deleted
Mobius.Chartsmodule. The functions in this module are now located in theMobiusmodule.
Removed
- Support for specifying resolutions.
v0.2.0 - 2021-8-03
Added
Mobius.Chartsmodule- Persistence of historical information on graceful shutdown
- Ability to specify time resolutions for plots
Changed
- Move
Moblus.plot/0andMobius.info/0toMobius.Chartsmodule
v0.1.0 - 2021-7-16
Initial release!