Skip to content

Latest commit

 

History

History
256 lines (183 loc) · 8.26 KB

CHANGELOG.md

File metadata and controls

256 lines (183 loc) · 8.26 KB

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

  • Mobius.Event
  • Mobius.EventLog
  • Mobius.Clock
  • Mobius.get_latest_metrics/1
  • Mobius.get_latest_events/1
  • :events option to Mobius.arg()
  • :event_log_size option to Mobius.arg()
  • :clock option to Mobius.arg()
  • :session option to Mobius.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:

  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

  • Mobius.Exports module for APIs concerning retrieving historical data in various formats
  • Mobius.Exports.csv/4 generates a CSV either as a string, to the console, or to a file
  • Mobius.Exports.series/4 generates a series for historical data
  • Mobius.Exports.metrics/4 retrieves the raw historical metric data
  • Mobius.Exports.plot/4 generates a line plot to the console
  • Mobius.Exports.mbf/1 generates a binary that contains all current metrics
  • Mobius.Exports.parse_mbf/1 parses a binary that is in the Mobius Binary Format
  • Mobius.Exports.UnsupportedMetricError
  • Mobius.Exports.MBFParseError
  • Mobius.FileError
  • :name field to Mobius.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.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

  • Support for Telemetry.Metrics.Summary metric 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.Sum type
  • Support for filtering CSV records by type with :type option

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

  • Move Moblus.plot/0 and Mobius.info/0 to Mobius.Charts module

v0.1.0 - 2021-7-16

Initial release!