summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/prometheus/procfs/bcache/bcache.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/prometheus/procfs/bcache/bcache.go')
-rw-r--r--vendor/github.com/prometheus/procfs/bcache/bcache.go84
1 files changed, 84 insertions, 0 deletions
diff --git a/vendor/github.com/prometheus/procfs/bcache/bcache.go b/vendor/github.com/prometheus/procfs/bcache/bcache.go
new file mode 100644
index 000000000..1db178cec
--- /dev/null
+++ b/vendor/github.com/prometheus/procfs/bcache/bcache.go
@@ -0,0 +1,84 @@
+// Copyright 2017 The Prometheus Authors
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package bcache provides access to statistics exposed by the bcache (Linux
+// block cache).
+package bcache
+
+// Stats contains bcache runtime statistics, parsed from /sys/fs/bcache/.
+//
+// The names and meanings of each statistic were taken from bcache.txt and
+// files in drivers/md/bcache in the Linux kernel source. Counters are uint64
+// (in-kernel counters are mostly unsigned long).
+type Stats struct {
+ // The name of the bcache used to source these statistics.
+ Name string
+ Bcache BcacheStats
+ Bdevs []BdevStats
+ Caches []CacheStats
+}
+
+// BcacheStats contains statistics tied to a bcache ID.
+type BcacheStats struct {
+ AverageKeySize uint64
+ BtreeCacheSize uint64
+ CacheAvailablePercent uint64
+ Congested uint64
+ RootUsagePercent uint64
+ TreeDepth uint64
+ Internal InternalStats
+ FiveMin PeriodStats
+ Total PeriodStats
+}
+
+// BdevStats contains statistics for one backing device.
+type BdevStats struct {
+ Name string
+ DirtyData uint64
+ FiveMin PeriodStats
+ Total PeriodStats
+}
+
+// CacheStats contains statistics for one cache device.
+type CacheStats struct {
+ Name string
+ IOErrors uint64
+ MetadataWritten uint64
+ Written uint64
+ Priority PriorityStats
+}
+
+// PriorityStats contains statistics from the priority_stats file.
+type PriorityStats struct {
+ UnusedPercent uint64
+ MetadataPercent uint64
+}
+
+// InternalStats contains internal bcache statistics.
+type InternalStats struct {
+ ActiveJournalEntries uint64
+ BtreeNodes uint64
+ BtreeReadAverageDurationNanoSeconds uint64
+ CacheReadRaces uint64
+}
+
+// PeriodStats contains statistics for a time period (5 min or total).
+type PeriodStats struct {
+ Bypassed uint64
+ CacheBypassHits uint64
+ CacheBypassMisses uint64
+ CacheHits uint64
+ CacheMissCollisions uint64
+ CacheMisses uint64
+ CacheReadaheads uint64
+}