Skip to content

Commit

Permalink
Remove support for expvar metrics
Browse files Browse the repository at this point in the history
Signed-off-by: Joeyyy09 <imt_2021063@iiitm.ac.in>
  • Loading branch information
joeyyy09 committed May 10, 2024
1 parent 5ddcaa9 commit 12fea50
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 40 deletions.
5 changes: 2 additions & 3 deletions examples/hotrod/cmd/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,8 @@ var (
jaegerUI string
)

const expvarDepr = "(deprecated, will be removed after 2024-01-01 or in release v1.53.0, whichever is later) "

// used by root command
func addFlags(cmd *cobra.Command) {
cmd.PersistentFlags().StringVarP(&metricsBackend, "metrics", "m", "prometheus", expvarDepr+"Metrics backend (expvar|prometheus). ")
cmd.PersistentFlags().StringVarP(&otelExporter, "otel-exporter", "x", "otlp", "OpenTelemetry exporter (otlp|stdout)")

cmd.PersistentFlags().DurationVarP(&fixDBConnDelay, "fix-db-query-delay", "D", 300*time.Millisecond, "Average latency of MySQL DB query")
Expand All @@ -60,4 +57,6 @@ func addFlags(cmd *cobra.Command) {
cmd.PersistentFlags().StringVarP(&jaegerUI, "jaeger-ui", "j", "http://localhost:16686", "Address of Jaeger UI to create [find trace] links")

cmd.PersistentFlags().BoolVarP(&verbose, "verbose", "v", false, "Enables debug logging")
// Warning about expvar deprecation
logger.Warn("The 'metrics' CLI flag and expvar metrics backend are deprecated and will be removed. Prometheus will be used as the default and only metrics backend.")
}
14 changes: 3 additions & 11 deletions examples/hotrod/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import (

"github.com/jaegertracing/jaeger/examples/hotrod/services/config"
"github.com/jaegertracing/jaeger/internal/jaegerclientenv2otel"
"github.com/jaegertracing/jaeger/internal/metrics/expvar"
"github.com/jaegertracing/jaeger/internal/metrics/prometheus"
"github.com/jaegertracing/jaeger/pkg/metrics"
)
Expand Down Expand Up @@ -70,16 +69,9 @@ func onInitialize() {

jaegerclientenv2otel.MapJaegerToOtelEnvVars(logger)

switch metricsBackend {
case "expvar":
metricsFactory = expvar.NewFactory(10) // 10 buckets for histograms
logger.Info("*** Using expvar as metrics backend " + expvarDepr)
case "prometheus":
metricsFactory = prometheus.New().Namespace(metrics.NSOptions{Name: "hotrod", Tags: nil})
logger.Info("Using Prometheus as metrics backend")
default:
logger.Fatal("unsupported metrics backend " + metricsBackend)
}
// Only configure Prometheus as the metrics backend
metricsFactory = prometheus.New().Namespace(metrics.NSOptions{Name: "hotrod", Tags: nil})
logger.Info("Using Prometheus as the metrics backend")
if config.MySQLGetDelay != fixDBConnDelay {
logger.Info("fix: overriding MySQL query delay", zap.Duration("old", config.MySQLGetDelay), zap.Duration("new", fixDBConnDelay))
config.MySQLGetDelay = fixDBConnDelay
Expand Down
12 changes: 3 additions & 9 deletions internal/metrics/metricsbuilder/builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,13 @@ package metricsbuilder

import (
"errors"
"expvar"
"flag"
"log"
"net/http"

"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/spf13/viper"

jexpvar "github.com/jaegertracing/jaeger/internal/metrics/expvar"
jprom "github.com/jaegertracing/jaeger/internal/metrics/prometheus"
"github.com/jaegertracing/jaeger/pkg/metrics"
)
Expand All @@ -47,14 +44,14 @@ type Builder struct {
handler http.Handler
}

const expvarDepr = "(deprecated, will be removed after 2024-01-01 or in release v1.53.0, whichever is later) "
// const expvarDepr = "(deprecated, will be removed after 2024-01-01 or in release v1.53.0, whichever is later) "

// AddFlags adds flags for Builder.
func AddFlags(flags *flag.FlagSet) {
flags.String(
metricsBackend,
defaultMetricsBackend,
"Defines which metrics backend to use for metrics reporting: prometheus, none, or expvar "+expvarDepr)
"Defines which metrics backend to use for metrics reporting: prometheus or none")
flags.String(
metricsHTTPRoute,
defaultMetricsRoute,
Expand All @@ -78,10 +75,7 @@ func (b *Builder) CreateMetricsFactory(namespace string) (metrics.Factory, error
return metricsFactory, nil
}
if b.Backend == "expvar" {
metricsFactory := jexpvar.NewFactory(10).Namespace(metrics.NSOptions{Name: namespace, Tags: nil})
b.handler = expvar.Handler()
log.Printf("using expvar as metrics backend " + expvarDepr)
return metricsFactory, nil
return nil, errors.New("expvar metrics backend is deprecated and no longer supported")
}
if b.Backend == "none" || b.Backend == "" {
return metrics.NullFactory, nil
Expand Down
17 changes: 0 additions & 17 deletions internal/metrics/metricsbuilder/builder_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
package metricsbuilder

import (
"expvar"
"flag"
"testing"

Expand Down Expand Up @@ -61,29 +60,13 @@ func TestBuilder(t *testing.T) {
}
t.FailNow()
}
assertExpVarCounter := func() {
var found expvar.KeyValue
expected := "foo.counter"
expvar.Do(func(kv expvar.KeyValue) {
if kv.Key == expected {
found = kv
}
})
assert.Equal(t, expected, found.Key)
}
testCases := []struct {
backend string
route string
err error
handler bool
assert func()
}{
{
backend: "expvar",
route: "/",
handler: true,
assert: assertExpVarCounter,
},
{
backend: "prometheus",
route: "/",
Expand Down

0 comments on commit 12fea50

Please sign in to comment.