Add Btrfs collector (#1512)
* Add procfs/btrfs to vendor folder * Add Btrfs collector Resolves #1100 Signed-off-by: Silke Hofstra <silke@slxh.eu>
This commit is contained in:
parent
ca1ac435ea
commit
8faa843fc4
|
@ -23,6 +23,7 @@
|
|||
* [FEATURE] Add new cooling_device metrics to thermal zone collector #1445
|
||||
* [FEATURE] Add new softnet collector #1576
|
||||
* [FEATURE] Add RAPL collector #1523
|
||||
* [FEATURE] Add Btrfs collector #1512
|
||||
* [ENHANCEMENT] Collect InfiniBand port state and physical state #1357
|
||||
* [ENHANCEMENT] Include additional XFS runtime statistics. #1423
|
||||
* [ENHANCEMENT] Report non-fatal collection errors in the exporter metric. #1439
|
||||
|
|
|
@ -0,0 +1,189 @@
|
|||
// Copyright 2019 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.
|
||||
|
||||
// +build !nobtrfs
|
||||
|
||||
package collector
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/go-kit/kit/log"
|
||||
"github.com/prometheus/client_golang/prometheus"
|
||||
"github.com/prometheus/procfs/btrfs"
|
||||
)
|
||||
|
||||
// A btrfsCollector is a Collector which gathers metrics from Btrfs filesystems.
|
||||
type btrfsCollector struct {
|
||||
fs btrfs.FS
|
||||
logger log.Logger
|
||||
}
|
||||
|
||||
func init() {
|
||||
registerCollector("btrfs", defaultEnabled, NewBtrfsCollector)
|
||||
}
|
||||
|
||||
// NewBtrfsCollector returns a new Collector exposing Btrfs statistics.
|
||||
func NewBtrfsCollector(logger log.Logger) (Collector, error) {
|
||||
fs, err := btrfs.NewFS(*sysPath)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to open sysfs: %v", err)
|
||||
}
|
||||
|
||||
return &btrfsCollector{
|
||||
fs: fs,
|
||||
logger: logger,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// Update retrieves and exports Btrfs statistics.
|
||||
// It implements Collector.
|
||||
func (c *btrfsCollector) Update(ch chan<- prometheus.Metric) error {
|
||||
stats, err := c.fs.Stats()
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to retrieve Btrfs stats: %v", err)
|
||||
}
|
||||
|
||||
for _, s := range stats {
|
||||
c.updateBtrfsStats(ch, s)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// btrfsMetric represents a single Btrfs metric that is converted into a Prometheus Metric.
|
||||
type btrfsMetric struct {
|
||||
name string
|
||||
desc string
|
||||
value float64
|
||||
extraLabel []string
|
||||
extraLabelValue []string
|
||||
}
|
||||
|
||||
// updateBtrfsStats collects statistics for one bcache ID.
|
||||
func (c *btrfsCollector) updateBtrfsStats(ch chan<- prometheus.Metric, s *btrfs.Stats) {
|
||||
const subsystem = "btrfs"
|
||||
|
||||
// Basic information about the filesystem.
|
||||
devLabels := []string{"uuid"}
|
||||
|
||||
// Retrieve the metrics.
|
||||
metrics := c.getMetrics(s)
|
||||
|
||||
// Convert all gathered metrics to Prometheus Metrics and add to channel.
|
||||
for _, m := range metrics {
|
||||
labels := append(devLabels, m.extraLabel...)
|
||||
|
||||
desc := prometheus.NewDesc(
|
||||
prometheus.BuildFQName(namespace, subsystem, m.name),
|
||||
m.desc,
|
||||
labels,
|
||||
nil,
|
||||
)
|
||||
|
||||
labelValues := []string{s.UUID}
|
||||
if len(m.extraLabelValue) > 0 {
|
||||
labelValues = append(labelValues, m.extraLabelValue...)
|
||||
}
|
||||
|
||||
ch <- prometheus.MustNewConstMetric(
|
||||
desc,
|
||||
prometheus.GaugeValue,
|
||||
m.value,
|
||||
labelValues...,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// getMetrics returns metrics for the given Btrfs statistics.
|
||||
func (c *btrfsCollector) getMetrics(s *btrfs.Stats) []btrfsMetric {
|
||||
metrics := []btrfsMetric{
|
||||
{
|
||||
name: "info",
|
||||
desc: "Filesystem information",
|
||||
value: 1,
|
||||
extraLabel: []string{"label"},
|
||||
extraLabelValue: []string{s.Label},
|
||||
},
|
||||
{
|
||||
name: "global_rsv_size_bytes",
|
||||
desc: "Size of global reserve.",
|
||||
value: float64(s.Allocation.GlobalRsvSize),
|
||||
},
|
||||
}
|
||||
|
||||
// Information about devices.
|
||||
for n, dev := range s.Devices {
|
||||
metrics = append(metrics, btrfsMetric{
|
||||
name: "device_size_bytes",
|
||||
desc: "Size of a device that is part of the filesystem.",
|
||||
value: float64(dev.Size),
|
||||
extraLabel: []string{"device"},
|
||||
extraLabelValue: []string{n},
|
||||
})
|
||||
}
|
||||
|
||||
// Information about data, metadata and system data.
|
||||
metrics = append(metrics, c.getAllocationStats("data", s.Allocation.Data)...)
|
||||
metrics = append(metrics, c.getAllocationStats("metadata", s.Allocation.Metadata)...)
|
||||
metrics = append(metrics, c.getAllocationStats("system", s.Allocation.System)...)
|
||||
|
||||
return metrics
|
||||
}
|
||||
|
||||
// getAllocationStats returns allocation metrics for the given Btrfs Allocation statistics.
|
||||
func (c *btrfsCollector) getAllocationStats(a string, s *btrfs.AllocationStats) []btrfsMetric {
|
||||
metrics := []btrfsMetric{
|
||||
{
|
||||
name: "reserved_bytes",
|
||||
desc: "Amount of space reserved for a data type",
|
||||
value: float64(s.ReservedBytes),
|
||||
extraLabel: []string{"block_group_type"},
|
||||
extraLabelValue: []string{a},
|
||||
},
|
||||
}
|
||||
|
||||
// Add all layout statistics.
|
||||
for layout, stats := range s.Layouts {
|
||||
metrics = append(metrics, c.getLayoutStats(a, layout, stats)...)
|
||||
}
|
||||
|
||||
return metrics
|
||||
}
|
||||
|
||||
// getLayoutStats returns metrics for a data layout.
|
||||
func (c *btrfsCollector) getLayoutStats(a, l string, s *btrfs.LayoutUsage) []btrfsMetric {
|
||||
return []btrfsMetric{
|
||||
{
|
||||
name: "used_bytes",
|
||||
desc: "Amount of used space by a layout/data type",
|
||||
value: float64(s.UsedBytes),
|
||||
extraLabel: []string{"block_group_type", "mode"},
|
||||
extraLabelValue: []string{a, l},
|
||||
},
|
||||
{
|
||||
name: "size_bytes",
|
||||
desc: "Amount of space allocated for a layout/data type",
|
||||
value: float64(s.TotalBytes),
|
||||
extraLabel: []string{"block_group_type", "mode"},
|
||||
extraLabelValue: []string{a, l},
|
||||
},
|
||||
{
|
||||
name: "allocation_ratio",
|
||||
desc: "Data allocation ratio for a layout/data type",
|
||||
value: s.Ratio,
|
||||
extraLabel: []string{"block_group_type", "mode"},
|
||||
extraLabelValue: []string{a, l},
|
||||
},
|
||||
}
|
||||
}
|
|
@ -0,0 +1,118 @@
|
|||
// Copyright 2019 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.
|
||||
|
||||
// +build !nobtrfs
|
||||
|
||||
package collector
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/prometheus/procfs/btrfs"
|
||||
)
|
||||
|
||||
var expectedBtrfsMetrics = [][]btrfsMetric{
|
||||
{
|
||||
{name: "info", value: 1, extraLabel: []string{"label"}, extraLabelValue: []string{"fixture"}},
|
||||
{name: "global_rsv_size_bytes", value: 1.6777216e+07},
|
||||
{name: "device_size_bytes", value: 1.073741824e+10, extraLabel: []string{"device"}, extraLabelValue: []string{"loop25"}},
|
||||
{name: "device_size_bytes", value: 1.073741824e+10, extraLabel: []string{"device"}, extraLabelValue: []string{"loop26"}},
|
||||
{name: "reserved_bytes", value: 0, extraLabel: []string{"block_group_type"}, extraLabelValue: []string{"data"}},
|
||||
{name: "used_bytes", value: 8.08189952e+08, extraLabel: []string{"block_group_type", "mode"}, extraLabelValue: []string{"data", "raid0"}},
|
||||
{name: "size_bytes", value: 2.147483648e+09, extraLabel: []string{"block_group_type", "mode"}, extraLabelValue: []string{"data", "raid0"}},
|
||||
{name: "allocation_ratio", value: 1, extraLabel: []string{"block_group_type", "mode"}, extraLabelValue: []string{"data", "raid0"}},
|
||||
{name: "reserved_bytes", value: 0, extraLabel: []string{"block_group_type"}, extraLabelValue: []string{"metadata"}},
|
||||
{name: "used_bytes", value: 933888, extraLabel: []string{"block_group_type", "mode"}, extraLabelValue: []string{"metadata", "raid1"}},
|
||||
{name: "size_bytes", value: 1.073741824e+09, extraLabel: []string{"block_group_type", "mode"}, extraLabelValue: []string{"metadata", "raid1"}},
|
||||
{name: "allocation_ratio", value: 2, extraLabel: []string{"block_group_type", "mode"}, extraLabelValue: []string{"metadata", "raid1"}},
|
||||
{name: "reserved_bytes", value: 0, extraLabel: []string{"block_group_type"}, extraLabelValue: []string{"system"}},
|
||||
{name: "used_bytes", value: 16384, extraLabel: []string{"block_group_type", "mode"}, extraLabelValue: []string{"system", "raid1"}},
|
||||
{name: "size_bytes", value: 8.388608e+06, extraLabel: []string{"block_group_type", "mode"}, extraLabelValue: []string{"system", "raid1"}},
|
||||
{name: "allocation_ratio", value: 2, extraLabel: []string{"block_group_type", "mode"}, extraLabelValue: []string{"system", "raid1"}},
|
||||
},
|
||||
{
|
||||
{name: "info", value: 1, extraLabel: []string{"label"}, extraLabelValue: []string{""}},
|
||||
{name: "global_rsv_size_bytes", value: 1.6777216e+07},
|
||||
{name: "device_size_bytes", value: 1.073741824e+10, extraLabel: []string{"device"}, extraLabelValue: []string{"loop22"}},
|
||||
{name: "device_size_bytes", value: 1.073741824e+10, extraLabel: []string{"device"}, extraLabelValue: []string{"loop23"}},
|
||||
{name: "device_size_bytes", value: 1.073741824e+10, extraLabel: []string{"device"}, extraLabelValue: []string{"loop24"}},
|
||||
{name: "device_size_bytes", value: 1.073741824e+10, extraLabel: []string{"device"}, extraLabelValue: []string{"loop25"}},
|
||||
{name: "reserved_bytes", value: 0, extraLabel: []string{"block_group_type"}, extraLabelValue: []string{"data"}},
|
||||
{name: "used_bytes", value: 0, extraLabel: []string{"block_group_type", "mode"}, extraLabelValue: []string{"data", "raid5"}},
|
||||
{name: "size_bytes", value: 6.44087808e+08, extraLabel: []string{"block_group_type", "mode"}, extraLabelValue: []string{"data", "raid5"}},
|
||||
{name: "allocation_ratio", value: 1.3333333333333333, extraLabel: []string{"block_group_type", "mode"}, extraLabelValue: []string{"data", "raid5"}},
|
||||
{name: "reserved_bytes", value: 0, extraLabel: []string{"block_group_type"}, extraLabelValue: []string{"metadata"}},
|
||||
{name: "used_bytes", value: 114688, extraLabel: []string{"block_group_type", "mode"}, extraLabelValue: []string{"metadata", "raid6"}},
|
||||
{name: "size_bytes", value: 4.29391872e+08, extraLabel: []string{"block_group_type", "mode"}, extraLabelValue: []string{"metadata", "raid6"}},
|
||||
{name: "allocation_ratio", value: 2, extraLabel: []string{"block_group_type", "mode"}, extraLabelValue: []string{"metadata", "raid6"}},
|
||||
{name: "reserved_bytes", value: 0, extraLabel: []string{"block_group_type"}, extraLabelValue: []string{"system"}},
|
||||
{name: "used_bytes", value: 16384, extraLabel: []string{"block_group_type", "mode"}, extraLabelValue: []string{"system", "raid6"}},
|
||||
{name: "size_bytes", value: 1.6777216e+07, extraLabel: []string{"block_group_type", "mode"}, extraLabelValue: []string{"system", "raid6"}},
|
||||
{name: "allocation_ratio", value: 2, extraLabel: []string{"block_group_type", "mode"}, extraLabelValue: []string{"system", "raid6"}},
|
||||
},
|
||||
}
|
||||
|
||||
func checkMetric(exp, got *btrfsMetric) bool {
|
||||
if exp.name != got.name ||
|
||||
exp.value != got.value ||
|
||||
len(exp.extraLabel) != len(got.extraLabel) ||
|
||||
len(exp.extraLabelValue) != len(got.extraLabelValue) {
|
||||
return false
|
||||
}
|
||||
|
||||
for i := range exp.extraLabel {
|
||||
if exp.extraLabel[i] != got.extraLabel[i] {
|
||||
return false
|
||||
}
|
||||
|
||||
// Devices (loopXX) can appear in random order, so just check the first 4 characters.
|
||||
if strings.HasPrefix(got.extraLabelValue[i], "loop") &&
|
||||
exp.extraLabelValue[i][:4] == got.extraLabelValue[i][:4] {
|
||||
continue
|
||||
}
|
||||
|
||||
if exp.extraLabelValue[i] != got.extraLabelValue[i] {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
func TestBtrfs(t *testing.T) {
|
||||
fs, _ := btrfs.NewFS("fixtures/sys")
|
||||
collector := &btrfsCollector{fs: fs}
|
||||
|
||||
stats, err := collector.fs.Stats()
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to retrieve Btrfs stats: %v", err)
|
||||
}
|
||||
if len(stats) != len(expectedBtrfsMetrics) {
|
||||
t.Fatalf("Unexpected number of Btrfs stats: expected %v, got %v", len(expectedBtrfsMetrics), len(stats))
|
||||
}
|
||||
|
||||
for i, s := range stats {
|
||||
metrics := collector.getMetrics(s)
|
||||
if len(metrics) != len(expectedBtrfsMetrics[i]) {
|
||||
t.Fatalf("Unexpected number of Btrfs metrics: expected %v, got %v", len(expectedBtrfsMetrics[i]), len(metrics))
|
||||
}
|
||||
|
||||
for j, m := range metrics {
|
||||
exp := expectedBtrfsMetrics[i][j]
|
||||
if !checkMetric(&exp, &m) {
|
||||
t.Errorf("Incorrect btrfs metric: expected %#v, got: %#v", exp, m)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -140,6 +140,54 @@ node_bonding_slaves{master="int"} 2
|
|||
# HELP node_boot_time_seconds Node boot time, in unixtime.
|
||||
# TYPE node_boot_time_seconds gauge
|
||||
node_boot_time_seconds 1.418183276e+09
|
||||
# HELP node_btrfs_allocation_ratio Data allocation ratio for a layout/data type
|
||||
# TYPE node_btrfs_allocation_ratio gauge
|
||||
node_btrfs_allocation_ratio{block_group_type="data",mode="raid0",uuid="0abb23a9-579b-43e6-ad30-227ef47fcb9d"} 1
|
||||
node_btrfs_allocation_ratio{block_group_type="data",mode="raid5",uuid="7f07c59f-6136-449c-ab87-e1cf2328731b"} 1.3333333333333333
|
||||
node_btrfs_allocation_ratio{block_group_type="metadata",mode="raid1",uuid="0abb23a9-579b-43e6-ad30-227ef47fcb9d"} 2
|
||||
node_btrfs_allocation_ratio{block_group_type="metadata",mode="raid6",uuid="7f07c59f-6136-449c-ab87-e1cf2328731b"} 2
|
||||
node_btrfs_allocation_ratio{block_group_type="system",mode="raid1",uuid="0abb23a9-579b-43e6-ad30-227ef47fcb9d"} 2
|
||||
node_btrfs_allocation_ratio{block_group_type="system",mode="raid6",uuid="7f07c59f-6136-449c-ab87-e1cf2328731b"} 2
|
||||
# HELP node_btrfs_device_size_bytes Size of a device that is part of the filesystem.
|
||||
# TYPE node_btrfs_device_size_bytes gauge
|
||||
node_btrfs_device_size_bytes{device="loop22",uuid="7f07c59f-6136-449c-ab87-e1cf2328731b"} 1.073741824e+10
|
||||
node_btrfs_device_size_bytes{device="loop23",uuid="7f07c59f-6136-449c-ab87-e1cf2328731b"} 1.073741824e+10
|
||||
node_btrfs_device_size_bytes{device="loop24",uuid="7f07c59f-6136-449c-ab87-e1cf2328731b"} 1.073741824e+10
|
||||
node_btrfs_device_size_bytes{device="loop25",uuid="0abb23a9-579b-43e6-ad30-227ef47fcb9d"} 1.073741824e+10
|
||||
node_btrfs_device_size_bytes{device="loop25",uuid="7f07c59f-6136-449c-ab87-e1cf2328731b"} 1.073741824e+10
|
||||
node_btrfs_device_size_bytes{device="loop26",uuid="0abb23a9-579b-43e6-ad30-227ef47fcb9d"} 1.073741824e+10
|
||||
# HELP node_btrfs_global_rsv_size_bytes Size of global reserve.
|
||||
# TYPE node_btrfs_global_rsv_size_bytes gauge
|
||||
node_btrfs_global_rsv_size_bytes{uuid="0abb23a9-579b-43e6-ad30-227ef47fcb9d"} 1.6777216e+07
|
||||
node_btrfs_global_rsv_size_bytes{uuid="7f07c59f-6136-449c-ab87-e1cf2328731b"} 1.6777216e+07
|
||||
# HELP node_btrfs_info Filesystem information
|
||||
# TYPE node_btrfs_info gauge
|
||||
node_btrfs_info{label="",uuid="7f07c59f-6136-449c-ab87-e1cf2328731b"} 1
|
||||
node_btrfs_info{label="fixture",uuid="0abb23a9-579b-43e6-ad30-227ef47fcb9d"} 1
|
||||
# HELP node_btrfs_reserved_bytes Amount of space reserved for a data type
|
||||
# TYPE node_btrfs_reserved_bytes gauge
|
||||
node_btrfs_reserved_bytes{block_group_type="data",uuid="0abb23a9-579b-43e6-ad30-227ef47fcb9d"} 0
|
||||
node_btrfs_reserved_bytes{block_group_type="data",uuid="7f07c59f-6136-449c-ab87-e1cf2328731b"} 0
|
||||
node_btrfs_reserved_bytes{block_group_type="metadata",uuid="0abb23a9-579b-43e6-ad30-227ef47fcb9d"} 0
|
||||
node_btrfs_reserved_bytes{block_group_type="metadata",uuid="7f07c59f-6136-449c-ab87-e1cf2328731b"} 0
|
||||
node_btrfs_reserved_bytes{block_group_type="system",uuid="0abb23a9-579b-43e6-ad30-227ef47fcb9d"} 0
|
||||
node_btrfs_reserved_bytes{block_group_type="system",uuid="7f07c59f-6136-449c-ab87-e1cf2328731b"} 0
|
||||
# HELP node_btrfs_size_bytes Amount of space allocated for a layout/data type
|
||||
# TYPE node_btrfs_size_bytes gauge
|
||||
node_btrfs_size_bytes{block_group_type="data",mode="raid0",uuid="0abb23a9-579b-43e6-ad30-227ef47fcb9d"} 2.147483648e+09
|
||||
node_btrfs_size_bytes{block_group_type="data",mode="raid5",uuid="7f07c59f-6136-449c-ab87-e1cf2328731b"} 6.44087808e+08
|
||||
node_btrfs_size_bytes{block_group_type="metadata",mode="raid1",uuid="0abb23a9-579b-43e6-ad30-227ef47fcb9d"} 1.073741824e+09
|
||||
node_btrfs_size_bytes{block_group_type="metadata",mode="raid6",uuid="7f07c59f-6136-449c-ab87-e1cf2328731b"} 4.29391872e+08
|
||||
node_btrfs_size_bytes{block_group_type="system",mode="raid1",uuid="0abb23a9-579b-43e6-ad30-227ef47fcb9d"} 8.388608e+06
|
||||
node_btrfs_size_bytes{block_group_type="system",mode="raid6",uuid="7f07c59f-6136-449c-ab87-e1cf2328731b"} 1.6777216e+07
|
||||
# HELP node_btrfs_used_bytes Amount of used space by a layout/data type
|
||||
# TYPE node_btrfs_used_bytes gauge
|
||||
node_btrfs_used_bytes{block_group_type="data",mode="raid0",uuid="0abb23a9-579b-43e6-ad30-227ef47fcb9d"} 8.08189952e+08
|
||||
node_btrfs_used_bytes{block_group_type="data",mode="raid5",uuid="7f07c59f-6136-449c-ab87-e1cf2328731b"} 0
|
||||
node_btrfs_used_bytes{block_group_type="metadata",mode="raid1",uuid="0abb23a9-579b-43e6-ad30-227ef47fcb9d"} 933888
|
||||
node_btrfs_used_bytes{block_group_type="metadata",mode="raid6",uuid="7f07c59f-6136-449c-ab87-e1cf2328731b"} 114688
|
||||
node_btrfs_used_bytes{block_group_type="system",mode="raid1",uuid="0abb23a9-579b-43e6-ad30-227ef47fcb9d"} 16384
|
||||
node_btrfs_used_bytes{block_group_type="system",mode="raid6",uuid="7f07c59f-6136-449c-ab87-e1cf2328731b"} 16384
|
||||
# HELP node_buddyinfo_blocks Count of free blocks according to size.
|
||||
# TYPE node_buddyinfo_blocks gauge
|
||||
node_buddyinfo_blocks{node="0",size="0",zone="DMA"} 1
|
||||
|
@ -2560,6 +2608,7 @@ node_schedstat_waiting_seconds_total{cpu="1"} 364107.263788241
|
|||
node_scrape_collector_success{collector="arp"} 1
|
||||
node_scrape_collector_success{collector="bcache"} 1
|
||||
node_scrape_collector_success{collector="bonding"} 1
|
||||
node_scrape_collector_success{collector="btrfs"} 1
|
||||
node_scrape_collector_success{collector="buddyinfo"} 1
|
||||
node_scrape_collector_success{collector="conntrack"} 1
|
||||
node_scrape_collector_success{collector="cpu"} 1
|
||||
|
|
|
@ -3233,6 +3233,601 @@ Lines: 1
|
|||
0
|
||||
Mode: 644
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/data
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/data/bytes_may_use
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/data/bytes_pinned
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/data/bytes_readonly
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/data/bytes_reserved
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/data/bytes_used
|
||||
Lines: 1
|
||||
808189952
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/data/disk_total
|
||||
Lines: 1
|
||||
2147483648
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/data/disk_used
|
||||
Lines: 1
|
||||
808189952
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/data/flags
|
||||
Lines: 1
|
||||
1
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/data/raid0
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/data/raid0/total_bytes
|
||||
Lines: 1
|
||||
2147483648
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/data/raid0/used_bytes
|
||||
Lines: 1
|
||||
808189952
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/data/total_bytes
|
||||
Lines: 1
|
||||
2147483648
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/data/total_bytes_pinned
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/global_rsv_reserved
|
||||
Lines: 1
|
||||
16777216
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/global_rsv_size
|
||||
Lines: 1
|
||||
16777216
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/metadata
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/metadata/bytes_may_use
|
||||
Lines: 1
|
||||
16777216
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/metadata/bytes_pinned
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/metadata/bytes_readonly
|
||||
Lines: 1
|
||||
131072
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/metadata/bytes_reserved
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/metadata/bytes_used
|
||||
Lines: 1
|
||||
933888
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/metadata/disk_total
|
||||
Lines: 1
|
||||
2147483648
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/metadata/disk_used
|
||||
Lines: 1
|
||||
1867776
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/metadata/flags
|
||||
Lines: 1
|
||||
4
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/metadata/raid1
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/metadata/raid1/total_bytes
|
||||
Lines: 1
|
||||
1073741824
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/metadata/raid1/used_bytes
|
||||
Lines: 1
|
||||
933888
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/metadata/total_bytes
|
||||
Lines: 1
|
||||
1073741824
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/metadata/total_bytes_pinned
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/system
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/system/bytes_may_use
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/system/bytes_pinned
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/system/bytes_readonly
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/system/bytes_reserved
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/system/bytes_used
|
||||
Lines: 1
|
||||
16384
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/system/disk_total
|
||||
Lines: 1
|
||||
16777216
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/system/disk_used
|
||||
Lines: 1
|
||||
32768
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/system/flags
|
||||
Lines: 1
|
||||
2
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/system/raid1
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/system/raid1/total_bytes
|
||||
Lines: 1
|
||||
8388608
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/system/raid1/used_bytes
|
||||
Lines: 1
|
||||
16384
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/system/total_bytes
|
||||
Lines: 1
|
||||
8388608
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/allocation/system/total_bytes_pinned
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/clone_alignment
|
||||
Lines: 1
|
||||
4096
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/devices
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/devices/loop25
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/devices/loop25/size
|
||||
Lines: 1
|
||||
20971520
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/devices/loop26
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/devices/loop26/size
|
||||
Lines: 1
|
||||
20971520
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/features
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/features/big_metadata
|
||||
Lines: 1
|
||||
1
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/features/extended_iref
|
||||
Lines: 1
|
||||
1
|
||||
Mode: 644
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/features/mixed_backref
|
||||
Lines: 1
|
||||
1
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/features/skinny_metadata
|
||||
Lines: 1
|
||||
1
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/label
|
||||
Lines: 1
|
||||
fixture
|
||||
Mode: 644
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/metadata_uuid
|
||||
Lines: 1
|
||||
0abb23a9-579b-43e6-ad30-227ef47fcb9d
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/nodesize
|
||||
Lines: 1
|
||||
16384
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/quota_override
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 644
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/0abb23a9-579b-43e6-ad30-227ef47fcb9d/sectorsize
|
||||
Lines: 1
|
||||
4096
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/data
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/data/bytes_may_use
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/data/bytes_pinned
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/data/bytes_readonly
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/data/bytes_reserved
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/data/bytes_used
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/data/disk_total
|
||||
Lines: 1
|
||||
644087808
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/data/disk_used
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/data/flags
|
||||
Lines: 1
|
||||
1
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/data/raid5
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/data/raid5/total_bytes
|
||||
Lines: 1
|
||||
644087808
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/data/raid5/used_bytes
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/data/total_bytes
|
||||
Lines: 1
|
||||
644087808
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/data/total_bytes_pinned
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/global_rsv_reserved
|
||||
Lines: 1
|
||||
16777216
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/global_rsv_size
|
||||
Lines: 1
|
||||
16777216
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/metadata
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/metadata/bytes_may_use
|
||||
Lines: 1
|
||||
16777216
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/metadata/bytes_pinned
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/metadata/bytes_readonly
|
||||
Lines: 1
|
||||
262144
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/metadata/bytes_reserved
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/metadata/bytes_used
|
||||
Lines: 1
|
||||
114688
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/metadata/disk_total
|
||||
Lines: 1
|
||||
429391872
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/metadata/disk_used
|
||||
Lines: 1
|
||||
114688
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/metadata/flags
|
||||
Lines: 1
|
||||
4
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/metadata/raid6
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/metadata/raid6/total_bytes
|
||||
Lines: 1
|
||||
429391872
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/metadata/raid6/used_bytes
|
||||
Lines: 1
|
||||
114688
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/metadata/total_bytes
|
||||
Lines: 1
|
||||
429391872
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/metadata/total_bytes_pinned
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/system
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/system/bytes_may_use
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/system/bytes_pinned
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/system/bytes_readonly
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/system/bytes_reserved
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/system/bytes_used
|
||||
Lines: 1
|
||||
16384
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/system/disk_total
|
||||
Lines: 1
|
||||
16777216
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/system/disk_used
|
||||
Lines: 1
|
||||
16384
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/system/flags
|
||||
Lines: 1
|
||||
2
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/system/raid6
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/system/raid6/total_bytes
|
||||
Lines: 1
|
||||
16777216
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/system/raid6/used_bytes
|
||||
Lines: 1
|
||||
16384
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/system/total_bytes
|
||||
Lines: 1
|
||||
16777216
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/allocation/system/total_bytes_pinned
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/clone_alignment
|
||||
Lines: 1
|
||||
4096
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/devices
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/devices/loop22
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/devices/loop22/size
|
||||
Lines: 1
|
||||
20971520
|
||||
Mode: 644
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/devices/loop23
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/devices/loop23/size
|
||||
Lines: 1
|
||||
20971520
|
||||
Mode: 644
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/devices/loop24
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/devices/loop24/size
|
||||
Lines: 1
|
||||
20971520
|
||||
Mode: 644
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/devices/loop25
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/devices/loop25/size
|
||||
Lines: 1
|
||||
20971520
|
||||
Mode: 644
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/features
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/features/big_metadata
|
||||
Lines: 1
|
||||
1
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/features/extended_iref
|
||||
Lines: 1
|
||||
1
|
||||
Mode: 644
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/features/mixed_backref
|
||||
Lines: 1
|
||||
1
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/features/raid56
|
||||
Lines: 1
|
||||
1
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/features/skinny_metadata
|
||||
Lines: 1
|
||||
1
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/label
|
||||
Lines: 0
|
||||
Mode: 644
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/metadata_uuid
|
||||
Lines: 1
|
||||
7f07c59f-6136-449c-ab87-e1cf2328731b
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/nodesize
|
||||
Lines: 1
|
||||
16384
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/quota_override
|
||||
Lines: 1
|
||||
0
|
||||
Mode: 644
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Path: sys/fs/btrfs/7f07c59f-6136-449c-ab87-e1cf2328731b/sectorsize
|
||||
Lines: 1
|
||||
4096
|
||||
Mode: 444
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Directory: sys/fs/xfs
|
||||
Mode: 755
|
||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
|
|
@ -5,6 +5,7 @@ set -euf -o pipefail
|
|||
enabled_collectors=$(cat << COLLECTORS
|
||||
arp
|
||||
bcache
|
||||
btrfs
|
||||
buddyinfo
|
||||
conntrack
|
||||
cpu
|
||||
|
|
|
@ -0,0 +1,67 @@
|
|||
// Copyright 2019 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 btrfs provides access to statistics exposed by Btrfs filesystems.
|
||||
package btrfs
|
||||
|
||||
// Stats contains statistics for a single Btrfs filesystem.
|
||||
// See Linux fs/btrfs/sysfs.c for more information.
|
||||
type Stats struct {
|
||||
UUID, Label string
|
||||
Allocation Allocation
|
||||
Devices map[string]*Device
|
||||
Features []string
|
||||
CloneAlignment uint64
|
||||
NodeSize uint64
|
||||
QuotaOverride uint64
|
||||
SectorSize uint64
|
||||
}
|
||||
|
||||
// Allocation contains allocation statistics for data, metadata and system data.
|
||||
type Allocation struct {
|
||||
GlobalRsvReserved, GlobalRsvSize uint64
|
||||
Data, Metadata, System *AllocationStats
|
||||
}
|
||||
|
||||
// AllocationStats contains allocation statistics for a data type.
|
||||
type AllocationStats struct {
|
||||
// Usage statistics
|
||||
DiskUsedBytes uint64
|
||||
DiskTotalBytes uint64
|
||||
MayUseBytes uint64
|
||||
PinnedBytes uint64
|
||||
TotalPinnedBytes uint64
|
||||
ReadOnlyBytes uint64
|
||||
ReservedBytes uint64
|
||||
UsedBytes uint64
|
||||
TotalBytes uint64
|
||||
|
||||
// Flags marking filesystem state
|
||||
// See Linux fs/btrfs/ctree.h for more information.
|
||||
Flags uint64
|
||||
|
||||
// Additional disk usage statistics depending on the disk layout.
|
||||
// At least one of these will exist and not be nil.
|
||||
Layouts map[string]*LayoutUsage
|
||||
}
|
||||
|
||||
// LayoutUsage contains additional usage statistics for a disk layout.
|
||||
type LayoutUsage struct {
|
||||
UsedBytes, TotalBytes uint64
|
||||
Ratio float64
|
||||
}
|
||||
|
||||
// Device contains information about a device that is part of a Btrfs filesystem.
|
||||
type Device struct {
|
||||
Size uint64
|
||||
}
|
|
@ -0,0 +1,251 @@
|
|||
// Copyright 2019 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 btrfs
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/prometheus/procfs/internal/fs"
|
||||
"github.com/prometheus/procfs/internal/util"
|
||||
)
|
||||
|
||||
// SectorSize contains the Linux sector size.
|
||||
// > Linux always considers sectors to be 512 bytes long independently
|
||||
// > of the devices real block size.
|
||||
const SectorSize = 512
|
||||
|
||||
// FS represents the pseudo-filesystem sys, which provides an interface to
|
||||
// kernel data structures.
|
||||
type FS struct {
|
||||
sys *fs.FS
|
||||
}
|
||||
|
||||
// NewDefaultFS returns a new Bcache using the default sys fs mount point. It will error
|
||||
// if the mount point can't be read.
|
||||
func NewDefaultFS() (FS, error) {
|
||||
return NewFS(fs.DefaultSysMountPoint)
|
||||
}
|
||||
|
||||
// NewFS returns a new Btrfs filesystem using the given sys fs mount point. It will error
|
||||
// if the mount point can't be read.
|
||||
func NewFS(mountPoint string) (FS, error) {
|
||||
if strings.TrimSpace(mountPoint) == "" {
|
||||
mountPoint = fs.DefaultSysMountPoint
|
||||
}
|
||||
sys, err := fs.NewFS(mountPoint)
|
||||
if err != nil {
|
||||
return FS{}, err
|
||||
}
|
||||
return FS{&sys}, nil
|
||||
}
|
||||
|
||||
// Stats retrieves Btrfs filesystem runtime statistics for each mounted Btrfs filesystem.
|
||||
func (fs FS) Stats() ([]*Stats, error) {
|
||||
matches, err := filepath.Glob(fs.sys.Path("fs/btrfs/*-*"))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
stats := make([]*Stats, 0, len(matches))
|
||||
for _, uuidPath := range matches {
|
||||
s, err := GetStats(uuidPath)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Set the UUID from the path when it could not be retrieved from the filesystem.
|
||||
if s.UUID == "" {
|
||||
s.UUID = filepath.Base(uuidPath)
|
||||
}
|
||||
|
||||
stats = append(stats, s)
|
||||
}
|
||||
|
||||
return stats, nil
|
||||
}
|
||||
|
||||
// GetStats collects all Btrfs statistics from sysfs
|
||||
func GetStats(uuidPath string) (*Stats, error) {
|
||||
r := &reader{path: uuidPath}
|
||||
s := r.readFilesystemStats()
|
||||
if r.err != nil {
|
||||
return nil, r.err
|
||||
}
|
||||
|
||||
return s, nil
|
||||
}
|
||||
|
||||
type reader struct {
|
||||
path string
|
||||
err error
|
||||
devCount int
|
||||
}
|
||||
|
||||
// readFile reads a file relative to the path of the reader.
|
||||
// Non-existing files are ignored.
|
||||
func (r *reader) readFile(n string) string {
|
||||
b, err := util.SysReadFile(path.Join(r.path, n))
|
||||
if err != nil && !os.IsNotExist(err) {
|
||||
r.err = err
|
||||
}
|
||||
return strings.TrimSpace(string(b))
|
||||
}
|
||||
|
||||
// readValues reads a number of numerical values into an uint64 slice.
|
||||
func (r *reader) readValue(n string) (v uint64) {
|
||||
// Read value from file
|
||||
s := r.readFile(n)
|
||||
if r.err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
// Convert number
|
||||
v, _ = strconv.ParseUint(s, 10, 64)
|
||||
return
|
||||
}
|
||||
|
||||
// listFiles returns a list of files for a directory of the reader.
|
||||
func (r *reader) listFiles(p string) []string {
|
||||
files, err := ioutil.ReadDir(path.Join(r.path, p))
|
||||
if err != nil {
|
||||
r.err = err
|
||||
return nil
|
||||
}
|
||||
|
||||
names := make([]string, len(files))
|
||||
for i, f := range files {
|
||||
names[i] = f.Name()
|
||||
}
|
||||
return names
|
||||
}
|
||||
|
||||
// readAllocationStats reads Btrfs allocation data for the current path.
|
||||
func (r *reader) readAllocationStats(d string) (a *AllocationStats) {
|
||||
// Create a reader for this subdirectory
|
||||
sr := &reader{path: path.Join(r.path, d), devCount: r.devCount}
|
||||
|
||||
// Get the stats
|
||||
a = &AllocationStats{
|
||||
// Read basic allocation stats
|
||||
MayUseBytes: sr.readValue("bytes_may_use"),
|
||||
PinnedBytes: sr.readValue("bytes_pinned"),
|
||||
ReadOnlyBytes: sr.readValue("bytes_readonly"),
|
||||
ReservedBytes: sr.readValue("bytes_reserved"),
|
||||
UsedBytes: sr.readValue("bytes_used"),
|
||||
DiskUsedBytes: sr.readValue("disk_used"),
|
||||
DiskTotalBytes: sr.readValue("disk_total"),
|
||||
Flags: sr.readValue("flags"),
|
||||
TotalBytes: sr.readValue("total_bytes"),
|
||||
TotalPinnedBytes: sr.readValue("total_bytes_pinned"),
|
||||
Layouts: sr.readLayouts(),
|
||||
}
|
||||
|
||||
// Pass any error back
|
||||
r.err = sr.err
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// readLayouts reads all Btrfs layout statistics for the current path
|
||||
func (r *reader) readLayouts() map[string]*LayoutUsage {
|
||||
files, err := ioutil.ReadDir(r.path)
|
||||
if err != nil {
|
||||
r.err = err
|
||||
return nil
|
||||
}
|
||||
|
||||
m := make(map[string]*LayoutUsage)
|
||||
for _, f := range files {
|
||||
if f.IsDir() {
|
||||
m[f.Name()] = r.readLayout(f.Name())
|
||||
}
|
||||
}
|
||||
|
||||
return m
|
||||
}
|
||||
|
||||
// readLayout reads the Btrfs layout statistics for an allocation layout.
|
||||
func (r *reader) readLayout(p string) (l *LayoutUsage) {
|
||||
l = new(LayoutUsage)
|
||||
l.TotalBytes = r.readValue(path.Join(p, "total_bytes"))
|
||||
l.UsedBytes = r.readValue(path.Join(p, "used_bytes"))
|
||||
l.Ratio = r.calcRatio(p)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// calcRatio returns the calculated ratio for a layout mode.
|
||||
func (r *reader) calcRatio(p string) float64 {
|
||||
switch p {
|
||||
case "single", "raid0":
|
||||
return 1
|
||||
case "dup", "raid1", "raid10":
|
||||
return 2
|
||||
case "raid5":
|
||||
return float64(r.devCount) / (float64(r.devCount) - 1)
|
||||
case "raid6":
|
||||
return float64(r.devCount) / (float64(r.devCount) - 2)
|
||||
default:
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
// readDeviceInfo returns the information for all devices associated with this filesystem.
|
||||
func (r *reader) readDeviceInfo(d string) map[string]*Device {
|
||||
devs := r.listFiles("devices")
|
||||
info := make(map[string]*Device, len(devs))
|
||||
for _, n := range devs {
|
||||
info[n] = &Device{
|
||||
Size: SectorSize * r.readValue("devices/"+n+"/size"),
|
||||
}
|
||||
}
|
||||
|
||||
return info
|
||||
}
|
||||
|
||||
// readFilesystemStats reads Btrfs statistics for a filesystem.
|
||||
func (r *reader) readFilesystemStats() (s *Stats) {
|
||||
// First get disk info, and add it to reader
|
||||
devices := r.readDeviceInfo("devices")
|
||||
r.devCount = len(devices)
|
||||
|
||||
s = &Stats{
|
||||
// Read basic filesystem information
|
||||
Label: r.readFile("label"),
|
||||
UUID: r.readFile("metadata_uuid"),
|
||||
Features: r.listFiles("features"),
|
||||
CloneAlignment: r.readValue("clone_alignment"),
|
||||
NodeSize: r.readValue("nodesize"),
|
||||
QuotaOverride: r.readValue("quota_override"),
|
||||
SectorSize: r.readValue("sectorsize"),
|
||||
|
||||
// Device info
|
||||
Devices: devices,
|
||||
|
||||
// Read allocation data
|
||||
Allocation: Allocation{
|
||||
GlobalRsvReserved: r.readValue("allocation/global_rsv_reserved"),
|
||||
GlobalRsvSize: r.readValue("allocation/global_rsv_size"),
|
||||
Data: r.readAllocationStats("allocation/data"),
|
||||
Metadata: r.readAllocationStats("allocation/metadata"),
|
||||
System: r.readAllocationStats("allocation/system"),
|
||||
},
|
||||
}
|
||||
return
|
||||
}
|
|
@ -62,6 +62,7 @@ github.com/prometheus/common/version
|
|||
# github.com/prometheus/procfs v0.0.10
|
||||
github.com/prometheus/procfs
|
||||
github.com/prometheus/procfs/bcache
|
||||
github.com/prometheus/procfs/btrfs
|
||||
github.com/prometheus/procfs/internal/fs
|
||||
github.com/prometheus/procfs/internal/util
|
||||
github.com/prometheus/procfs/nfs
|
||||
|
|
Loading…
Reference in New Issue