PuppetDB SD: Add __meta_puppetdb_query label (#11238)

Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
This commit is contained in:
Julien Pivotto 2022-09-01 17:05:54 +02:00 committed by GitHub
parent bef6556ca5
commit 15fa34936b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 0 deletions

View file

@ -40,6 +40,7 @@ import (
const ( const (
pdbLabel = model.MetaLabelPrefix + "puppetdb_" pdbLabel = model.MetaLabelPrefix + "puppetdb_"
pdbLabelQuery = pdbLabel + "query"
pdbLabelCertname = pdbLabel + "certname" pdbLabelCertname = pdbLabel + "certname"
pdbLabelResource = pdbLabel + "resource" pdbLabelResource = pdbLabel + "resource"
pdbLabelType = pdbLabel + "type" pdbLabelType = pdbLabel + "type"
@ -215,6 +216,7 @@ func (d *Discovery) refresh(ctx context.Context) ([]*targetgroup.Group, error) {
for _, resource := range resources { for _, resource := range resources {
labels := model.LabelSet{ labels := model.LabelSet{
pdbLabelQuery: model.LabelValue(d.query),
pdbLabelCertname: model.LabelValue(resource.Certname), pdbLabelCertname: model.LabelValue(resource.Certname),
pdbLabelResource: model.LabelValue(resource.Resource), pdbLabelResource: model.LabelValue(resource.Resource),
pdbLabelType: model.LabelValue(resource.Type), pdbLabelType: model.LabelValue(resource.Type),

View file

@ -91,6 +91,7 @@ func TestPuppetDBRefresh(t *testing.T) {
Targets: []model.LabelSet{ Targets: []model.LabelSet{
{ {
model.AddressLabel: model.LabelValue("edinburgh.example.com:80"), model.AddressLabel: model.LabelValue("edinburgh.example.com:80"),
model.LabelName("__meta_puppetdb_query"): model.LabelValue("vhosts"),
model.LabelName("__meta_puppetdb_certname"): model.LabelValue("edinburgh.example.com"), model.LabelName("__meta_puppetdb_certname"): model.LabelValue("edinburgh.example.com"),
model.LabelName("__meta_puppetdb_environment"): model.LabelValue("prod"), model.LabelName("__meta_puppetdb_environment"): model.LabelValue("prod"),
model.LabelName("__meta_puppetdb_exported"): model.LabelValue("false"), model.LabelName("__meta_puppetdb_exported"): model.LabelValue("false"),
@ -131,6 +132,7 @@ func TestPuppetDBRefreshWithParameters(t *testing.T) {
Targets: []model.LabelSet{ Targets: []model.LabelSet{
{ {
model.AddressLabel: model.LabelValue("edinburgh.example.com:80"), model.AddressLabel: model.LabelValue("edinburgh.example.com:80"),
model.LabelName("__meta_puppetdb_query"): model.LabelValue("vhosts"),
model.LabelName("__meta_puppetdb_certname"): model.LabelValue("edinburgh.example.com"), model.LabelName("__meta_puppetdb_certname"): model.LabelValue("edinburgh.example.com"),
model.LabelName("__meta_puppetdb_environment"): model.LabelValue("prod"), model.LabelName("__meta_puppetdb_environment"): model.LabelValue("prod"),
model.LabelName("__meta_puppetdb_exported"): model.LabelValue("false"), model.LabelName("__meta_puppetdb_exported"): model.LabelValue("false"),

View file

@ -1184,6 +1184,7 @@ The resource address is the `certname` of the resource and can be changed during
The following meta labels are available on targets during [relabeling](#relabel_config): The following meta labels are available on targets during [relabeling](#relabel_config):
* `__meta_puppetdb_query`: the Puppet Query Language (PQL) query
* `__meta_puppetdb_certname`: the name of the node associated with the resource * `__meta_puppetdb_certname`: the name of the node associated with the resource
* `__meta_puppetdb_resource`: a SHA-1 hash of the resources type, title, and parameters, for identification * `__meta_puppetdb_resource`: a SHA-1 hash of the resources type, title, and parameters, for identification
* `__meta_puppetdb_type`: the resource type * `__meta_puppetdb_type`: the resource type