add raw_cgroup_prefix_whitelist flag and fix issue #2129
This commit is contained in:
parent
150629c099
commit
7bb8b34a5b
@ -65,6 +65,8 @@ var whitelistedContainerLabels = flag.String("whitelisted_container_labels", "",
|
|||||||
|
|
||||||
var urlBasePrefix = flag.String("url_base_prefix", "", "prefix path that will be prepended to all paths to support some reverse proxies")
|
var urlBasePrefix = flag.String("url_base_prefix", "", "prefix path that will be prepended to all paths to support some reverse proxies")
|
||||||
|
|
||||||
|
var rawCgroupPrefixWhiteList = flag.String("raw_cgroup_prefix_whitelist", "", "A comma-separated list of cgroup path prefix that needs to be collected even when -docker_only is specified")
|
||||||
|
|
||||||
var (
|
var (
|
||||||
// Metrics to be ignored.
|
// Metrics to be ignored.
|
||||||
// Tcp metrics are ignored by default.
|
// Tcp metrics are ignored by default.
|
||||||
@ -145,7 +147,7 @@ func main() {
|
|||||||
|
|
||||||
collectorHttpClient := createCollectorHttpClient(*collectorCert, *collectorKey)
|
collectorHttpClient := createCollectorHttpClient(*collectorCert, *collectorKey)
|
||||||
|
|
||||||
containerManager, err := manager.New(memoryStorage, sysFs, *maxHousekeepingInterval, *allowDynamicHousekeeping, includedMetrics, &collectorHttpClient, []string{"/"})
|
containerManager, err := manager.New(memoryStorage, sysFs, *maxHousekeepingInterval, *allowDynamicHousekeeping, includedMetrics, &collectorHttpClient, strings.Split(*rawCgroupPrefixWhiteList,","))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
klog.Fatalf("Failed to create a Container Manager: %s", err)
|
klog.Fatalf("Failed to create a Container Manager: %s", err)
|
||||||
}
|
}
|
||||||
|
@ -63,17 +63,20 @@ func (self *rawFactory) NewContainerHandler(name string, inHostNamespace bool) (
|
|||||||
return newRawContainerHandler(name, self.cgroupSubsystems, self.machineInfoFactory, self.fsInfo, self.watcher, rootFs, self.includedMetrics)
|
return newRawContainerHandler(name, self.cgroupSubsystems, self.machineInfoFactory, self.fsInfo, self.watcher, rootFs, self.includedMetrics)
|
||||||
}
|
}
|
||||||
|
|
||||||
// The raw factory can handle any container. If --docker_only is set to false, non-docker containers are ignored.
|
// The raw factory can handle any container. If --docker_only is set to true, non-docker containers are ignored except for "/" and those whitelisted by raw_cgroup_prefix_whitelist flag.
|
||||||
func (self *rawFactory) CanHandleAndAccept(name string) (bool, bool, error) {
|
func (self *rawFactory) CanHandleAndAccept(name string) (bool, bool, error) {
|
||||||
accept := name == "/" || !*dockerOnly
|
if name == "/" {
|
||||||
|
return true, true, nil
|
||||||
|
}
|
||||||
|
if *dockerOnly && self.rawPrefixWhiteList[0] == "" {
|
||||||
|
return true, false, nil
|
||||||
|
}
|
||||||
for _, prefix := range self.rawPrefixWhiteList {
|
for _, prefix := range self.rawPrefixWhiteList {
|
||||||
if strings.HasPrefix(name, prefix) {
|
if strings.HasPrefix(name, prefix) {
|
||||||
accept = true
|
return true, true, nil
|
||||||
break
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true, accept, nil
|
return true, false, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *rawFactory) DebugInfo() map[string][]string {
|
func (self *rawFactory) DebugInfo() map[string][]string {
|
||||||
|
Loading…
Reference in New Issue
Block a user