Aram Akhavan
c3b2eb2b4f
Identify drives by a Scrutiny UUID instead of wwn ( #960 )
...
* Generate a UUIDv5 from a random namespace based on WWN, model name, and serial number
* Migrate sqlite and influxdb data accordingly
* Update frontend API routes and components
* Fixes #923
2026-03-25 20:16:17 -07:00
Aram Akhavan
3d2671650e
Change LBA metrics to uint64 ( #932 )
...
Fixes #800
2026-02-21 15:54:45 -08:00
mcarbonne
6362512406
Update go to 1.25 ( #875 )
...
Closes #872
* update go to 1.25
* update deprecated gomock
* remove deprecated ioutil
* update (and fix) ci
* add golang lint (as warning)
* enable formatters + freeze golang version
2026-02-08 20:46:36 -08:00
Jason Kulatunga
0565962a14
Check result of attribute casting to avoid panics ( #528 )
2026-02-05 22:14:03 -08:00
mcarbonne
bdbe13e320
Add option to discard SCT Data Table Temperature History ( #557 )
...
Fixes #494
2026-02-05 20:59:24 -08:00
Sam
600cd153e0
491 [FEAT] Allow disks to be hidden/archived
...
- Add archived to device type & db
- Add archive/unarchive handlers to webapp backend
- Add archive toggle & styling to webapp frontend
2025-02-21 09:25:27 +01:00
Brice Bauer
8fa32c6dd7
Add DB Migration and config/settings
2024-05-07 16:45:09 -04:00
Jason Kulatunga
3ea223fa8e
Merge pull request #547 from kaysond/master
...
Add support for disabling repeat notifications if the values haven't changed
2024-02-24 15:10:29 -08:00
Aram Akhavan
98d958888c
refactor common code
2024-02-04 11:38:51 -08:00
Aram Akhavan
6417d71311
Add a setting for repeating notifications or not
2024-02-04 11:38:50 -08:00
Aram Akhavan
3285eb659f
Fix some development issues
2024-02-04 11:38:50 -08:00
Thomas Way
db86bac9ef
fix(collector): show correct nvme capacity
...
Some nvme devices do not report their capacity through the usual
'user_capacity' field, instead the total capacity is reported with the
'nvme_total_capacity' field.
Fixes : #466
2024-01-23 22:02:02 +00:00
adripo
536b590080
feat: dynamic line stroke settings
2022-11-11 00:19:51 +01:00
Jason Kulatunga
3f272b36d4
adding setting to allow users to customize between binary vs SI/Metric units in UI.
...
fixes #330
2022-07-30 08:50:23 -07:00
Jason Kulatunga
7e672e8b8e
adding tests for config.MergeConfigMap functionality. (Set vs SetDefault).
...
Converted all settings keys to snakecase.
2022-07-23 10:19:15 -07:00
Jason Kulatunga
54e2cacb00
move frontend settings into the DB (for consistent settings handling).
...
Flattened settings object.
2022-07-23 09:32:56 -07:00
Jason Kulatunga
29bc79996b
working settings update.
...
Settings are loaded from the DB and added to the AppConfig during startup.
When updating settings, they are stored in AppConfig, and written do the database.
2022-07-19 23:12:23 -07:00
Jason Kulatunga
99af2b8b16
WIP settings system.
...
- updated dbdiagrams schema
- [BREAKING] force failure if `notify.filter_attributes` or `notify.level` is set
- added Settings table (and default values during migration)
- Added Save Settings and Get Settings functions.
- Added web API endpoints for getting and saving settings.
- Deprecated old Notify* constants. Created new MetricsStatus* and MetricsNotifyLevel constants.
2022-07-17 10:32:28 -07:00
Jason Kulatunga
5b2746f389
initial settings table.
2022-07-16 21:50:48 -07:00
Jason Kulatunga
df23ecdf33
fix typing for attribute status enum stored in database.
2022-06-04 09:42:45 -07:00
Jason Kulatunga
488fcfc820
added AttributeStatus bit flag
...
ensure DeviceStatus is a valid bit flag.
[docs] added running tests section to contribution guide.
make sure UI correctly treats scrutiny failures as failed.
2022-05-31 13:31:34 -07:00
Jason Kulatunga
3a970e7a27
Merge pull request #262 from AnalogJ/beta
...
pre-v0.4.7 release
2022-05-25 07:50:21 -07:00
Jason Kulatunga
46d0b70399
disable NVMe Scrutiny failures for "Numb Error Log Entries" attribute. More analysis needed for NVMe drives & their critical attributes.
...
- fixes #187
- fixes #247
2022-05-23 09:50:15 -07:00
Jason Kulatunga
999c12748c
added a way to retrieve raw udev data. Can be used to retrieve disk label, UUID and "disk/by-id/*" device info.
...
Storing it in the database during device registration.
2022-05-20 20:59:29 -07:00
Jason Kulatunga
e7801619cd
added additional tests from #187 .
...
Detected that the frontend was incorrectly classifying Scrutiny Failures as Warnings.
Fixed.
2022-05-12 10:04:06 -07:00
Jason Kulatunga
5ed69d7fc4
adding tests for Smart and parser.
2022-05-06 22:15:19 -07:00
Jason Kulatunga
1ced2198c7
cleanup log messages.
2022-05-04 21:04:58 -07:00
Jason Kulatunga
8fe0dbed6b
partially working. Some datapoints are failing with panic and are silently ignored.
...
TODO must fix.
2022-05-03 22:40:31 -07:00
Jason Kulatunga
f569ab6474
[BROKEN COMMIT]
...
This code leverages the new `types.isType` functionality introduced in the flux language (https://github.com/influxdata/flux/issues/2159 )
This code will fix https://github.com/AnalogJ/scrutiny/issues/22 and all related issues.
Unfortunately this code is broken because the influxdb go client library does not correctly handle import statments in the task defintion.
blocked by
https://github.com/influxdata/influxdb-client-go/issues/322
2022-04-27 22:41:56 -07:00
Jason Kulatunga
0872da57d7
fixes for tests.
2021-11-17 21:08:56 -08:00
Jason Kulatunga
772063a843
find the temp history for the last week (by default). Smooth out data using aggregate window for hourly numbers. Better temp casting during influx data inflating.
2021-11-16 19:07:37 -08:00
Jason Kulatunga
b776fb8886
tweaking retention policy code so we can test downsampling scripts.
2021-11-16 18:32:29 -08:00
Jason Kulatunga
ce032c5609
fixes for Scrutiny end-to-end testing.
2021-10-28 07:35:25 -07:00
Jason Kulatunga
5789c836db
make sure the status is always exposed in the json data. make sure display_name for metadata is included. Update mocked test data for frontend.
2021-10-24 17:09:44 -07:00
Jason Kulatunga
deba21fe19
update timestamps for testing.
2021-10-24 16:26:41 -07:00
Jason Kulatunga
31b5dfa038
ensure that all buckets are created during init. Remove all references to "name" field for attributes (shoudl come from metadata instead). Status is now an int64 (0 is passing).
2021-10-24 16:01:53 -07:00
Jason Kulatunga
9878985fa3
adding aggregation code
2021-10-24 13:07:12 -07:00
Jason Kulatunga
bd19230cbf
make sure data is persisted to DB.
2021-07-25 22:32:13 -07:00
Jason Kulatunga
80f4660130
validate thresholds whenever SMART data is recieved.
2021-07-25 22:11:07 -07:00
Jason Kulatunga
8a46931399
!!!!WIP!!!!
...
adding InfluxDB
- influxdb added to dockerfile
- influxdb s6 service
- influxdb config
- adding defaults to config
- creating a DeviceRepo interface (multiple db backends)
- implemented DeviceRepo interface as ScruitnyRepository
2021-06-27 10:55:18 -07:00
Jason Kulatunga
9fac3c6308
fix gorm dependency.
2020-10-07 22:07:51 -06:00
Jason Kulatunga
b44ef5cb9c
adding support for a collecto config file.
...
/scrutiny/config/collector.yaml
Adding ability to specify host identifier (label), that is updated on every collector run.
Can be specified by `host-id` CLI or `COLLECTOR_HOST_ID` env var.
Created a config class, interface and associated tests.
Created a "TransformDetectedDrives" function, that will allow users to insert drives not detected by Smarctl --scan, ignore drives that they dont want, and override smartctl device type.
Added Upsert functionality when registering devices.
Replaced "github.com/jinzhu/gorm" with "gorm.io/gorm" (ORM location moved, was using incorrect lib url)
Removed machineid library.
2020-10-07 21:54:29 -06:00
Jason Kulatunga
1246f5bba9
started working on notifications.
2020-09-30 08:50:10 -06:00
Jason Kulatunga
ad3f8480d9
added some anonymized nvme test data to ensure that NVMe drives are correctly processed by new device detection. thanks @Roxedus.
...
All db testing is done with files created in a temp directory.
2020-09-20 17:37:43 -06:00
Jason Kulatunga
66122778a3
only the firmware can really change between scans. Lets slim down the metadata update.
2020-09-20 17:37:43 -06:00
Jason Kulatunga
23d5b86b1b
new device detection engine (OS aware). Uses smartctl --scan to detect drives (and conditionally uses jaypipes/ghw). WWN is calculated from smartctl data, then retrieved from GHW, and fallsback to serial number. WWN calcuation code is based on IEEE spec, for "Registered" IEEE format - NAA5. TODO: support NAA6 and other formats?
2020-09-20 17:37:43 -06:00
Jason Kulatunga
5101a37964
adding device protocl and type to the. Adding class for parsing smartctl --scan json output, for device detection. added an example/test file for smartctl -x -j added a placeholder settings panel. moved dashboard & details compoonent out of "Admin" directory.
2020-09-18 10:14:19 -06:00
Jason Kulatunga
86fc10b7b9
added ideal and thresholds for NVMe and SCSI drives.
...
Added functions (PopulateAttributeStatus) to ensure that NVME and SCSI drives set the status for SMART attributes.
Moved Status populating fucntion into the *Attribute files, so they are closer to the code they actually interact with.
Fix frontend to correctly display status, thresh and Ideal for NVMe and SCSI ddrives.
2020-09-08 22:24:24 -07:00
Jason Kulatunga
5dd3aed1fe
adding threshold for percentage Used.
...
Adding release pipeline.
2020-09-06 16:06:52 -07:00
Jason Kulatunga
e283d43654
rename metadata class names.
...
adding metadata for NVME and SCSI drives.
send back protocol specific metadata for displaying data in the UI for attributes.
UI - moved all metadata lookups into named functions (for better if/else logic)
show different columns if nvme or scsi.
2020-08-28 00:41:08 -07:00