Commit graph

194 commits

Author SHA1 Message Date
David Randall
c06e503392 Add: Devcontainer support
Signed-off-by: David Randall <David@NiceGuyIT.biz>
2023-11-21 01:08:45 +00:00
David Randall
715f3a465c Add: Devcontainer support
Signed-off-by: David Randall <David@NiceGuyIT.biz>
2023-11-21 01:05:13 +00:00
David Randall
1f56220657
Merge pull request #168 from robbat2/rjohnson/scsi-support
feat: Better SCSI/SAS support, and removing confused metrics
2023-11-20 18:33:13 -05:00
Konstantin Shalygin
9db6746825
collect-smartctl-json: shell fixes for script (#178)
Signed-off-by: Konstantin Shalygin <k0ste@k0ste.ru>
2023-11-20 16:33:28 +01:00
David Randall
3c27af18ec
Merge pull request #177 from prometheus-community/repo_sync
Synchronize common files from prometheus/prometheus
2023-11-18 20:07:12 -05:00
prombot
45564fd9f4 Update common Prometheus files
Signed-off-by: prombot <prometheus-team@googlegroups.com>
2023-11-18 17:49:29 +00:00
David Randall
6acadc64fb
Merge pull request #176 from NiceGuyIT/smartctl-data
Chg: Impvoe the JSON collection script; now requires jq/yq
2023-11-17 05:00:46 -05:00
David Randall
8193e8eb3b Chg: Impvoe the JSON collection script; now requires jq/yq
Signed-off-by: David Randall <David@NiceGuyIT.biz>
2023-11-15 20:43:43 -05:00
David Randall
172bfb3ef4
Merge pull request #175 from robbat2/testdata
feat: add JSON testing data
2023-11-15 18:42:14 -05:00
Robin H. Johnson
a1c3448357
feat: add JSON testing data
- Add README about test data.
- Add script to redact sensitive fields.
- Add JSON testing data collected from many systems, with redaction of
  sensitive fields.

The initial corpus includes:
- NVME drives
- SAS drives - HDD only, no SSD
- SCSI drives - HDD only, no SSD
- SATA drives - SSD & HDD

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2023-11-07 22:58:28 -08:00
David Randall
536ca0c8b8
Merge pull request #174 from prometheus-community/repo_sync
Synchronize common files from prometheus/prometheus
2023-11-03 15:37:41 -04:00
prombot
306aea77a8 Update common Prometheus files
Signed-off-by: prombot <prometheus-team@googlegroups.com>
2023-11-03 17:51:24 +00:00
David Randall
2ca3bd9fbd
Merge pull request #173 from prometheus-community/dependabot/go_modules/github.com/prometheus/common-0.45.0
Bump github.com/prometheus/common from 0.44.0 to 0.45.0
2023-11-01 14:22:10 -04:00
dependabot[bot]
2661bacff5
Bump github.com/prometheus/common from 0.44.0 to 0.45.0
Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.44.0 to 0.45.0.
- [Release notes](https://github.com/prometheus/common/releases)
- [Commits](https://github.com/prometheus/common/compare/v0.44.0...v0.45.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-01 15:50:32 +00:00
Ben Kochie
eb781ad2b5
Update maintainers (#171)
* Update maintainers

Add @bitfehler to maintainers list.

---------

Signed-off-by: SuperQ <superq@gmail.com>
Signed-off-by: Ben Kochie <superq@gmail.com>
Co-authored-by: Conrad Hoffmann <1226676+bitfehler@users.noreply.github.com>
2023-10-26 10:38:59 +02:00
David Randall
2ba3056f22
Merge pull request #170 from bitfehler/master
Remove obsolte ebuild
2023-10-25 20:24:19 -04:00
Conrad Hoffmann
98436820b0 Remove obsolte ebuild
It's old and unmaintained, and there is an official one now:

c18ea60fb1

Signed-off-by: Conrad Hoffmann <ch@bitfehler.net>
2023-10-25 15:20:13 +02:00
David Randall
25f25810fc
Merge pull request #159 from NiceGuyIT/issue-158
Fix #158: collect_fake_json.sh
2023-10-25 04:37:22 -04:00
David Randall
d20ab77aaf
Merge pull request #169 from prometheus-community/superq/update_build
Update build
2023-10-25 04:36:40 -04:00
SuperQ
842a810c2b
Update build
* Update Go to 1.21.
* Remove uncessary build flag overrides.
* Update Go modules.
* Add maintainers file.
* Update ebuild file license.

Signed-off-by: SuperQ <superq@gmail.com>
2023-10-25 10:30:01 +02:00
Горлов Максим
be7e4fabf0
Merge pull request #113 from bitfehler/master
Update LICENSE
2023-10-25 09:03:17 +03:00
Robin H. Johnson
9113c6cf0f feat: Better SCSI/SAS support
Fix the following metrics that were exported as zero because the
exporter did not know how to read them for SCSI devices:
- smartctl_device_bytes_read
- smartctl_device_bytes_written
- smartctl_device_power_cycle_count

New metrics:
- smartctl_read_errors_corrected_by_eccdelayed
- smartctl_read_errors_corrected_by_eccfast
- smartctl_write_errors_corrected_by_eccdelayed
- smartctl_write_errors_corrected_by_eccfast

Fix labels:
- smartctl_device{model_name} is now populated for SCSI/SAS, using
  scsi_model_name.

New labels:
- smartctl_device{} gains:
  scsi_product,scsi_revision,scsi_vendor,scsi_version

Signed-off-by: Robin H. Johnson <rjohnson@coreweave.com>
2023-10-16 10:15:57 -07:00
Robin H. Johnson
d90594ac23 fix: Remove confused metrics
The exporter presently has metrics that are nonsense for a given type of
drive, and remain at zero due to their defaults.

Change the behavior to NOT emit a metric if the underlying JSON field is
not present.

Future related work may include parsing the corresponding metrics for
SATA/SAS SSDs (e.g. `smartctl_device_percentage_used` could derived from
`SSD_Life_Left` on some drives).

Metrics no longer exported for the wrong type of drive:
- `smartctl_device_nvme_capacity_bytes` (NVME-specific)
- `smartctl_device_available_spare` (NVME-specific, ATA possible)
- `smartctl_device_available_spare_threshold` (NVME-specific, ATA
  possible)
- `smartctl_device_critical_warning` (NVME-specific, ATA possible)
- `smartctl_device_interface_speed` (ATA-specific)
- `smartctl_device_media_errors` (NVME-specific, ATA possible)
- `smartctl_device_num_err_log_entries` (NVME-specific, SCSI uses
  distinct metrics, ATA possible)
- `smartctl_device_nvme_capacity_bytes` (NVME-specific)
- `smartctl_device_percentage_used` (NVME-specific, ATA possible)

Signed-off-by: Robin H. Johnson <rjohnson@coreweave.com>
2023-10-16 10:12:40 -07:00
David Randall
558a760c14
Merge pull request #167 from prometheus-community/repo_sync
Synchronize common files from prometheus/prometheus
2023-10-02 19:24:23 -04:00
prombot
3f7a16c11b Update common Prometheus files
Signed-off-by: prombot <prometheus-team@googlegroups.com>
2023-10-02 17:50:16 +00:00
David Randall
5d1212cc9a
Merge pull request #166 from prometheus-community/dependabot/go_modules/github.com/tidwall/gjson-1.17.0
Bump github.com/tidwall/gjson from 1.16.0 to 1.17.0
2023-10-01 18:58:55 -04:00
David Randall
10a9654740
Merge pull request #165 from prometheus-community/dependabot/go_modules/github.com/prometheus/client_golang-1.17.0
Bump github.com/prometheus/client_golang from 1.16.0 to 1.17.0
2023-10-01 18:57:53 -04:00
dependabot[bot]
3f98f3a9c4
Bump github.com/tidwall/gjson from 1.16.0 to 1.17.0
Bumps [github.com/tidwall/gjson](https://github.com/tidwall/gjson) from 1.16.0 to 1.17.0.
- [Commits](https://github.com/tidwall/gjson/compare/v1.16.0...v1.17.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-01 15:39:23 +00:00
dependabot[bot]
6a97ceeee2
Bump github.com/prometheus/client_golang from 1.16.0 to 1.17.0
Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.16.0 to 1.17.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.16.0...v1.17.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>
2023-10-01 15:39:16 +00:00
David Randall
23f00b2bcd
Merge pull request #164 from prometheus-community/repo_sync
Synchronize common files from prometheus/prometheus
2023-09-14 17:53:16 -04:00
prombot
516ae545ba Update common Prometheus files
Signed-off-by: prombot <prometheus-team@googlegroups.com>
2023-09-14 17:50:36 +00:00
David Randall
8dc5d9ab2b
Merge pull request #162 from prometheus-community/repo_sync
Synchronize common files from prometheus/prometheus
2023-09-02 18:31:09 -04:00
prombot
4ec603a2f6 Update common Prometheus files
Signed-off-by: prombot <prometheus-team@googlegroups.com>
2023-09-02 17:50:53 +00:00
David Randall
6fce109f83
Merge pull request #161 from prometheus-community/dependabot/go_modules/github.com/tidwall/gjson-1.16.0
Bump github.com/tidwall/gjson from 1.14.4 to 1.16.0
2023-09-01 11:39:20 -04:00
dependabot[bot]
6846046a77
Bump github.com/tidwall/gjson from 1.14.4 to 1.16.0
Bumps [github.com/tidwall/gjson](https://github.com/tidwall/gjson) from 1.14.4 to 1.16.0.
- [Commits](https://github.com/tidwall/gjson/compare/v1.14.4...v1.16.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-01 15:06:34 +00:00
David Randall
01de0c0ad3
Merge pull request #160 from k0ste/help
Release 0.11.0
2023-08-27 08:41:27 -04:00
Konstantin Shalygin
0c4dd1503f
Release 0.11.0
Signed-off-by: Konstantin Shalygin <k0ste@k0ste.ru>
2023-08-27 12:49:32 +03:00
David Randall
f3588bbcd3
Merge pull request #154 from k0ste/help2
Small fixes & added NVMe total capacity metric
2023-08-26 15:12:13 -04:00
Konstantin Shalygin
1ab518e696
* split block mine to mineBlockSize() from mineCapacity()
* remove redundant meta labels from SCSI metrics
* added `smartctl_device_nvme_capacity_bytes` metric
* for some devices, such as 2.5" NVMe Intel & Micron the `family` field may be empty

The `.user_capacity` exists only when NVMe have single namespace. Otherwise,
for NVMe deivces with multiple namespaces, when device name used witout
namespace number (exporter case) `.user_capacity` will be absent

```
smartctl --info --health --attributes \
--tolerance=verypermissive --nocheck=standby --format=brief --log=error \
/dev/nvme11 --json | jq '.user_capacity'

null

smartctl --info --health --attributes \
--tolerance=verypermissive --nocheck=standby --format=brief --log=error \
/dev/nvme11 --json | jq '.nvme_total_capacity'

3840755982336
```

Signed-off-by: Konstantin Shalygin <k0ste@k0ste.ru>
2023-08-26 21:28:31 +03:00
David Randall
4fe758eb74 Fix #158: collect_fake_json.sh
Signed-off-by: David Randall <David@NiceGuyIT.biz>
2023-08-26 10:33:33 -04:00
David Randall
8ab045d1be
Merge pull request #156 from NiceGuyIT/fix/revert-pr150
Revert "fix Dockerfile for multi-arch"
2023-08-26 07:17:23 -04:00
David Randall
29c2f5dd44 Reverts prometheus-community/smartctl_exporter#150
Signed-off-by: David Randall <David@NiceGuyIT.biz>
2023-08-26 06:55:06 -04:00
David Randall
784061630a
Merge pull request #150 from jfcoz/fix/docker_arm64
fix Dockerfile for multi-arch
2023-08-26 05:19:24 -04:00
Julien Francoz
380f1e96e2 fix Dockerfile for multi-arch
Signed-off-by: Julien Francoz <julien-github@francoz.net>
2023-08-17 23:05:52 +02:00
David Randall
75c76b363f
Merge pull request #148 from leo-minorui/master
Readme issue
2023-08-16 19:54:34 -04:00
David Randall
e9ef093567
Merge pull request #147 from prometheus-community/superq/fix_gauge_name
Fix metricDeviceCount gauge name
2023-08-16 19:44:52 -04:00
Leo
64dcaa68df
Update README.md
suggestion

Signed-off-by: Leo <57588266+leo-minorui@users.noreply.github.com>
2023-08-16 16:17:51 +08:00
Leo
81cc487613
Update README.md
Signed-off-by: Leo <57588266+leo-minorui@users.noreply.github.com>
2023-08-16 16:00:58 +08:00
SuperQ
d5fb66c5f1
Fix metricDeviceCount gauge name
Prometheus naming conventions reserve `_count` for the counter in
histograms. For gauge values the naming convention is to use the plural
of the thing being counted.

Signed-off-by: SuperQ <superq@gmail.com>
2023-08-16 09:21:17 +02:00
David Randall
f5b403b5ba
Merge pull request #129 from Knalltuete5000/devices_count
Add counter for the number of devices configured or dynamically discovered
2023-08-15 19:17:09 -04:00