mirror of
https://github.com/prometheus/prometheus.git
synced 2024-12-24 21:24:05 -08:00
fix: fails to auto-reload on changes to rule and scrape config files
Fixes #15673 An issue was reported in the CNCF Slack regarding the new auto-reload feature in Prometheus 3.0 failing to reload on changes to rule files and scrape config files. Signed-off-by: Cody Kaczynski <cody@codykaczynski.com>
This commit is contained in:
parent
7802ca263d
commit
42cb1dd413
|
@ -19,6 +19,7 @@ import (
|
|||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"gopkg.in/yaml.v2"
|
||||
)
|
||||
|
@ -49,10 +50,15 @@ func GenerateChecksum(yamlFilePath string) (string, error) {
|
|||
dir := filepath.Dir(yamlFilePath)
|
||||
|
||||
for i, file := range config.RuleFiles {
|
||||
config.RuleFiles[i] = filepath.Join(dir, file)
|
||||
if !strings.Contains(config.RuleFiles[i], dir) {
|
||||
config.RuleFiles[i] = filepath.Join(dir, file) // Join the directory only if the parent directory is not present in the config
|
||||
}
|
||||
}
|
||||
|
||||
for i, file := range config.ScrapeConfigFiles {
|
||||
config.ScrapeConfigFiles[i] = filepath.Join(dir, file)
|
||||
if !strings.Contains(config.ScrapeConfigFiles[i], dir) {
|
||||
config.ScrapeConfigFiles[i] = filepath.Join(dir, file) // Join the directory only if the parent directory is not present in the config
|
||||
}
|
||||
}
|
||||
|
||||
files := map[string][]string{
|
||||
|
|
|
@ -40,8 +40,12 @@ func TestGenerateChecksum(t *testing.T) {
|
|||
yamlContent := `
|
||||
rule_files:
|
||||
- rule_file.yml
|
||||
- /etc/prometheus/rules/rule_file.yml
|
||||
- /etc/prometheus/rules/glob/*.yml
|
||||
scrape_config_files:
|
||||
- scrape_config.yml
|
||||
- /etc/prometheus/scrape_config_files/scrape_config.yml
|
||||
- /etc/prometheus/scrape_config_files/glob/*.yml
|
||||
`
|
||||
|
||||
// Write initial content to files.
|
||||
|
@ -123,8 +127,12 @@ global:
|
|||
scrape_interval: 3s
|
||||
rule_files:
|
||||
- rule_file.yml
|
||||
- /etc/prometheus/rules/rule_file.yml
|
||||
- /etc/prometheus/rules/glob/*.yml
|
||||
scrape_config_files:
|
||||
- scrape_config.yml
|
||||
- /etc/prometheus/scrape_config_files/scrape_config.yml
|
||||
- /etc/prometheus/scrape_config_files/glob/*.yml
|
||||
`
|
||||
require.NoError(t, os.WriteFile(yamlFilePath, []byte(modifiedYamlContent), 0o644))
|
||||
|
||||
|
@ -145,6 +153,8 @@ scrape_config_files:
|
|||
modifiedYamlContent := `
|
||||
scrape_config_files:
|
||||
- scrape_config.yml
|
||||
- /etc/prometheus/scrape_config_files/scrape_config.yml
|
||||
- /etc/prometheus/scrape_config_files/glob/*.yml
|
||||
`
|
||||
require.NoError(t, os.WriteFile(yamlFilePath, []byte(modifiedYamlContent), 0o644))
|
||||
|
||||
|
@ -165,6 +175,8 @@ scrape_config_files:
|
|||
modifiedYamlContent := `
|
||||
rule_files:
|
||||
- rule_file.yml
|
||||
- /etc/prometheus/rules/rule_file.yml
|
||||
- /etc/prometheus/rules/glob/*.yml
|
||||
`
|
||||
require.NoError(t, os.WriteFile(yamlFilePath, []byte(modifiedYamlContent), 0o644))
|
||||
|
||||
|
|
Loading…
Reference in a new issue