fix(inputs.promethes): respect selectors when scraping pods (#12278)
This commit is contained in:
parent
0e7a3c69ea
commit
55c8cfafb0
|
|
@ -134,7 +134,14 @@ func (p *Prometheus) Init() error {
|
||||||
|
|
||||||
p.NodeIP = envVarNodeIP
|
p.NodeIP = envVarNodeIP
|
||||||
}
|
}
|
||||||
|
p.Log.Infof("Using pod scrape scope at node level to get pod list using cAdvisor.")
|
||||||
|
}
|
||||||
|
|
||||||
|
if p.MonitorKubernetesPodsMethod == MonitorMethodNone {
|
||||||
|
p.MonitorKubernetesPodsMethod = MonitorMethodAnnotations
|
||||||
|
}
|
||||||
|
|
||||||
|
if p.isNodeScrapeScope || p.MonitorKubernetesPodsMethod != MonitorMethodAnnotations {
|
||||||
// Parse label and field selectors - will be used to filter pods after cAdvisor call
|
// Parse label and field selectors - will be used to filter pods after cAdvisor call
|
||||||
var err error
|
var err error
|
||||||
p.podLabelSelector, err = labels.Parse(p.KubernetesLabelSelector)
|
p.podLabelSelector, err = labels.Parse(p.KubernetesLabelSelector)
|
||||||
|
|
@ -150,14 +157,9 @@ func (p *Prometheus) Init() error {
|
||||||
return fmt.Errorf("the field selector %s is not supported for pods", invalidSelector)
|
return fmt.Errorf("the field selector %s is not supported for pods", invalidSelector)
|
||||||
}
|
}
|
||||||
|
|
||||||
p.Log.Infof("Using pod scrape scope at node level to get pod list using cAdvisor.")
|
|
||||||
p.Log.Infof("Using the label selector: %v and field selector: %v", p.podLabelSelector, p.podFieldSelector)
|
p.Log.Infof("Using the label selector: %v and field selector: %v", p.podLabelSelector, p.podFieldSelector)
|
||||||
}
|
}
|
||||||
|
|
||||||
if p.MonitorKubernetesPodsMethod == MonitorMethodNone {
|
|
||||||
p.MonitorKubernetesPodsMethod = MonitorMethodAnnotations
|
|
||||||
}
|
|
||||||
|
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
client, err := p.HTTPClientConfig.CreateClient(ctx, p.Log)
|
client, err := p.HTTPClientConfig.CreateClient(ctx, p.Log)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
|
|
@ -326,3 +326,22 @@ func TestInitConfigErrors(t *testing.T) {
|
||||||
expectedMessage = "the field selector spec.containerNames is not supported for pods"
|
expectedMessage = "the field selector spec.containerNames is not supported for pods"
|
||||||
require.Error(t, err, expectedMessage)
|
require.Error(t, err, expectedMessage)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestInitConfigSelectors(t *testing.T) {
|
||||||
|
p := &Prometheus{
|
||||||
|
MetricVersion: 2,
|
||||||
|
Log: testutil.Logger{},
|
||||||
|
URLs: nil,
|
||||||
|
URLTag: "url",
|
||||||
|
MonitorPods: true,
|
||||||
|
MonitorKubernetesPodsMethod: MonitorMethodSettings,
|
||||||
|
PodScrapeInterval: 60,
|
||||||
|
KubernetesLabelSelector: "app=test",
|
||||||
|
KubernetesFieldSelector: "spec.nodeName=node-0",
|
||||||
|
}
|
||||||
|
err := p.Init()
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
require.NotNil(t, p.podLabelSelector)
|
||||||
|
require.NotNil(t, p.podFieldSelector)
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue