Merge pull request #705 from prometheus/fabxc/file_label

Attach __meta_filepath label to file SD targets.
pull/708/head
Fabian Reinartz 10 years ago
commit ea62fce5f1

@ -26,8 +26,12 @@ import (
"gopkg.in/yaml.v2" "gopkg.in/yaml.v2"
"github.com/prometheus/prometheus/config" "github.com/prometheus/prometheus/config"
clientmodel "github.com/prometheus/client_golang/model"
) )
const FileSDFilepathLabel = clientmodel.MetaLabelPrefix + "filepath"
// FileDiscovery provides service discovery functionality based // FileDiscovery provides service discovery functionality based
// on files that contain target groups in JSON or YAML format. Refreshing // on files that contain target groups in JSON or YAML format. Refreshing
// happens using file watches and periodic refreshes. // happens using file watches and periodic refreshes.
@ -196,7 +200,7 @@ func fileSource(filename string, i int) string {
// Stop implements the TargetProvider interface. // Stop implements the TargetProvider interface.
func (fd *FileDiscovery) Stop() { func (fd *FileDiscovery) Stop() {
glog.V(1).Info("Stopping file discovery for %s...", fd.paths) glog.V(1).Infof("Stopping file discovery for %s...", fd.paths)
fd.done <- struct{}{} fd.done <- struct{}{}
// Closing the watcher will deadlock unless all events and errors are drained. // Closing the watcher will deadlock unless all events and errors are drained.
@ -215,7 +219,7 @@ func (fd *FileDiscovery) Stop() {
fd.done <- struct{}{} fd.done <- struct{}{}
glog.V(1).Info("File discovery for %s stopped.", fd.paths) glog.V(1).Infof("File discovery for %s stopped.", fd.paths)
} }
// readFile reads a JSON or YAML list of targets groups from the file, depending on its // readFile reads a JSON or YAML list of targets groups from the file, depending on its
@ -243,6 +247,9 @@ func readFile(filename string) ([]*config.TargetGroup, error) {
for i, tg := range targetGroups { for i, tg := range targetGroups {
tg.Source = fileSource(filename, i) tg.Source = fileSource(filename, i)
tg.Labels = clientmodel.LabelSet{
FileSDFilepathLabel: clientmodel.LabelValue(filename),
}
} }
return targetGroups, nil return targetGroups, nil
} }

Loading…
Cancel
Save