Go to file
Andreas Fuchs d33d18e535
Return the cached value if it's not time to scan again yet (#18)
* Return the cached value if it's not time to scan again yet

This should ensure that if we have a valid value cached (which ought
to be every time after the first scan), we return it as metrics.

This fixes the crashes that would happen if queries happened earlier
than the re-scan interval allowed.

* Address review feedback: Shorten the time-to-scan logic

We can express this in a single if statement, so it takes fewer lines
to do the "should we check again" check.
2022-08-05 03:09:55 +02:00
.circleci Update build for prometheus-community 2022-06-17 12:04:48 +02:00
.github Update common Prometheus files 2022-06-17 19:51:12 +00:00
gentoo/app-metrics/smartctl_exporter Update build for prometheus-community 2022-06-17 12:04:48 +02:00
systemd systemd service 2019-08-15 00:04:32 +03:00
.gitignore apply merges 2020-11-14 18:36:34 +03:00
.promu.yml Update build for prometheus-community 2022-06-17 12:04:48 +02:00
.yamllint Update build for prometheus-community 2022-06-17 12:04:48 +02:00
CODE_OF_CONDUCT.md Update common Prometheus files 2022-06-17 19:51:12 +00:00
Dockerfile Update build for prometheus-community 2022-06-17 12:04:48 +02:00
EXAMPLE.md right example 2019-08-17 13:26:31 +03:00
LICENSE Initial commit 2019-08-14 23:28:21 +03:00
Makefile Update build for prometheus-community 2022-06-17 12:04:48 +02:00
Makefile.common Update build for prometheus-community 2022-06-17 12:04:48 +02:00
README.md Update build for prometheus-community 2022-06-17 12:04:48 +02:00
SECURITY.md Update common Prometheus files 2022-06-17 19:51:12 +00:00
collect_fake_json.sh Parsing smartctl error code; parsing resulting json for smartctl errors; docker moved to subfolder 2020-10-30 00:35:49 +03:00
gjsonext.go First commit 2019-08-14 23:34:49 +03:00
go.mod Bump github.com/prometheus/client_golang from 1.7.1 to 1.12.2 2022-06-17 11:21:56 +00:00
go.sum Bump github.com/prometheus/client_golang from 1.7.1 to 1.12.2 2022-06-17 11:21:56 +00:00
logging.go First commit 2019-08-14 23:34:49 +03:00
main.go Fix up deprecated client_golang use. 2022-06-17 13:27:10 +02:00
metrics.go chripede-master merge 2020-11-14 18:30:32 +03:00
options.go option for set minimum time period between run smartctl; smartctl info metric 2019-08-16 00:01:16 +03:00
readjson.go Return the cached value if it's not time to scan again yet (#18) 2022-08-05 03:09:55 +02:00
smartctl.go apply merges 2020-11-14 18:36:34 +03:00
smartctl_exporter.yaml apply merges 2020-11-14 18:36:34 +03:00
smartctlinfo.go option for set minimum time period between run smartctl; smartctl info metric 2019-08-16 00:01:16 +03:00

README.md

CircleCI

smartctl_exporter

Export smartctl statistics to prometheus

Example output you can show in EXAMPLE.md

Need more?

If you need additional metrics - contact me :) Create a feature request, describe the metric that you would like to have and attach exported from smartctl json file

Requirements

smartmontools >= 7.0, because export to json released in 7.0

Configuration

Command line options

  • --config=/path/to/file.yaml: Path to configuration file, default /etc/smartctl_exporter.yaml
  • --verbose: verbosed log, default no
  • --debug: Debug logging, default no
  • --version: Show version and exit

Configuration file

Example content:

smartctl_exporter:
  bind_to: "[::1]:9633"
  url_path: "/metrics"
  fake_json: no
  smartctl_location: /usr/sbin/smartctl
  collect_not_more_than_period: 120s
  devices:
  - /dev/sda
  - /dev/sdb
  - /dev/sdc
  - /dev/sdd
  - /dev/sde
  - /dev/sdf

fake_json used for debugging.