@@ -59,6 +59,7 @@ import (
59
59
"github.com/jaegertracing/jaeger/pkg/version"
60
60
ss "github.com/jaegertracing/jaeger/plugin/sampling/strategystore"
61
61
"github.com/jaegertracing/jaeger/plugin/storage"
62
+ istorage "github.com/jaegertracing/jaeger/storage"
62
63
"github.com/jaegertracing/jaeger/storage/dependencystore"
63
64
"github.com/jaegertracing/jaeger/storage/spanstore"
64
65
storageMetrics "github.com/jaegertracing/jaeger/storage/spanstore/metrics"
@@ -140,7 +141,7 @@ func main() {
140
141
141
142
startAgent (aOpts , repOpts , tchannelRepOpts , grpcRepOpts , cOpts , logger , metricsFactory )
142
143
grpcServer := startCollector (cOpts , spanWriter , logger , metricsFactory , strategyStore , hc )
143
- startQuery (qOpts , spanReader , dependencyReader , logger , metricsFactory , mBldr , hc )
144
+ startQuery (qOpts , spanReader , dependencyReader , logger , metricsFactory , mBldr , hc , archiveOptions ( storageFactory , logger ) )
144
145
hc .Ready ()
145
146
<- signalsChannel
146
147
logger .Info ("Shutting down" )
@@ -338,6 +339,7 @@ func startQuery(
338
339
baseFactory metrics.Factory ,
339
340
metricsBuilder * pMetrics.Builder ,
340
341
hc * healthcheck.HealthCheck ,
342
+ handlerOpts []queryApp.HandlerOption ,
341
343
) {
342
344
tracer , closer , err := jaegerClientConfig.Configuration {
343
345
Sampler : & jaegerClientConfig.SamplerConfig {
@@ -357,11 +359,11 @@ func startQuery(
357
359
358
360
spanReader = storageMetrics .NewReadMetricsDecorator (spanReader , baseFactory .Namespace ("query" , nil ))
359
361
362
+ handlerOpts = append (handlerOpts , queryApp .HandlerOptions .Logger (logger ), queryApp .HandlerOptions .Tracer (tracer ))
360
363
apiHandler := queryApp .NewAPIHandler (
361
364
spanReader ,
362
365
depReader ,
363
- queryApp .HandlerOptions .Logger (logger ),
364
- queryApp .HandlerOptions .Tracer (tracer ))
366
+ handlerOpts ... )
365
367
366
368
r := mux .NewRouter ()
367
369
if qOpts .BasePath != "/" {
@@ -401,3 +403,33 @@ func initSamplingStrategyStore(
401
403
}
402
404
return strategyStore
403
405
}
406
+
407
+ func archiveOptions (storageFactory istorage.Factory , logger * zap.Logger ) []queryApp.HandlerOption {
408
+ archiveFactory , ok := storageFactory .(istorage.ArchiveFactory )
409
+ if ! ok {
410
+ logger .Info ("Archive storage not supported by the factory" )
411
+ return nil
412
+ }
413
+ reader , err := archiveFactory .CreateArchiveSpanReader ()
414
+ if err == istorage .ErrArchiveStorageNotConfigured || err == istorage .ErrArchiveStorageNotSupported {
415
+ logger .Info ("Archive storage not created" , zap .String ("reason" , err .Error ()))
416
+ return nil
417
+ }
418
+ if err != nil {
419
+ logger .Error ("Cannot init archive storage reader" , zap .Error (err ))
420
+ return nil
421
+ }
422
+ writer , err := archiveFactory .CreateArchiveSpanWriter ()
423
+ if err == istorage .ErrArchiveStorageNotConfigured || err == istorage .ErrArchiveStorageNotSupported {
424
+ logger .Info ("Archive storage not created" , zap .String ("reason" , err .Error ()))
425
+ return nil
426
+ }
427
+ if err != nil {
428
+ logger .Error ("Cannot init archive storage writer" , zap .Error (err ))
429
+ return nil
430
+ }
431
+ return []queryApp.HandlerOption {
432
+ queryApp .HandlerOptions .ArchiveSpanReader (reader ),
433
+ queryApp .HandlerOptions .ArchiveSpanWriter (writer ),
434
+ }
435
+ }
0 commit comments