Skip to content

Commit f89291a

Browse files
authored
Revert "ADD "disable_specific_metrics" which can remove specific metric by name or regex"
1 parent 373436e commit f89291a

13 files changed

+15
-711
lines changed

cmd/cadvisor.go

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,6 @@ var (
113113
container.ResctrlMetrics: struct{}{},
114114
container.CPUSetMetrics: struct{}{},
115115
}
116-
// metrics to be ignored,the difference between ignoreMetrics and ignoreSpecificMetrics is the former filters a certain type of metrics and the later filters specific metrics.
117-
ignoreSpecificMetrics DenyList = DenyList{}
118116
)
119117

120118
type metricSetValue struct {
@@ -144,27 +142,8 @@ func (ml *metricSetValue) Set(value string) error {
144142
return nil
145143
}
146144

147-
type DenyList []string
148-
149-
func (ms *DenyList) String() string {
150-
return strings.Join(*ms, ",")
151-
}
152-
153-
// Set converts a comma-separated string of metrics into a slice and appends it to the DenyList.
154-
func (ms *DenyList) Set(value string) error {
155-
metrics := strings.Split(value, ",")
156-
for _, metric := range metrics {
157-
metric = strings.TrimSpace(metric)
158-
if len(metric) != 0 {
159-
*ms = append(*ms, metric)
160-
}
161-
}
162-
return nil
163-
}
164-
165145
func init() {
166146
flag.Var(&ignoreMetrics, "disable_metrics", "comma-separated list of `metrics` to be disabled. Options are 'accelerator', 'cpu_topology','disk', 'diskIO', 'memory_numa', 'network', 'tcp', 'udp', 'percpu', 'sched', 'process', 'hugetlb', 'referenced_memory', 'resctrl', 'cpuset'.")
167-
flag.Var(&ignoreSpecificMetrics, "disable_specific_metrics", "Comma-separated list of metrics not to be enabled. This list comprises of exact metric names and/or regex patterns.It differs from the 'disable_metrics' in that 'disable_specific_metrics' filters specific metrics, while 'disable_metrics' filters a certain type of metrics.Besides, 'disable_specific_metrics' will only disable metrics being exported by Prometheus ")
168147

169148
// Default logging verbosity to V(2)
170149
flag.Set("v", "2")
@@ -181,7 +160,6 @@ func main() {
181160
}
182161

183162
includedMetrics := toIncludedMetrics(ignoreMetrics.MetricSet)
184-
denyList, err := metrics.NewDenyList(ignoreSpecificMetrics)
185163

186164
setMaxProcs()
187165

@@ -194,7 +172,7 @@ func main() {
194172

195173
collectorHttpClient := createCollectorHttpClient(*collectorCert, *collectorKey)
196174

197-
resourceManager, err := manager.New(memoryStorage, sysFs, housekeepingConfig, includedMetrics, &collectorHttpClient, strings.Split(*rawCgroupPrefixWhiteList, ","), *perfEvents, denyList)
175+
resourceManager, err := manager.New(memoryStorage, sysFs, housekeepingConfig, includedMetrics, &collectorHttpClient, strings.Split(*rawCgroupPrefixWhiteList, ","), *perfEvents)
198176
if err != nil {
199177
klog.Fatalf("Failed to create a manager: %s", err)
200178
}
@@ -221,7 +199,7 @@ func main() {
221199
}
222200

223201
// Register Prometheus collector to gather information about containers, Go runtime, processes, and machine
224-
cadvisorhttp.RegisterPrometheusHandler(mux, resourceManager, *prometheusEndpoint, containerLabelFunc, includedMetrics, denyList)
202+
cadvisorhttp.RegisterPrometheusHandler(mux, resourceManager, *prometheusEndpoint, containerLabelFunc, includedMetrics)
225203

226204
// Start the manager.
227205
if err := resourceManager.Start(); err != nil {

cmd/internal/http/handlers.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,10 @@ func RegisterHandlers(mux httpmux.Mux, containerManager manager.Manager, httpAut
9595
// RegisterPrometheusHandler creates a new PrometheusCollector and configures
9696
// the provided HTTP mux to handle the given Prometheus endpoint.
9797
func RegisterPrometheusHandler(mux httpmux.Mux, resourceManager manager.Manager, prometheusEndpoint string,
98-
f metrics.ContainerLabelsFunc, includedMetrics container.MetricSet, denyList *metrics.DenyList) {
98+
f metrics.ContainerLabelsFunc, includedMetrics container.MetricSet) {
9999
goCollector := prometheus.NewGoCollector()
100100
processCollector := prometheus.NewProcessCollector(prometheus.ProcessCollectorOpts{})
101-
machineCollector := metrics.NewPrometheusMachineCollector(resourceManager, includedMetrics, denyList)
101+
machineCollector := metrics.NewPrometheusMachineCollector(resourceManager, includedMetrics)
102102

103103
mux.Handle(prometheusEndpoint, http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
104104
opts, err := api.GetRequestOptions(req)
@@ -111,7 +111,7 @@ func RegisterPrometheusHandler(mux httpmux.Mux, resourceManager manager.Manager,
111111

112112
r := prometheus.NewRegistry()
113113
r.MustRegister(
114-
metrics.NewPrometheusCollector(resourceManager, f, includedMetrics, clock.RealClock{}, opts, denyList),
114+
metrics.NewPrometheusCollector(resourceManager, f, includedMetrics, clock.RealClock{}, opts),
115115
machineCollector,
116116
goCollector,
117117
processCollector,

manager/manager.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ import (
3737
info "github.com/google/cadvisor/info/v1"
3838
"github.com/google/cadvisor/info/v2"
3939
"github.com/google/cadvisor/machine"
40-
"github.com/google/cadvisor/metrics"
4140
"github.com/google/cadvisor/nvm"
4241
"github.com/google/cadvisor/perf"
4342
"github.com/google/cadvisor/resctrl"
@@ -147,7 +146,7 @@ type HouskeepingConfig = struct {
147146
}
148147

149148
// New takes a memory storage and returns a new manager.
150-
func New(memoryCache *memory.InMemoryCache, sysfs sysfs.SysFs, houskeepingConfig HouskeepingConfig, includedMetricsSet container.MetricSet, collectorHTTPClient *http.Client, rawContainerCgroupPathPrefixWhiteList []string, perfEventsFile string, denyList *metrics.DenyList) (Manager, error) {
149+
func New(memoryCache *memory.InMemoryCache, sysfs sysfs.SysFs, houskeepingConfig HouskeepingConfig, includedMetricsSet container.MetricSet, collectorHTTPClient *http.Client, rawContainerCgroupPathPrefixWhiteList []string, perfEventsFile string) (Manager, error) {
151150
if memoryCache == nil {
152151
return nil, fmt.Errorf("manager requires memory storage")
153152
}
@@ -199,7 +198,6 @@ func New(memoryCache *memory.InMemoryCache, sysfs sysfs.SysFs, houskeepingConfig
199198
maxHousekeepingInterval: *houskeepingConfig.Interval,
200199
allowDynamicHousekeeping: *houskeepingConfig.AllowDynamic,
201200
includedMetrics: includedMetricsSet,
202-
DenyList: denyList,
203201
containerWatchers: []watcher.ContainerWatcher{},
204202
eventsChannel: eventsChannel,
205203
collectorHTTPClient: collectorHTTPClient,
@@ -259,7 +257,6 @@ type manager struct {
259257
maxHousekeepingInterval time.Duration
260258
allowDynamicHousekeeping bool
261259
includedMetrics container.MetricSet
262-
DenyList *metrics.DenyList
263260
containerWatchers []watcher.ContainerWatcher
264261
eventsChannel chan watcher.ContainerEvent
265262
collectorHTTPClient *http.Client

metrics/deny_list.go

Lines changed: 0 additions & 53 deletions
This file was deleted.

metrics/deny_list_test.go

Lines changed: 0 additions & 75 deletions
This file was deleted.

metrics/prometheus.go

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ type PrometheusCollector struct {
105105
// ContainerLabelsFunc specifies which base labels will be attached to all
106106
// exported metrics. If left to nil, the DefaultContainerLabels function
107107
// will be used instead.
108-
func NewPrometheusCollector(i infoProvider, f ContainerLabelsFunc, includedMetrics container.MetricSet, now clock.Clock, opts v2.RequestOptions, denyList *DenyList) *PrometheusCollector {
108+
func NewPrometheusCollector(i infoProvider, f ContainerLabelsFunc, includedMetrics container.MetricSet, now clock.Clock, opts v2.RequestOptions) *PrometheusCollector {
109109
if f == nil {
110110
f = DefaultContainerLabels
111111
}
@@ -1757,13 +1757,6 @@ func NewPrometheusCollector(i infoProvider, f ContainerLabelsFunc, includedMetri
17571757
},
17581758
}...)
17591759
}
1760-
var filtered []containerMetric
1761-
for _, val := range c.containerMetrics {
1762-
if !denyList.IsDenied(val.name) {
1763-
filtered = append(filtered, val)
1764-
}
1765-
}
1766-
c.containerMetrics = filtered
17671760
return c
17681761
}
17691762

metrics/prometheus_machine.go

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ type PrometheusMachineCollector struct {
6767
}
6868

6969
// NewPrometheusMachineCollector returns a new PrometheusCollector.
70-
func NewPrometheusMachineCollector(i infoProvider, includedMetrics container.MetricSet, denyList *DenyList) *PrometheusMachineCollector {
70+
func NewPrometheusMachineCollector(i infoProvider, includedMetrics container.MetricSet) *PrometheusMachineCollector {
7171
c := &PrometheusMachineCollector{
7272

7373
infoProvider: i,
@@ -192,13 +192,6 @@ func NewPrometheusMachineCollector(i infoProvider, includedMetrics container.Met
192192
},
193193
}...)
194194
}
195-
var filtered []machineMetric
196-
for _, val := range c.machineMetrics {
197-
if !denyList.IsDenied(val.name) {
198-
filtered = append(filtered, val)
199-
}
200-
}
201-
c.machineMetrics = filtered
202195
return c
203196
}
204197

metrics/prometheus_machine_test.go

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,12 @@ package metrics
1717
import (
1818
"bytes"
1919
"io/ioutil"
20-
"os"
2120
"reflect"
2221
"testing"
2322
"time"
2423

2524
"github.com/google/cadvisor/container"
2625
"github.com/prometheus/client_golang/prometheus"
27-
"github.com/prometheus/client_golang/prometheus/testutil"
2826
"github.com/prometheus/common/expfmt"
2927
"github.com/stretchr/testify/assert"
3028
)
@@ -33,9 +31,7 @@ const machineMetricsFile = "testdata/prometheus_machine_metrics"
3331
const machineMetricsFailureFile = "testdata/prometheus_machine_metrics_failure"
3432

3533
func TestPrometheusMachineCollector(t *testing.T) {
36-
denyList, err := NewDenyList([]string{})
37-
assert.Nil(t, err)
38-
collector := NewPrometheusMachineCollector(testSubcontainersInfoProvider{}, container.AllMetrics, denyList)
34+
collector := NewPrometheusMachineCollector(testSubcontainersInfoProvider{}, container.AllMetrics)
3935
registry := prometheus.NewRegistry()
4036
registry.MustRegister(collector)
4137

@@ -55,13 +51,11 @@ func TestPrometheusMachineCollector(t *testing.T) {
5551
}
5652

5753
func TestPrometheusMachineCollectorWithFailure(t *testing.T) {
58-
denyList, err := NewDenyList([]string{})
59-
assert.Nil(t, err)
6054
provider := &erroringSubcontainersInfoProvider{
6155
successfulProvider: testSubcontainersInfoProvider{},
6256
shouldFail: true,
6357
}
64-
collector := NewPrometheusMachineCollector(provider, container.AllMetrics, denyList)
58+
collector := NewPrometheusMachineCollector(provider, container.AllMetrics)
6559
registry := prometheus.NewRegistry()
6660
registry.MustRegister(collector)
6761

@@ -79,29 +73,6 @@ func TestPrometheusMachineCollectorWithFailure(t *testing.T) {
7973
assert.Equal(t, string(expectedMetrics), collectedMetrics)
8074
}
8175

82-
func TestPrometheusMachineCollectorWithDenyList(t *testing.T) {
83-
denyList, err := NewDenyList(ignoreSpecificMetrics)
84-
assert.Nil(t, err)
85-
cMachine := NewPrometheusMachineCollector(testSubcontainersInfoProvider{}, container.AllMetrics, denyList)
86-
registry := prometheus.NewRegistry()
87-
registry.MustRegister(cMachine)
88-
89-
testPrometheusMachineCollectorWithIsDenied(t, registry, "testdata/prometheus_machine_metrics_denylist")
90-
91-
}
92-
93-
func testPrometheusMachineCollectorWithIsDenied(t *testing.T, gatherer prometheus.Gatherer, metricsFile string) {
94-
wantMetrics, err := os.Open(metricsFile)
95-
if err != nil {
96-
t.Fatalf("unable to read input test file %s", metricsFile)
97-
}
98-
99-
err = testutil.GatherAndCompare(gatherer, wantMetrics)
100-
if err != nil {
101-
t.Fatalf("Metric comparison failed: %s", err)
102-
}
103-
}
104-
10576
func TestGetMemoryByType(t *testing.T) {
10677
machineInfo, err := testSubcontainersInfoProvider{}.GetMachineInfo()
10778
assert.Nil(t, err)

0 commit comments

Comments
 (0)