aboutsummaryrefslogtreecommitdiff
path: root/prometheus_pacman_exporter/__init__.py (follow)
Commit message (Collapse)AuthorAge
* fix(commands): handle empty orphan queries consistentlyDennis Fink10 days
| | | | | | Treat pacman exit status 1 as an empty result for orphan package queries, matching the handling used by other queries that may legitimately return no packages.
* chore(release): prepare v1.1.1v1.1.1Dennis Fink11 days
| | | | Bump the package version to 1.1.1 for the patch release.
* fix(commands): distinguish empty query resultsDennis Fink11 days
| | | | | | | | | | | Track exit codes that indicate an empty package query separately from accepted success codes. Treat pacman exit status 1 as an empty result only when both stdout and stderr are empty, while preserving genuine command failures as errors. Apply the empty-result handling to pacman queries that may legitimately return no packages, including update checks.
* fix(commands): quote command arguments in diagnosticsDennis Fink11 days
| | | | | | | | Format executed commands with shlex.join() so debug and error messages preserve argument boundaries and shell quoting. Reuse the formatted command string for both command logging and failure reporting.
* docs(cli): refine help and docstringsDennis Fink11 days
| | | | | | | Clarify that quiet mode also suppresses verbose output and simplify the run_command docstring wording. Add the missing None return annotation to the main CLI callback.
* chore(release): prepare v1.1.0v1.1.0Dennis Fink11 days
| | | | | Bump the package version to 1.1.0 and update the revision date for the release.
* docs(cli): clarify checkupdates optionDennis Fink11 days
| | | | | | | Clarify that --use-checkupdates replaces pacman when checking for available package updates. Update the README usage output to match the revised CLI help text.
* refactor(commands): model package queries explicitlyDennis Fink11 days
| | | | | | | | | | | Introduce a PackageQuery type to group each command with its description, metric, and accepted exit codes. Move the static pacman queries into module-level constants and construct only the update and optional AUR queries at runtime. Use immutable command tuples throughout and rename success_codes to accepted_exit_codes to better describe the command execution contract.
* docs(cli): clarify checkupdates behaviorDennis Fink11 days
| | | | | | | | | Add help text for --use-checkupdates and clarify that checkupdates is provided by pacman-contrib and checks for available updates without modifying the system package databases. Separate the AUR update documentation into its own paragraph for readability.
* fix(commands): classify command failures for retriesDennis Fink11 days
| | | | | | | | | | | | | | Allow command invocations to define which child exit codes are considered successful, including checkupdates exit status 2 when no updates are available. Classify unexpected child command failures as exporter exit status 1 so systemd treats them as runtime failures eligible for retry. Keep exit status 2 for CLI usage errors, which are configuration problems and should not be retried. Update the systemd service with RestartPreventExitStatus=2 so only retryable runtime failures trigger the configured restart policy.
* feat(cli): report collected package countsDennis Fink11 days
| | | | | | | | Add human-readable descriptions to package queries and emit each collected count when verbose output is enabled. Rename the pacman query command variable to clarify that it is reused as the base command for multiple package queries.
* feat: add initial pacman Prometheus exporterv1.0.0Dennis Fink2026-09-19
Add the first production-ready release of prometheus-pacman-exporter for collecting pacman package statistics through the node exporter textfile collector. Collect installed, explicit, dependency, unrequired, foreign, native, orphan, and updateable package metrics. Support checkupdates as an alternative update source and optional AUR update collection through a configurable command. Add the Click-based CLI, Prometheus metric definitions, package metadata, dependency lockfile, README, licensing metadata, and development configuration.