Metrics for IO errors on Mac. (#1636)

* Metrics for IO errors and retries on Mac.

Signed-off-by: Tom Wilkie <tom@grafana.com>
This commit is contained in:
Tom Wilkie 2020-03-22 01:35:38 +05:30 committed by GitHub
commit 6496c24d61
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 80 additions and 4 deletions

3
vendor/github.com/lufia/iostat/go.mod generated vendored Normal file
View file

@ -0,0 +1,3 @@
module github.com/lufia/iostat
go 1.14

View file

@ -17,6 +17,10 @@ type DriveStats struct {
TotalWriteTime time.Duration
ReadLatency time.Duration
WriteLatency time.Duration
ReadErrors int64
WriteErrors int64
ReadRetries int64
WriteRetries int64
}
// CPUStats represents CPU statistics.

View file

@ -95,6 +95,10 @@ static struct {
{kIOBlockStorageDriverStatisticsTotalWriteTimeKey, offsetof(DriveStats, writetime)},
{kIOBlockStorageDriverStatisticsLatentReadTimeKey, offsetof(DriveStats, readlat)},
{kIOBlockStorageDriverStatisticsLatentWriteTimeKey, offsetof(DriveStats, writelat)},
{kIOBlockStorageDriverStatisticsReadErrorsKey, offsetof(DriveStats, readerrs)},
{kIOBlockStorageDriverStatisticsWriteErrorsKey, offsetof(DriveStats, writeerrs)},
{kIOBlockStorageDriverStatisticsReadRetriesKey, offsetof(DriveStats, readretries)},
{kIOBlockStorageDriverStatisticsWriteRetriesKey, offsetof(DriveStats, writeretries)},
};
static int

View file

@ -32,6 +32,10 @@ func ReadDriveStats() ([]*DriveStats, error) {
TotalWriteTime: time.Duration(buf[i].writetime),
ReadLatency: time.Duration(buf[i].readlat),
WriteLatency: time.Duration(buf[i].writelat),
ReadErrors: int64(buf[i].readerrs),
WriteErrors: int64(buf[i].writeerrs),
ReadRetries: int64(buf[i].readretries),
WriteRetries: int64(buf[i].writeretries),
}
}
return stats, nil

View file

@ -19,6 +19,10 @@ struct DriveStats {
int64_t writetime;
int64_t readlat;
int64_t writelat;
int64_t readerrs;
int64_t writeerrs;
int64_t readretries;
int64_t writeretries;
};
struct CPUStats {

2
vendor/modules.txt vendored
View file

@ -30,7 +30,7 @@ github.com/golang/protobuf/ptypes/duration
github.com/golang/protobuf/ptypes/timestamp
# github.com/hodgesds/perf-utils v0.0.8
github.com/hodgesds/perf-utils
# github.com/lufia/iostat v0.0.0-20170605150913-9f7362b77ad3
# github.com/lufia/iostat v1.1.0
github.com/lufia/iostat
# github.com/mattn/go-xmlrpc v0.0.3
github.com/mattn/go-xmlrpc