Commit Graph

223 Commits

Author SHA1 Message Date
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
David Randall a1e81266a7
Merge pull request #133 from nazar-pc/patch-1
Example of running with Docker
2023-08-15 19:02:17 -04:00
Ben Kochie cbc6a3b545
Merge pull request #145 from prometheus-community/repo_sync
Synchronize common files from prometheus/prometheus
2023-08-13 05:23:15 +02:00
prombot 8a844499cf Update common Prometheus files
Signed-off-by: prombot <prometheus-team@googlegroups.com>
2023-08-12 17:49:21 +00:00
David Randall d5173a5b6e
Merge pull request #144 from prometheus-community/superq/update-linting
Update linting
2023-08-12 06:14:10 -04:00
David Randall 473af4f99f
Merge pull request #142 from k0ste/help2
Release 0.10.0
2023-08-12 05:26:21 -04:00
SuperQ a9ea7d0e6b
Update linting
* Update upstream Prometheus golanci-lint CI config.
* Update upstream Prometheus Makefile.commmon.
* Update golangci-lint config.

Signed-off-by: SuperQ <superq@gmail.com>
2023-08-12 10:34:18 +02:00
Ben Kochie 670388cdce
Merge pull request #127 from prometheus-community/repo_sync
Synchronize common files from prometheus/prometheus
2023-08-12 10:33:09 +02:00
Konstantin Shalygin 46ba8da969
Release 0.10.0
Signed-off-by: Konstantin Shalygin <k0ste@k0ste.ru>
2023-08-10 22:02:17 +03:00
Konstantin Shalygin 2e780f279e Update CHANGELOG.md
Co-authored-by: Ben Kochie <superq@gmail.com>
Signed-off-by: Konstantin Shalygin <k0ste@k0ste.ru>
2023-08-10 21:58:03 +03:00
Konstantin Shalygin 6d8ccdc85f Release 0.9.2
Signed-off-by: Konstantin Shalygin <k0ste@k0ste.ru>
2023-08-10 21:58:03 +03:00
David Randall 05a503e023
Merge pull request #132 from prometheus-community/dependabot/go_modules/github.com/prometheus/client_golang-1.16.0
Bump github.com/prometheus/client_golang from 1.14.0 to 1.16.0
2023-08-10 13:56:30 -04:00
dependabot[bot] 90280d1efd
Bump github.com/prometheus/client_golang from 1.14.0 to 1.16.0
Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.14.0 to 1.16.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.14.0...v1.16.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-08-10 17:48:30 +00:00
David Randall e5dbffc757
Merge pull request #125 from prometheus-community/dependabot/go_modules/github.com/prometheus/exporter-toolkit-0.10.0
Bump github.com/prometheus/exporter-toolkit from 0.9.1 to 0.10.0
2023-08-10 13:42:40 -04:00
dependabot[bot] e61b719e3b
Bump github.com/prometheus/exporter-toolkit from 0.9.1 to 0.10.0
Bumps [github.com/prometheus/exporter-toolkit](https://github.com/prometheus/exporter-toolkit) from 0.9.1 to 0.10.0.
- [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.9.1...v0.10.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-10 17:40:11 +00:00
David Randall ef4fc654b4
Merge pull request #124 from prometheus-community/dependabot/go_modules/github.com/prometheus/common-0.44.0
Bump github.com/prometheus/common from 0.42.0 to 0.44.0
2023-08-10 13:32:59 -04:00
David Randall 8331d7f6a9
Merge pull request #137 from tekert/remove_duplicate2
Remove duplicate smartctl_device_status metric
2023-08-10 13:25:23 -04:00
David Randall e5bf7aa1b2
Merge pull request #138 from tekert/fix_data_written_ssd
Fix reported Data bytes Read/Written on SSDs
2023-08-10 11:58:18 -04:00
David Randall 17207c7b4b
Merge pull request #141 from k0ste/help2
Added device name to logger rc code parser
2023-08-10 08:47:22 -04:00
David Randall a03bac1f1d
Merge pull request #140 from Knalltuete5000/device_rescan
Add background scanning for devices
2023-08-10 08:44:42 -04:00
Niklas Schwarz 6f41855c36 Add background scanning for devices
Add a background routine to rescan in a specified interval for devices

Signed-off-by: Niklas Schwarz <schwarz.niklas@hotmail.de>
2023-08-10 12:10:39 +02:00
David Randall 6448d79458
Merge pull request #131 from jthiltges/pr/21upd
Critical metrics for SCSI disks added, rebased
2023-08-09 13:50:34 -04:00