in metricbeat/module/kubernetes/util/kubernetes.go [179:266]
func getExtraWatchers(resourceName string, addResourceMetadata *metadata.AddResourceMetadataConfig) []string {
switch resourceName {
case PodResource:
extra := []string{}
if addResourceMetadata.Node.Enabled() {
extra = append(extra, NodeResource)
}
if addResourceMetadata.Namespace.Enabled() {
extra = append(extra, NamespaceResource)
}
// We need to create watchers for ReplicaSets and Jobs that it might belong to,
// in order to be able to retrieve 2nd layer Owner metadata like in case of:
// Deployment -> Replicaset -> Pod
// CronJob -> job -> Pod
if addResourceMetadata.Deployment {
extra = append(extra, ReplicaSetResource)
}
if addResourceMetadata.CronJob {
extra = append(extra, JobResource)
}
return extra
case ServiceResource:
extra := []string{}
if addResourceMetadata.Namespace.Enabled() {
extra = append(extra, NamespaceResource)
}
return extra
case DeploymentResource:
extra := []string{}
if addResourceMetadata.Namespace.Enabled() {
extra = append(extra, NamespaceResource)
}
return extra
case ReplicaSetResource:
extra := []string{}
if addResourceMetadata.Namespace.Enabled() {
extra = append(extra, NamespaceResource)
}
return extra
case StatefulSetResource:
extra := []string{}
if addResourceMetadata.Namespace.Enabled() {
extra = append(extra, NamespaceResource)
}
return extra
case DaemonSetResource:
extra := []string{}
if addResourceMetadata.Namespace.Enabled() {
extra = append(extra, NamespaceResource)
}
return extra
case JobResource:
extra := []string{}
if addResourceMetadata.Namespace.Enabled() {
extra = append(extra, NamespaceResource)
}
return extra
case CronJobResource:
extra := []string{}
if addResourceMetadata.Namespace.Enabled() {
extra = append(extra, NamespaceResource)
}
return extra
case PersistentVolumeResource:
return []string{}
case PersistentVolumeClaimResource:
extra := []string{}
if addResourceMetadata.Namespace.Enabled() {
extra = append(extra, NamespaceResource)
}
return extra
case StorageClassResource:
return []string{}
case NodeResource:
return []string{}
case NamespaceResource:
return []string{}
case HorizontalPodAutoscalerResource:
extra := []string{}
if addResourceMetadata.Namespace.Enabled() {
extra = append(extra, NamespaceResource)
}
return extra
default:
return []string{}
}
}