Note, this release contains breaking changes. Please read the release notes carefully before updating.
Maintenance
Thanks a lot @resmo for stepping up as a co-maintainer.
Breaking Changes
Separate scraping of cluster and node resources
PR #180 introduced two new query parameters for the /pve
endpoint allowing scrape jobs to specify which metrics are scraped:
- cluster
- node
The cluster
query parameter governs whether cluster
metrics are reported in the scrape. It defaults to 1
(cluster metrics are scraped by default). The query string cluster=0
can be used in order to disable reporting of cluster metrics.
The node
query parameter specifies whether node
metrics are reported from the given node. It defaults to 1
(node metrics are scraped by default). The query string node=0
can be used in order to disable reporting of node metrics.
This approach permits users to configure separate scrapes for cluster metrics (one for each cluster) and node metrics (one for each node). As a result, collection of node metrics is parallelized by prometheus automatically. Also it won't affect metrics of other nodes if one node is down.
Impact on existing deployments
The change has the following impact on existing deployments:
- Single node systems: No effect. Scrapes will report exactly the same set of metrics as before since both, the
cluster
andnode
url parameters are enabled by default. - Clusters operating with
--no-collector.config
: No effect. Even though both, thecluster
andnode
url parameters are enabled by default, scrapes will still report exactly the same set of metrics as before since theconfig
collector is disabled. - Clusters operating without
--no-collector.config
(or with--collector.config
): Effect depends on the scraping strategy. Node metrics are only reported for those nodes being scraped. If all nodes are scraped in a cluster, then the upgrade to3.0.0
has no effect on the set of metrics reported.
Changes to the docker image
- The
tini
binary was removed from the docker image. Use the docker --init flag instead. - The
pve_exporter
process is run as an unprivileged user by default. Use the docker --user flag to runpve_exporter
as any user/group.
Changes to command line arguments
Instead of positional arguments, pve_exporter
now expects a config file to be specified via --config.file=
flag and a custom address/port combination by --web.listen-address
address flag. Users with custom config files or listen ports may have to adapt their startup scripts, docker compose recipes or systemd units.
What's Changed
- ci: add arm64 image build by @resmo in #175
- ci: add dependabot by @resmo in #176
- Bump actions/checkout from 2 to 4 by @dependabot in #177
- Remove tini from docker image by @znerol in #179
- Scrape /nodes endpoint from current node only by @znerol in #180
- Remove references to develop branch by @znerol in #181
- Run with a dedicated user in container by default by @znerol in #182
- Use PEP440 pattern when converting repo release tags into docker image tags by @znerol in #183
- Update changelog bump release by @znerol in #184
- Implement pypi trusted publishing workflow by @znerol in #187
- Python -m build requires venv (wheel gets installed in venv) by @znerol in #188
- Use flags instead of positional arguments for config file and listen address by @znerol in #190
- Update changelog bump release by @znerol in #191
New Contributors
- @dependabot made their first contribution in #177
Full Changelog: v2.3.1...v3.0.0