View Source Changelog

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.6.1 - 2024-04-02

Changed

  • Allow :telemetry_metrics v1.0.0 and later now that it's been released
  • Fix Logger.warn deprecations
  • 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_reporter configuration from Mobius.arg()
  • Remove :remote_reporter_interval configuration from Mobius.arg()
  • Remove Mobius.RemoteReporters.LoggerReporter

Added

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:

  1. Mobius.Exports.series/4
  2. Mobius.Exports.metrics/4
  3. Mobius.Exports.plot/4

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/4 return type was {:ok, [integer()]} | {:error, UnsupportedMetricError.t()} and now is [integer()].
  • Mobius.Exports.metrics/4 return type was {:ok, [Mobius.metric()]} | {:error, UnsupportedMetricError.t()} and now is [Mobius.metric()]
  • Mobius.Exports.plot/4 was just :ok but now is :ok | {:error, UnsupportedMetricError.t()}

Added

  • Mobius.RemoteReporter behaviour to allow for reporting metrics to a remote server.
  • Add :remote_reporter and :remote_report_interval options to the Mobius.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_doc to v.0.28.4
  • Update telemetry to v1.1.0
  • Fix up typos (@kianmeng)

v0.4.0 - 2022-03-25

Changed

  • Mobius.plot/3 is now Mobius.Exports.plot/4
  • Mobius.to_csv/3 is now Mobius.Exports.csv/4
  • Mobius.filter_metrics/3 is now Mobius.Exports.metrics/4
  • Mobius.name() is now Mobius.instance()
  • Mobius functions that need to know the name of the mobius instance now expect :mobius_instance and not :name
  • Mobius.metric_name() is no longer a list of atoms() but is now the metric name as a string
  • Mobius.RRD internal metric format
  • Mobius.RRD.insert/3 typespec now expects [Mobius.metric()] as the last parameter

Removed

  • Mobius.filter_opt() type
  • Mobius.csv_opt() type
  • Mobius.plot_opt() type
  • Mobius.query_opts/1 function
  • Mobius.to_csv/3 function
  • Mobius.plot/3 function
  • Mobius.filter_metrics/3 function
  • Mobius.make_bundle/2 function (use Mobius.mbf/1 instead)
  • Mobius.Bundle module
  • Mobius.record() type

Added

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.Bundles and Mobius.make_bundle/2 for more information.
  • Mobius.filter_metrics/3 to filter for desired metrics to enable the metrics to be consumed externally (@ewildgoose)
  • Mobius.save/1 to manually save the state of the metric data for Mobius (@ewildgoose)
  • :autosave_interval option 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_path is 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

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

v0.3.1 - 2021-09-08

Added

  • Plot over the last x seconds via the :last plot option
  • Plot from an absolute time via the :from plot option
  • Plot to an absolute time via the :to plot 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/3 will only show the last 3 minutes of data by default

v0.3.0 - 2021-8-19

Changed

  • Deleted Mobius.Charts module. The functions in this module are now located in the Mobius module.

Removed

  • Support for specifying resolutions.

v0.2.0 - 2021-8-03

Added

  • Mobius.Charts module
  • Persistence of historical information on graceful shutdown
  • Ability to specify time resolutions for plots

Changed

v0.1.0 - 2021-7-16

Initial release!