diff --git a/plugins/inputs/jenkins/jenkins.go b/plugins/inputs/jenkins/jenkins.go index 37caa9d97..7c2326d79 100644 --- a/plugins/inputs/jenkins/jenkins.go +++ b/plugins/inputs/jenkins/jenkins.go @@ -263,11 +263,6 @@ func (j *Jenkins) getJobDetail(jr jobRequest, acc telegraf.Accumulator) error { return nil } - // filter out excluded or not included jobs - if !j.jobFilter.Match(jr.hierarchyName()) { - return nil - } - js, err := j.client.getJobs(context.Background(), &jr) if err != nil { return err @@ -293,6 +288,11 @@ func (j *Jenkins) getJobDetail(jr jobRequest, acc telegraf.Accumulator) error { } wg.Wait() + // filter out excluded or not included jobs + if !j.jobFilter.Match(jr.hierarchyName()) { + return nil + } + // collect build info number := js.LastBuild.Number if number < 1 { diff --git a/plugins/inputs/jenkins/jenkins_test.go b/plugins/inputs/jenkins/jenkins_test.go index 6d2e083b4..30027b47c 100644 --- a/plugins/inputs/jenkins/jenkins_test.go +++ b/plugins/inputs/jenkins/jenkins_test.go @@ -797,6 +797,9 @@ func TestGatherJobs(t *testing.T) { {Name: "ignore-1"}, }, }, + "/job/ignore-1/api/json": &jobResponse{ + Jobs: []innerJob{}, + }, "/job/apps/api/json": &jobResponse{ Jobs: []innerJob{ {Name: "k8s-cloud"}, @@ -810,6 +813,16 @@ func TestGatherJobs(t *testing.T) { {Name: "2"}, }, }, + "/job/apps/job/ignore-all/job/1/api/json": &jobResponse{ + LastBuild: jobBuild{ + Number: 1, + }, + }, + "/job/apps/job/ignore-all/job/2/api/json": &jobResponse{ + LastBuild: jobBuild{ + Number: 1, + }, + }, "/job/apps/job/chronograf/api/json": &jobResponse{ LastBuild: jobBuild{ Number: 1, @@ -824,6 +837,16 @@ func TestGatherJobs(t *testing.T) { {Name: "PR ignore"}, }, }, + "/job/apps/job/k8s-cloud/job/PR%20ignore/api/json": &jobResponse{ + LastBuild: jobBuild{ + Number: 1, + }, + }, + "/job/apps/job/k8s-cloud/job/PR-ignore2/api/json": &jobResponse{ + LastBuild: jobBuild{ + Number: 1, + }, + }, "/job/apps/job/k8s-cloud/job/PR-100/api/json": &jobResponse{ LastBuild: jobBuild{ Number: 1,