All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Ability to customize time units via
:duration_unit
in plugins #140 - Download Grafana Agent on FreeBSD #156
- Ability to configure configure Grafana HTTP client Finch pools #169
- Ability to pass additional params to GrafanaAgent config templates 161
- Ability to run multiple GrafanaAgent instances #157
- Support for GrafanaAgent 28
- Added missing priv dir to release.
- Added ability to execute arbitrary function on resulting dashboard for user customization.
- The GrafanaClient is now considered part of the public API, and users can interact with Grafana directly. For example, users can publish their own Grafana annotations in addition to the annotations provided by PromEx.
- Added the ability to start GrafanaAgent via a port so that metrics can be published via
remote_write
to an other Prometheus instance. For example, if you are using GrafanaCloud, you can use PromEx to push metrics right to GrafanaCloud using the appropriate configuration. This feature is currently only available for Linux and OS X. - The
ETSCronFlusher
GenServer can now be configured to flush the ETS buffer at whatever time interval you desire. The default is still every 7.5s.
- Broadway metrics prefix.
- Broadway dashboard panel descriptions and titles.
- Fixed the
:default_selected_interval
option in all dashboards. - Phoenix plugin manual metrics were ignoring the metric prefix option.
- Application plugin no longer logs warnings for missing GIT env vars.
- LifecycleAnnotator no longer logs warnings for missing GIT env vars.
- All plugin distribution buckets have been redefined. The reason for this being that prior to PromEx 1.7, some of the distribution buckets were a bit wasteful and were not adding value in terms of metrics data points. With this change, users should notice a decline in data point cardinality without compromising resolution.
- Application plugin has changed how it fetches dependency information. It is now using
Applciation.spec/1
to get the list of applications that are started with your application. This should reduce noise in the Grafana dashboard as all the default OTP and Elixir applications will not show up. - All Grafana dashboard now have a default panel sort order where the largest timeseries plot is first in the list when hovering over the visuals.
- All Grafana dashboards now filter the instance filter based on the selected job filter.
- The Oban plugin no longer collects metrics related to
:circuit
events as those have been removed from Oban starting with version 2.11 (oban-bg/oban#606). The Oban dashboard will be updated in the next release to remove the unused panels.
- Updated BEAM plugin to surface JIT support
- Broadway metrics plugin
- Broadway Grafana dashboard
- LiveView plugin would detach exception handles when certain errors were encountered
- Links to HexDocs from Grafana dashboards
- Links to GitHub sponsorship from Grafana dashboards
- Endpoint label to channel metrics
- Ecto Grafana dashboard panels for total time metrics
- Phoenix Grafana dashboard panels for socket connections
- PhoenixLiveView plugin error label is now normalized
- Documentation for Phoenix plugin was cleaned up
- Added a configuration to the dashboard assigns so that the default time interval can be specified by the user as opposed to being hard coded to 30s.
- Fixed Plug.Router plugin to handle requests without conn.private.plug_route info
- The Phoenix plugin now requires an
:endpoint
configuration option to be passed to it containing the module for which metrics will be captured.
- Plug.Router plugin and dashboard.
- PlugCowboy plugin and dashboard.
- Phoenix plugin now supports multiple routers and multiple endpoints.
- Phoenix plugin and dashboards now contains endpoint configuration data.
- Phoenix plugin now captures socket metrics (dashboard not yet updated though).
- Ecto plugin captures total_time metrics (dashboard not yet updated though).
- Add an optional configuration to dashboard renderer and each plugin so that the
metrics_prefix
can be altered.
- Oban dashboard overview stat panels.
- Absinthe plugin and dashboard.
- Erlang persistent_term metrics to BEAM dashboard.
- Addressed bug in later version of LiveView when extracting the LiveView module from a Telemetry event.
- Added the ability to disable the entire PromEx supervision tree. Useful for when you are running tests and you don't want telemetry events attached or polling events running.
- Addressed bug when Phoenix metric labels fails to serialize due to
forward
macro plug options list.
- GrafanaClient module error case statement. Relaxed the pattern matching so that unaccounted for responses from Grafana don't crash the GenServer.
- Added the
additional_routes
option to the Phoenix plugin so that routes not defined in the router module can still be labeled correctly.
- Phoenix plugin encountered an error when the response body was empty.
- Fix for multiple applications attempting to use the same Grafana folder
- Documentation fixes and grafana dashboard typos
- Switch back to a released version of
telemetry_metrics_prometheus_core
now that a new release have been cut to include necessary functionality for PromEx.
- Added ETSCronFlusher GenServer to supervision tree to flush distribution metrics from ETS to address ETS memory leak when metrics are not scraped at a regular interval.
- Added ability to authenticate with Grafana via Basic auth (username and password).
- Fixed a bug in the polling metrics period interval configuration.
- Fixed typespec for dashboard definitions.
- Fixed dashboard assigns when exporting an existing dashboard.
- Updated documentation
- Issue with Oban plugins that also have options
- First stable release. Public facing API is now considered stable
- Updated mix gen config task to comment out plugins that require dependencies
- Updated documentation
- Screenshots of all dashboards
- Tests for mix gen config task
- Updated documentation
- LiveView metrics plugin and dashboard
- The
mix prom_ex.create
mix task has been renamed tomix prom_ex.gen_config
to align to ecosystem tooling - The
mix prom_ex.export_dashboard
mix task has been renamed tomix prom_ex.dashboard.export
- The
mix prom_ex.publish
mix task has been renamed tomix prom_ex.dashboard.publish
- The
mix prom_ex.lint
mix task has been renamed tomix prom_ex.dashboard.lint
- Fixed dialyzer supervisor error
- Added error messaging when attempting to publish dashboards to Grafana but Grafana configuration is disabled
- Mix Task to export rendered Grafana dashboards to file or STDOUT
- Added Oban PromEx plugin
- Added Oban Grafana dashboard
- Error logging to Grafana dashboard uploader and life-cycle annotator
- Fixed Phoenix Grafana dashboard errors