Commit graph

102 commits

Author SHA1 Message Date
Michael Hanselmann
c3600bef43 Fix typo in "smarctl"
Signed-off-by: Michael Hanselmann <public@hansmi.ch>
2023-01-31 13:35:51 +01:00
Ben Kochie
d5aa2289fe
Merge pull request #103 from prometheus-community/repo_sync
Synchronize common files from prometheus/prometheus
2022-12-14 19:16:36 +01:00
prombot
5302f44234 Update common Prometheus files
Signed-off-by: prombot <prometheus-team@googlegroups.com>
2022-12-14 17:49:59 +00:00
Ben Kochie
2df95c8071
Merge pull request #99 from prometheus-community/superq/filter
Add device filtering
2022-12-09 22:04:04 +01:00
SuperQ
fff5f67ae5
Add device filtering
* Add device include/exclude filters for the automatic scanning.
* Refactor scanning to not scan if devices are manually specified.
* Don't try and filter manually specified devices.

Signed-off-by: SuperQ <superq@gmail.com>
2022-12-09 21:12:08 +01:00
dependabot[bot]
6c965f1462
Bump github.com/tidwall/gjson from 1.14.3 to 1.14.4 (#102)
Bumps [github.com/tidwall/gjson](https://github.com/tidwall/gjson) from 1.14.3 to 1.14.4.
- [Release notes](https://github.com/tidwall/gjson/releases)
- [Commits](https://github.com/tidwall/gjson/compare/v1.14.3...v1.14.4)

---
updated-dependencies:
- dependency-name: github.com/tidwall/gjson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-08 16:00:23 +01:00
dependabot[bot]
10c5141131
Bump github.com/prometheus/client_golang from 1.13.1 to 1.14.0 (#100)
Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.13.1 to 1.14.0.
- [Release notes](https://github.com/prometheus/client_golang/releases)
- [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prometheus/client_golang/compare/v1.13.1...v1.14.0)

---
updated-dependencies:
- dependency-name: github.com/prometheus/client_golang
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-08 15:48:57 +01:00
dependabot[bot]
682fa7759a
Bump github.com/prometheus/exporter-toolkit from 0.8.1 to 0.8.2 (#101)
Bumps [github.com/prometheus/exporter-toolkit](https://github.com/prometheus/exporter-toolkit) from 0.8.1 to 0.8.2.
- [Release notes](https://github.com/prometheus/exporter-toolkit/releases)
- [Changelog](https://github.com/prometheus/exporter-toolkit/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prometheus/exporter-toolkit/compare/v0.8.1...v0.8.2)

---
updated-dependencies:
- dependency-name: github.com/prometheus/exporter-toolkit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-08 15:48:32 +01:00
Ben Kochie
a58c632ea8
Merge pull request #96 from prometheus-community/superq/0.9.1
Release v0.9.1
2022-11-06 22:44:55 +01:00
SuperQ
4829a8861f
Release v0.9.1
* [BUGFIX] Fix runtime error: index out of range in mineVersion #93
* [BUGFIX] Fix race condition with maps and goroutines #94

Signed-off-by: SuperQ <superq@gmail.com>
2022-11-06 12:42:41 +01:00
Ben Kochie
61e28093f6
Merge pull request #93 from lahwaacz/master
Fix runtime error: index out of range in mineVersion
2022-11-06 12:20:27 +01:00
Jakub Klinkovský
a35f67bb0f Avoid running mineVersion when the SMARTctlInfo struct is not ready
Signed-off-by: Jakub Klinkovský <j.l.k@gmx.com>
2022-11-06 11:56:43 +01:00
Jakub Klinkovský
6e2143ca62 Remove useless error message
All errors are already logged from the called functions: readSMARTctl,
resultCodeIsOk, jsonIsOk. Logging twice due to the same error is useless
and the "smartctl returned bad data for device" message is confusing
since that condition may happen when a device is in a low-power mode.

Signed-off-by: Jakub Klinkovský <j.l.k@gmx.com>
2022-11-06 11:56:41 +01:00
Ben Kochie
97947b0e27
Merge pull request #94 from NiceGuyIT/issue-23
Fixes #23: Race condition with maps and goroutines
2022-11-06 11:38:21 +01:00
David Randall
18b5b8d57e Fixes #23: Race condition with maps and goroutines
Signed-off-by: David Randall <David@NiceGuyIT.biz>
2022-11-05 08:55:14 -04:00
Ben Kochie
9bc77c579d
Merge pull request #90 from DaAwesomeP/DaAwesomeP-update-exporter-toolkit-v0.8.1
Update to exporter-toolkit v0.8.1
2022-10-23 11:44:36 +01:00
Perry Naseck
a972874397
update to exporter-toolkit v0.8.1
Signed-off-by: Perry Naseck <git@perrynaseck.com>
2022-10-22 14:00:37 -04:00
Ben Kochie
0f32489b40
Merge pull request #87 from k0ste/help
Release 0.9.0
2022-10-20 17:18:48 +01:00
Konstantin Shalygin
648ded156d Release 0.9.0
Signed-off-by: Konstantin Shalygin <k0ste@k0ste.ru>
2022-10-20 18:22:58 +07:00
Ben Kochie
b832e55e3e
Merge pull request #28 from lahwaacz/master
Skip vendor-specific statistics that lead to duplicate metric labels
2022-10-20 11:42:19 +01:00
Ben Kochie
cee06eca3c
Merge pull request #86 from CrabappleProject/fit_windows
FIX: remove `os.stat` in order to fit in windows
2022-10-20 11:40:28 +01:00
Ben Kochie
3a8968a04a
Merge pull request #88 from k0ste/help3
Pruned /dev/ prefix from device label
2022-10-20 11:31:44 +01:00
Ben Kochie
2099be1e2c
Merge pull request #84 from k0ste/help2
Added disk form_factor meta label
2022-10-20 11:31:01 +01:00
Ben Kochie
e76e458118
Update smartctl.go
Signed-off-by: Ben Kochie <superq@gmail.com>

Signed-off-by: Ben Kochie <superq@gmail.com>
2022-10-19 08:03:40 +02:00
Konstantin Shalygin
e385b4a351 Pruned /dev/ prefix from device label
Now label matched with `node_exporter` labels

Signed-off-by: Konstantin Shalygin <k0ste@k0ste.ru>
2022-10-17 14:44:18 +07:00
Konstantin Shalygin
397a7a55f0 Added disk form_factor meta label
The requirement from field engineers is knowledge of the form factor of the device, i.e. 3.5", 2.5"

* updated EXAMPLE.md
* fixed copy-paste issue `Starting systemd_exporter`

Signed-off-by: Konstantin Shalygin <k0ste@k0ste.ru>
2022-10-17 14:28:05 +07:00
赵栩彬
daf1182285 FIX: remove os.stat in order to fit in windows
Signed-off-by: 赵栩彬 <zhaoxubin2016@mail.com>
2022-10-15 11:46:28 +08:00
Jakub Klinkovský
e10ded530f skip vendor-specific statistics that lead to duplicate metric labels
fixes #3

Signed-off-by: Jakub Klinkovský <j.l.k@gmx.com>
2022-10-14 16:53:52 +02:00
Ben Kochie
d3d5180048
Merge pull request #83 from k0ste/help2
Reduced number of meta labels
2022-10-14 10:18:32 +02:00
Konstantin Shalygin
82266c0397 Reduced number of meta labels
On test stand with 5 disks data size from exporter reduced from 148KB to 82KB

Signed-off-by: Konstantin Shalygin <k0ste@k0ste.ru>
2022-10-14 14:22:41 +07:00
Ben Kochie
ed7dbafd00
Merge pull request #82 from k0ste/help
Removed doubled NVMe metrics
2022-10-14 07:43:45 +02:00
Konstantin Shalygin
56cd874440 Removed doubled NVMe metrics
Signed-off-by: Konstantin Shalygin <k0ste@k0ste.ru>
2022-10-13 19:45:25 +07:00
Ben Kochie
babef4a758
Merge pull request #79 from prometheus-community/superq/drop_arm
Drop arm64 Docker image
2022-10-05 18:18:03 +02:00
SuperQ
261f0c0d83
Drop arm64 Docker image
Drop the arm64 Docker image until we figure out a good cross-build setup
for alpine-based builds.

Fixes: https://github.com/prometheus-community/smartctl_exporter/issues/78

Signed-off-by: SuperQ <superq@gmail.com>
2022-10-05 14:06:48 +02:00
Ben Kochie
bc49dec5a6
Merge pull request #76 from prometheus-community/superq/cleanup_config
Cleanup obsolete yaml config
2022-10-05 13:53:19 +02:00
Ben Kochie
7ec38ac5bc
Merge pull request #77 from prometheus-community/superq/fixup_arm
Fix up multi-platform container builds
2022-10-03 21:06:09 +02:00
SuperQ
0472e35e77
Fix up multi-platform container builds
Use the `--platform` flag on `FROM` to build with the correct platform.

Signed-off-by: SuperQ <superq@gmail.com>
2022-10-03 17:44:44 +02:00
SuperQ
c9b4f52ec6
Cleanup obsolete yaml config
Remove the old yaml config and usage.

Signed-off-by: SuperQ <superq@gmail.com>
2022-10-03 17:35:37 +02:00
Ben Kochie
14778c90ea
Release 0.8.0 (#75)
Breaking Changes:
All configuration has been moved from the config file to command line flags.

* [CHANGE] Refactor exporter config #68
* [BUGFIX] Fix smartctl command args to avoid wakeups #74
* [ENHANCEMENT] Add smartmontools to container image #51

Signed-off-by: SuperQ <superq@gmail.com>
2022-10-03 15:34:52 +02:00
Ben Kochie
e88442081c
Adjust smartctl command args (#74)
Update smartctl command arguments to reduce device wakeup from
standby/idle.
* Ignore exit code of 2 for sleeping devices.

Fixes: https://github.com/prometheus-community/smartctl_exporter/issues/61

Signed-off-by: SuperQ <superq@gmail.com>

Signed-off-by: SuperQ <superq@gmail.com>
2022-10-03 14:49:32 +02:00
Ben Kochie
c8d3e48f3d
Refactor exporter config (#68)
Switch exporter over to standard Prometheus exporter flags and logging.
This eliminates the need for a configuraion file.

Signed-off-by: SuperQ <superq@gmail.com>
2022-10-03 11:16:00 +02:00
PrometheusBot
ca94177954
Update common Prometheus files (#70)
Signed-off-by: prombot <prometheus-team@googlegroups.com>

Signed-off-by: prombot <prometheus-team@googlegroups.com>
2022-09-20 20:14:46 +02:00
Ben Kochie
b9b95b1e75
Add container image badge (#69)
Add a link to quay.io for the container image.

Signed-off-by: SuperQ <superq@gmail.com>

Signed-off-by: SuperQ <superq@gmail.com>
2022-09-20 19:50:29 +02:00
dependabot[bot]
78a47cd2c2
Bump github.com/tidwall/gjson from 1.14.1 to 1.14.3 (#63)
Bumps [github.com/tidwall/gjson](https://github.com/tidwall/gjson) from 1.14.1 to 1.14.3.
- [Release notes](https://github.com/tidwall/gjson/releases)
- [Commits](https://github.com/tidwall/gjson/compare/v1.14.1...v1.14.3)

---
updated-dependencies:
- dependency-name: github.com/tidwall/gjson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-10 16:53:49 +02:00
dependabot[bot]
dfc967ecdd
Bump github.com/prometheus/client_golang from 1.12.2 to 1.13.0 (#62)
Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.12.2 to 1.13.0.
- [Release notes](https://github.com/prometheus/client_golang/releases)
- [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prometheus/client_golang/compare/v1.12.2...v1.13.0)

---
updated-dependencies:
- dependency-name: github.com/prometheus/client_golang
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-10 16:14:39 +02:00
Ben Kochie
34c5c19517
Remove armv7 container (#54)
Alpine's naming for armv7 doesn't match.

Signed-off-by: SuperQ <superq@gmail.com>
2022-08-08 18:10:42 +02:00
Ben Kochie
b528194980
Fix Dockerfile (#53)
Fix apk package install.
* Cleanup gitignore.

Signed-off-by: SuperQ <superq@gmail.com>
2022-08-08 17:03:53 +02:00
Ben Kochie
b63f56e391
Add smartmontools to container image (#51)
Switch to using Alpine container and install smartmontools so the
exporter can use the smartctl binary.

Signed-off-by: SuperQ <superq@gmail.com>
2022-08-08 15:44:02 +02:00
Ben Kochie
920c3429b1
Release 0.7.0 (#50)
First prometheus-community release.

* [FEATURE] Add various new metrics #14
* [BUGFIX] Fix exit code bit parsing #37

Signed-off-by: SuperQ <superq@gmail.com>
2022-08-05 03:37:13 +02:00
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