Skip to content

Commit

Permalink
Make all-in-one metric names match metrics from standalone components (
Browse files Browse the repository at this point in the history
…#5008)

## Which problem is this PR solving?
- Resolves #5007

## Description of the changes
- provide proper namespaces for different sub-components (agent,
collector, query) running in all-in-one, to match the metrics names
produces by these components when running standalone

## How was this change tested?
* `go run ./cmd/all-in-one`
* `curl http://localhost:14269/metrics | grep -v '#'`
* compare before/after
[textcompare-diff.pdf](https://github.com/jaegertracing/jaeger/files/13689954/textcompare-diff.pdf)

Signed-off-by: Yuri Shkuro <[email protected]>
  • Loading branch information
yurishkuro authored Dec 17, 2023
1 parent b5f73ae commit 747ee8d
Showing 1 changed file with 13 additions and 11 deletions.
24 changes: 13 additions & 11 deletions cmd/all-in-one/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,18 +95,21 @@ by default uses only in-memory database.`,
return err
}
logger := svc.Logger // shortcut
metricsFactory := fork.New("internal",
baseFactory := fork.New("internal",
expvar.NewFactory(10), // backend for internal opts
svc.MetricsFactory.Namespace(metrics.NSOptions{Name: "jaeger"}))
version.NewInfoMetrics(metricsFactory)
version.NewInfoMetrics(baseFactory)
agentMetricsFactory := baseFactory.Namespace(metrics.NSOptions{Name: "agent"})
collectorMetricsFactory := baseFactory.Namespace(metrics.NSOptions{Name: "collector"})
queryMetricsFactory := baseFactory.Namespace(metrics.NSOptions{Name: "query"})

tracer, err := jtracer.New("jaeger-all-in-one")
if err != nil {
logger.Fatal("Failed to initialize tracer", zap.Error(err))
}

storageFactory.InitFromViper(v, logger)
if err := storageFactory.Initialize(metricsFactory, logger); err != nil {
if err := storageFactory.Initialize(baseFactory, logger); err != nil {
logger.Fatal("Failed to init storage factory", zap.Error(err))
}

Expand All @@ -123,7 +126,7 @@ by default uses only in-memory database.`,
logger.Fatal("Failed to create dependency reader", zap.Error(err))
}

metricsQueryService, err := createMetricsQueryService(metricsReaderFactory, v, logger, metricsFactory)
metricsQueryService, err := createMetricsQueryService(metricsReaderFactory, v, logger, queryMetricsFactory)
if err != nil {
logger.Fatal("Failed to create metrics reader", zap.Error(err))
}
Expand All @@ -134,7 +137,7 @@ by default uses only in-memory database.`,
}

strategyStoreFactory.InitFromViper(v, logger)
if err := strategyStoreFactory.Initialize(metricsFactory, ssFactory, logger); err != nil {
if err := strategyStoreFactory.Initialize(collectorMetricsFactory, ssFactory, logger); err != nil {
logger.Fatal("Failed to init sampling strategy store factory", zap.Error(err))
}
strategyStore, aggregator, err := strategyStoreFactory.CreateStrategyStore()
Expand Down Expand Up @@ -163,7 +166,7 @@ by default uses only in-memory database.`,
c := collectorApp.New(&collectorApp.CollectorParams{
ServiceName: "jaeger-collector",
Logger: logger,
MetricsFactory: metricsFactory,
MetricsFactory: collectorMetricsFactory,
SpanWriter: spanWriter,
StrategyStore: strategyStore,
Aggregator: aggregator,
Expand All @@ -179,7 +182,6 @@ by default uses only in-memory database.`,
if len(grpcBuilder.CollectorHostPorts) == 0 {
grpcBuilder.CollectorHostPorts = append(grpcBuilder.CollectorHostPorts, cOpts.GRPC.HostPort)
}
agentMetricsFactory := metricsFactory.Namespace(metrics.NSOptions{Name: "agent", Tags: nil})
builders := map[agentRep.Type]agentApp.CollectorProxyBuilder{
agentRep.GRPC: agentApp.GRPCCollectorProxyBuilder(grpcBuilder),
}
Expand All @@ -191,13 +193,13 @@ by default uses only in-memory database.`,
if err != nil {
logger.Fatal("Could not create collector proxy", zap.Error(err))
}
agent := startAgent(cp, aOpts, logger, metricsFactory)
agent := startAgent(cp, aOpts, logger, agentMetricsFactory)

// query
querySrv := startQuery(
svc, qOpts, qOpts.BuildQueryServiceOptions(storageFactory, logger),
spanReader, dependencyReader, metricsQueryService,
metricsFactory, tm, tracer,
queryMetricsFactory, tm, tracer,
)

svc.RunAndThen(func() {
Expand Down Expand Up @@ -271,11 +273,11 @@ func startQuery(
spanReader spanstore.Reader,
depReader dependencystore.Reader,
metricsQueryService querysvc.MetricsQueryService,
baseFactory metrics.Factory,
metricsFactory metrics.Factory,
tm *tenancy.Manager,
jt *jtracer.JTracer,
) *queryApp.Server {
spanReader = storageMetrics.NewReadMetricsDecorator(spanReader, baseFactory.Namespace(metrics.NSOptions{Name: "query"}))
spanReader = storageMetrics.NewReadMetricsDecorator(spanReader, metricsFactory)
qs := querysvc.NewQueryService(spanReader, depReader, *queryOpts)
server, err := queryApp.NewServer(svc.Logger, qs, metricsQueryService, qOpts, tm, jt)
if err != nil {
Expand Down

0 comments on commit 747ee8d

Please sign in to comment.