diff --git a/internal/k6runner/k6runner.go b/internal/k6runner/k6runner.go index c6c4d06f..f4d8724f 100644 --- a/internal/k6runner/k6runner.go +++ b/internal/k6runner/k6runner.go @@ -9,8 +9,8 @@ import ( "strings" "github.com/go-logfmt/logfmt" + smmmodel "github.com/grafana/synthetic-monitoring-agent/internal/model" "github.com/grafana/synthetic-monitoring-agent/internal/prober/logger" - sm "github.com/grafana/synthetic-monitoring-agent/pkg/pb/synthetic_monitoring" "github.com/prometheus/client_golang/prometheus" dto "github.com/prometheus/client_model/go" "github.com/prometheus/common/expfmt" @@ -52,7 +52,7 @@ type CheckInfo struct { } // CheckInfoFromSM returns a CheckInfo from the information of the given SM check. -func CheckInfoFromSM(smc sm.Check) CheckInfo { +func CheckInfoFromSM(smc smmmodel.Check) CheckInfo { ci := CheckInfo{ Metadata: map[string]any{}, } diff --git a/internal/prober/browser/browser.go b/internal/prober/browser/browser.go index 0db17575..c9f188f5 100644 --- a/internal/prober/browser/browser.go +++ b/internal/prober/browser/browser.go @@ -5,6 +5,7 @@ import ( "errors" "github.com/grafana/synthetic-monitoring-agent/internal/k6runner" + "github.com/grafana/synthetic-monitoring-agent/internal/model" "github.com/grafana/synthetic-monitoring-agent/internal/prober/logger" sm "github.com/grafana/synthetic-monitoring-agent/pkg/pb/synthetic_monitoring" "github.com/prometheus/client_golang/prometheus" @@ -26,7 +27,7 @@ type Prober struct { processor *k6runner.Processor } -func NewProber(ctx context.Context, check sm.Check, logger zerolog.Logger, runner k6runner.Runner) (Prober, error) { +func NewProber(ctx context.Context, check model.Check, logger zerolog.Logger, runner k6runner.Runner) (Prober, error) { var p Prober if check.Settings.Browser == nil { diff --git a/internal/prober/dns/dns.go b/internal/prober/dns/dns.go index 55388614..4200972d 100644 --- a/internal/prober/dns/dns.go +++ b/internal/prober/dns/dns.go @@ -6,6 +6,7 @@ import ( "strings" "time" + "github.com/grafana/synthetic-monitoring-agent/internal/model" "github.com/grafana/synthetic-monitoring-agent/internal/prober/dns/internal/bbe/config" bbeprober "github.com/grafana/synthetic-monitoring-agent/internal/prober/dns/internal/bbe/prober" "github.com/grafana/synthetic-monitoring-agent/internal/prober/logger" @@ -21,7 +22,7 @@ type Prober struct { experimental bool } -func NewProber(check sm.Check) (Prober, error) { +func NewProber(check model.Check) (Prober, error) { if check.Settings.Dns == nil { return Prober{}, errUnsupportedCheck } @@ -35,7 +36,7 @@ func NewProber(check sm.Check) (Prober, error) { }, nil } -func NewExperimentalProber(check sm.Check) (Prober, error) { +func NewExperimentalProber(check model.Check) (Prober, error) { p, err := NewProber(check) if err != nil { return p, err diff --git a/internal/prober/grpc/grpc.go b/internal/prober/grpc/grpc.go index a38831dc..9fb437d5 100644 --- a/internal/prober/grpc/grpc.go +++ b/internal/prober/grpc/grpc.go @@ -5,6 +5,7 @@ import ( "errors" "time" + "github.com/grafana/synthetic-monitoring-agent/internal/model" "github.com/grafana/synthetic-monitoring-agent/internal/prober/logger" "github.com/grafana/synthetic-monitoring-agent/internal/tls" sm "github.com/grafana/synthetic-monitoring-agent/pkg/pb/synthetic_monitoring" @@ -20,7 +21,7 @@ type Prober struct { config config.Module } -func NewProber(ctx context.Context, check sm.Check, logger zerolog.Logger) (Prober, error) { +func NewProber(ctx context.Context, check model.Check, logger zerolog.Logger) (Prober, error) { if check.Settings.Grpc == nil { return Prober{}, errUnsupportedCheck } diff --git a/internal/prober/http/http.go b/internal/prober/http/http.go index 320a90c2..09671708 100644 --- a/internal/prober/http/http.go +++ b/internal/prober/http/http.go @@ -11,6 +11,7 @@ import ( "strings" "time" + "github.com/grafana/synthetic-monitoring-agent/internal/model" "github.com/grafana/synthetic-monitoring-agent/internal/prober/logger" "github.com/grafana/synthetic-monitoring-agent/internal/tls" "github.com/grafana/synthetic-monitoring-agent/internal/version" @@ -29,13 +30,13 @@ type Prober struct { cacheBustingQueryParamName string } -func NewProber(ctx context.Context, check sm.Check, logger zerolog.Logger, reservedHeaders http.Header) (Prober, error) { +func NewProber(ctx context.Context, check model.Check, logger zerolog.Logger, reservedHeaders http.Header) (Prober, error) { if check.Settings.Http == nil { return Prober{}, errUnsupportedCheck } if len(reservedHeaders) > 0 { - augmentHttpHeaders(&check, reservedHeaders) + augmentHttpHeaders(&check.Check, reservedHeaders) } cfg, err := settingsToModule(ctx, check.Settings.Http, logger) diff --git a/internal/prober/icmp/icmp.go b/internal/prober/icmp/icmp.go index 62142711..df0ffecb 100644 --- a/internal/prober/icmp/icmp.go +++ b/internal/prober/icmp/icmp.go @@ -7,6 +7,7 @@ import ( "time" "github.com/go-kit/log" + "github.com/grafana/synthetic-monitoring-agent/internal/model" "github.com/grafana/synthetic-monitoring-agent/internal/prober/logger" sm "github.com/grafana/synthetic-monitoring-agent/pkg/pb/synthetic_monitoring" "github.com/prometheus/blackbox_exporter/config" @@ -29,7 +30,7 @@ type Prober struct { config Module } -func NewProber(check sm.Check) (Prober, error) { +func NewProber(check model.Check) (Prober, error) { var p Prober if check.Settings.Ping == nil { diff --git a/internal/prober/multihttp/multihttp.go b/internal/prober/multihttp/multihttp.go index d93291d3..f762a278 100644 --- a/internal/prober/multihttp/multihttp.go +++ b/internal/prober/multihttp/multihttp.go @@ -7,6 +7,7 @@ import ( "strings" "github.com/grafana/synthetic-monitoring-agent/internal/k6runner" + "github.com/grafana/synthetic-monitoring-agent/internal/model" "github.com/grafana/synthetic-monitoring-agent/internal/prober/logger" sm "github.com/grafana/synthetic-monitoring-agent/pkg/pb/synthetic_monitoring" "github.com/prometheus/client_golang/prometheus" @@ -28,7 +29,7 @@ type Prober struct { processor *k6runner.Processor } -func NewProber(ctx context.Context, check sm.Check, logger zerolog.Logger, runner k6runner.Runner, reservedHeaders http.Header) (Prober, error) { +func NewProber(ctx context.Context, check model.Check, logger zerolog.Logger, runner k6runner.Runner, reservedHeaders http.Header) (Prober, error) { var p Prober if check.Settings.Multihttp == nil { @@ -40,7 +41,7 @@ func NewProber(ctx context.Context, check sm.Check, logger zerolog.Logger, runne } if len(reservedHeaders) > 0 { - augmentHttpHeaders(&check, reservedHeaders) + augmentHttpHeaders(&check.Check, reservedHeaders) } script, err := settingsToScript(check.Settings.Multihttp) diff --git a/internal/prober/prober.go b/internal/prober/prober.go index eaed05b9..d9470965 100644 --- a/internal/prober/prober.go +++ b/internal/prober/prober.go @@ -62,33 +62,33 @@ func (f proberFactory) New(ctx context.Context, logger zerolog.Logger, check mod switch checkType := check.Type(); checkType { case sm.CheckTypePing: - p, err = icmp.NewProber(check.Check) + p, err = icmp.NewProber(check) target = check.Target case sm.CheckTypeHttp: reservedHeaders := f.getReservedHeaders(&check) - p, err = httpProber.NewProber(ctx, check.Check, logger, reservedHeaders) + p, err = httpProber.NewProber(ctx, check, logger, reservedHeaders) target = check.Target case sm.CheckTypeDns: if f.features.IsSet(feature.ExperimentalDnsProber) { - p, err = dns.NewExperimentalProber(check.Check) + p, err = dns.NewExperimentalProber(check) } else { - p, err = dns.NewProber(check.Check) + p, err = dns.NewProber(check) } target = check.Settings.Dns.Server case sm.CheckTypeTcp: - p, err = tcp.NewProber(ctx, check.Check, logger) + p, err = tcp.NewProber(ctx, check, logger) target = check.Target case sm.CheckTypeTraceroute: - p, err = traceroute.NewProber(check.Check, logger) + p, err = traceroute.NewProber(check, logger) target = check.Target case sm.CheckTypeScripted: if f.runner != nil { - p, err = scripted.NewProber(ctx, check.Check, logger, f.runner) + p, err = scripted.NewProber(ctx, check, logger, f.runner) target = check.Target } else { err = fmt.Errorf("k6 checks are not enabled") @@ -99,7 +99,7 @@ func (f proberFactory) New(ctx context.Context, logger zerolog.Logger, check mod // we know that the runner is actually able to handle browser // checks. if f.runner != nil { - p, err = browser.NewProber(ctx, check.Check, logger, f.runner) + p, err = browser.NewProber(ctx, check, logger, f.runner) target = check.Target } else { err = fmt.Errorf("k6 checks are not enabled") @@ -108,14 +108,14 @@ func (f proberFactory) New(ctx context.Context, logger zerolog.Logger, check mod case sm.CheckTypeMultiHttp: if f.runner != nil { reservedHeaders := f.getReservedHeaders(&check) - p, err = multihttp.NewProber(ctx, check.Check, logger, f.runner, reservedHeaders) + p, err = multihttp.NewProber(ctx, check, logger, f.runner, reservedHeaders) target = check.Target } else { err = fmt.Errorf("k6 checks are not enabled") } case sm.CheckTypeGrpc: - p, err = grpc.NewProber(ctx, check.Check, logger) + p, err = grpc.NewProber(ctx, check, logger) target = check.Target default: diff --git a/internal/prober/scripted/scripted.go b/internal/prober/scripted/scripted.go index f4720ed8..023d61b6 100644 --- a/internal/prober/scripted/scripted.go +++ b/internal/prober/scripted/scripted.go @@ -5,6 +5,7 @@ import ( "errors" "github.com/grafana/synthetic-monitoring-agent/internal/k6runner" + "github.com/grafana/synthetic-monitoring-agent/internal/model" "github.com/grafana/synthetic-monitoring-agent/internal/prober/logger" sm "github.com/grafana/synthetic-monitoring-agent/pkg/pb/synthetic_monitoring" "github.com/prometheus/client_golang/prometheus" @@ -26,7 +27,7 @@ type Prober struct { processor *k6runner.Processor } -func NewProber(ctx context.Context, check sm.Check, logger zerolog.Logger, runner k6runner.Runner) (Prober, error) { +func NewProber(ctx context.Context, check model.Check, logger zerolog.Logger, runner k6runner.Runner) (Prober, error) { var p Prober if check.Settings.Scripted == nil { diff --git a/internal/prober/tcp/tcp.go b/internal/prober/tcp/tcp.go index 0591011f..ce29854e 100644 --- a/internal/prober/tcp/tcp.go +++ b/internal/prober/tcp/tcp.go @@ -5,6 +5,7 @@ import ( "errors" "time" + "github.com/grafana/synthetic-monitoring-agent/internal/model" "github.com/grafana/synthetic-monitoring-agent/internal/prober/logger" "github.com/grafana/synthetic-monitoring-agent/internal/tls" sm "github.com/grafana/synthetic-monitoring-agent/pkg/pb/synthetic_monitoring" @@ -20,7 +21,7 @@ type Prober struct { config config.Module } -func NewProber(ctx context.Context, check sm.Check, logger zerolog.Logger) (Prober, error) { +func NewProber(ctx context.Context, check model.Check, logger zerolog.Logger) (Prober, error) { if check.Settings.Tcp == nil { return Prober{}, errUnsupportedCheck } diff --git a/internal/prober/traceroute/traceroute.go b/internal/prober/traceroute/traceroute.go index 695c870a..93510b72 100644 --- a/internal/prober/traceroute/traceroute.go +++ b/internal/prober/traceroute/traceroute.go @@ -9,6 +9,7 @@ import ( "time" "github.com/google/uuid" + "github.com/grafana/synthetic-monitoring-agent/internal/model" "github.com/grafana/synthetic-monitoring-agent/internal/prober/logger" sm "github.com/grafana/synthetic-monitoring-agent/pkg/pb/synthetic_monitoring" "github.com/prometheus/client_golang/prometheus" @@ -36,7 +37,7 @@ type Prober struct { logger zerolog.Logger } -func NewProber(check sm.Check, logger zerolog.Logger) (Prober, error) { +func NewProber(check model.Check, logger zerolog.Logger) (Prober, error) { if check.Settings.Traceroute == nil { return Prober{}, errUnsupportedCheck } @@ -65,7 +66,6 @@ func (p Prober) Probe(ctx context.Context, target string, registry *prometheus.R p.config.ringBufferSize, p.config.ptrLookup, ) - if err != nil { logErr := logger.Log(err) if logErr != nil { @@ -83,9 +83,8 @@ func (p Prober) Probe(ctx context.Context, target string, registry *prometheus.R } } }(ch) - var success = true + success := true err = m.RunWithContext(ctx, p.config.count) - if err != nil { err = logger.Log("Level", "error", "msg", err.Error()) if err != nil { @@ -96,7 +95,7 @@ func (p Prober) Probe(ctx context.Context, target string, registry *prometheus.R tracerouteID := uuid.New() totalPacketsLost := float64(0) totalPacketsSent := float64(0) - var hosts = make(map[int]string) + hosts := make(map[int]string) for ttl, hop := range m.Statistic { totalPacketsLost += float64(hop.Lost) totalPacketsSent += float64(hop.Sent) @@ -133,17 +132,17 @@ func (p Prober) Probe(ctx context.Context, target string, registry *prometheus.R return false, 0 } - var traceHashGauge = prometheus.NewGauge(prometheus.GaugeOpts{ + traceHashGauge := prometheus.NewGauge(prometheus.GaugeOpts{ Name: "probe_traceroute_route_hash", Help: "Hash of all the hosts in a traceroute path. Used to determine route volatility.", }) - var totalHopsGauge = prometheus.NewGauge(prometheus.GaugeOpts{ + totalHopsGauge := prometheus.NewGauge(prometheus.GaugeOpts{ Name: "probe_traceroute_total_hops", Help: "Total hops to reach a traceroute destination", }) - var overallPacketLossGauge = prometheus.NewGauge(prometheus.GaugeOpts{ + overallPacketLossGauge := prometheus.NewGauge(prometheus.GaugeOpts{ Name: "probe_traceroute_packet_loss_percent", Help: "Overall percentage of packet loss during the traceroute", })