diff --git a/chart/templates/deployment.yaml b/chart/templates/deployment.yaml index ca3a06dc6..8fb75b259 100644 --- a/chart/templates/deployment.yaml +++ b/chart/templates/deployment.yaml @@ -143,7 +143,6 @@ spec: {{- range $k, $v := .Values.extraArgs}} - --{{$k}}={{$v}} {{- end }} - {{- if .Values.upstream.enabled }} - --agent-name={{ .Values.upstream.agentName }} {{- if .Values.upstream.host }} @@ -159,6 +158,9 @@ spec: - --upstream-insecure-skip-verify=true {{- end}} {{- end }} + {{- if ne .Values.prometheusURL "" }} + - --prometheus={{ .Values.prometheusURL }} + {{- end }} resources: {{- toYaml .Values.resources | nindent 12 }} livenessProbe: diff --git a/chart/values.yaml b/chart/values.yaml index 6ccf8ec32..f314b6b0b 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -63,6 +63,9 @@ nameOverride: "" pingMode: "unprivileged" allowPrivilegeEscalation: false +# Prometheus URL +prometheusURL: "" + data: defaultSearchWindow: 1h cacheTimeoutDays: 90 diff --git a/checks/prometheus.go b/checks/prometheus.go index b14dde923..b67ab6ece 100644 --- a/checks/prometheus.go +++ b/checks/prometheus.go @@ -34,8 +34,13 @@ func (c *PrometheusChecker) Check(ctx *context.Context, extConfig external.Check results = append(results, result) //nolint:staticcheck - if check.Host != "" && check.URL == "" { - check.URL = check.Host + if check.Host != "" { + return results.Failf("host field is deprecated, use url field instead") + } + + // Use global prometheus url if check's url is empty + if check.URL == "" { + check.URL = prometheus.PrometheusURL } connection, err := ctx.GetConnection(check.Connection) diff --git a/cmd/root.go b/cmd/root.go index 93596971e..a4724d7c3 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -7,6 +7,7 @@ import ( "github.com/flanksource/canary-checker/pkg/cache" "github.com/flanksource/canary-checker/pkg/db" "github.com/flanksource/canary-checker/pkg/jobs/canary" + "github.com/flanksource/canary-checker/pkg/prometheus" "github.com/flanksource/canary-checker/pkg/runner" "github.com/flanksource/canary-checker/pkg/telemetry" "github.com/flanksource/commons/logger" @@ -42,7 +43,6 @@ var Root = &cobra.Command{ var ( httpPort = 8080 publicEndpoint = "http://localhost:8080" - prometheusURL string pushServers, pullServers []string sharedLibrary []string exposeEnv bool @@ -71,7 +71,7 @@ func ServerFlags(flags *pflag.FlagSet) { flags.StringSliceVar(&pushServers, "push-servers", []string{}, "push check results to multiple canary servers") flags.StringSliceVar(&pullServers, "pull-servers", []string{}, "push check results to multiple canary servers") flags.StringVar(&runner.RunnerName, "name", "local", "Server name shown in aggregate dashboard") - flags.StringVar(&prometheusURL, "prometheus", "", "URL of the prometheus server that is scraping this instance") + flags.StringVar(&prometheus.PrometheusURL, "prometheus", "", "URL of the prometheus server that is scraping this instance") flags.StringVar(&db.ConnectionString, "db", "DB_URL", "Connection string for the postgres database. Use embedded:///path/to/dir to use the embedded database") flags.IntVar(&db.DefaultExpiryDays, "cache-timeout", 90, "Cache timeout in days") flags.StringVarP(&cache.DefaultWindow, "default-window", "", "1h", "Default search window") diff --git a/cmd/serve.go b/cmd/serve.go index b10ba65e8..ae0e8a7c4 100644 --- a/cmd/serve.go +++ b/cmd/serve.go @@ -80,7 +80,7 @@ func serve() { push.AddServers(pushServers) go push.Start() - runner.Prometheus, _ = prometheus.NewPrometheusAPI(prometheusURL) + runner.Prometheus, _ = prometheus.NewPrometheusAPI(prometheus.PrometheusURL) if debug { logger.Infof("Starting pprof at /debug") diff --git a/pkg/prometheus/prometheus.go b/pkg/prometheus/prometheus.go index 091d42a25..6824675f2 100644 --- a/pkg/prometheus/prometheus.go +++ b/pkg/prometheus/prometheus.go @@ -16,6 +16,8 @@ type PrometheusClient struct { v1.API } +var PrometheusURL string + func (p PrometheusClient) GetHistogramQuantileLatency(percentile, checkKey, duration string) (latency float64, err error) { modelValue, _, err := p.Query(context.TODO(), fmt.Sprintf("histogram_quantile(%v, sum(rate(canary_check_duration_bucket{key='%v'}[%v])) by (le))", percentile, checkKey, duration), time.Now()) if err != nil {