@@ -72,18 +72,15 @@ func (q *dualWriteHttpProxyV2) Stop(ctx context.Context) {
7272 q .Close (ctx )
7373}
7474
75- func newDualWriteProxyV2 (schemaLoader clickhouse.TableDiscovery , logManager * clickhouse.LogManager , indexManager elasticsearch.IndexManagement , registry schema.Registry , config * config.QuesmaConfiguration , quesmaManagementConsole * ui.QuesmaManagementConsole , agent telemetry.PhoneHomeAgent , processor * ingest.IngestProcessor , resolver table_resolver.TableResolver , abResultsRepository ab_testing.Sender ) * dualWriteHttpProxyV2 {
76- queryRunner := NewQueryRunner (logManager , config , indexManager , quesmaManagementConsole , registry , abResultsRepository , resolver )
75+ func newDualWriteProxyV2 (schemaLoader clickhouse.TableDiscovery , logManager * clickhouse.LogManager , indexManager elasticsearch.IndexManagement , registry schema.Registry , config * config.QuesmaConfiguration , quesmaManagementConsole * ui.QuesmaManagementConsole , agent telemetry.PhoneHomeAgent , ingestProcessor * ingest.IngestProcessor , resolver table_resolver.TableResolver , abResultsRepository ab_testing.Sender ) * dualWriteHttpProxyV2 {
76+ queryProcessor := NewQueryRunner (logManager , config , indexManager , quesmaManagementConsole , registry , abResultsRepository , resolver )
7777 // not sure how we should configure our query translator ???
7878 // is this a config option??
7979
80- queryRunner .DateMathRenderer = queryparser .DateMathExpressionFormatLiteral
80+ queryProcessor .DateMathRenderer = queryparser .DateMathExpressionFormatLiteral
8181
8282 // tests should not be run with optimization enabled by default
83- queryRunner .EnableQueryOptimization (config )
84-
85- ingestRouter := ConfigureIngestRouterV2 (config , processor , agent , resolver )
86- searchRouter := ConfigureSearchRouterV2 (config , registry , logManager , quesmaManagementConsole , queryRunner , resolver )
83+ queryProcessor .EnableQueryOptimization (config )
8784
8885 tr := & http.Transport {
8986 TLSClientConfig : & tls.Config {InsecureSkipVerify : true },
@@ -92,20 +89,45 @@ func newDualWriteProxyV2(schemaLoader clickhouse.TableDiscovery, logManager *cli
9289 Transport : tr ,
9390 Timeout : time .Minute , // should be more configurable, 30s is Kibana default timeout
9491 }
95- routerInstance := frontend_connectors.RouterV2 {PhoneHomeAgent : agent , Config : config , QuesmaManagementConsole : quesmaManagementConsole , HttpClient : client , RequestPreprocessors : quesma_api.ProcessorChain {}}
92+
93+ routerInstance := frontend_connectors.RouterV2 {PhoneHomeAgent : agent ,
94+ Config : config , QuesmaManagementConsole : quesmaManagementConsole ,
95+ HttpClient : client , RequestPreprocessors : quesma_api.ProcessorChain {}}
9696 routerInstance .
9797 RegisterPreprocessor (quesma_api .NewTraceIdPreprocessor ())
9898 agent .FailedRequestsCollector (func () int64 {
9999 return routerInstance .FailedRequests .Load ()
100100 })
101101
102- elasticHttpFrontentConnector := NewElasticHttpFrontendConnector (":" + strconv .Itoa (int (config .PublicTcpPort )),
103- & routerInstance , searchRouter .(* quesma_api.PathRouter ), ingestRouter .(* quesma_api.PathRouter ), logManager , agent )
102+ ingestRouter := ConfigureIngestRouterV2 (config , ingestProcessor , agent , resolver )
103+ searchRouter := ConfigureSearchRouterV2 (config , registry , logManager , quesmaManagementConsole , queryProcessor , resolver )
104+
105+ elasticHttpIngestFrontendConnector := NewElasticHttpIngestFrontendConnector (":" + strconv .Itoa (int (config .PublicTcpPort )),
106+ & routerInstance , logManager , agent )
107+ elasticHttpIngestFrontendConnector .AddRouter (ingestRouter )
108+
109+ elasticHttpQueryFrontendConnector := NewElasticHttpQueryFrontendConnector (":" + strconv .Itoa (int (config .PublicTcpPort )),
110+ & routerInstance , logManager , agent )
111+ elasticHttpQueryFrontendConnector .AddRouter (searchRouter )
112+
113+ quesmaBuilder := quesma_api .NewQuesma ()
114+ ingestPipeline := quesma_api .NewPipeline ()
115+ ingestPipeline .AddFrontendConnector (elasticHttpIngestFrontendConnector )
116+
117+ queryPipeline := quesma_api .NewPipeline ()
118+ queryPipeline .AddFrontendConnector (elasticHttpQueryFrontendConnector )
119+ quesmaBuilder .AddPipeline (ingestPipeline )
120+ quesmaBuilder .AddPipeline (queryPipeline )
121+ _ , err := quesmaBuilder .Build ()
122+ if err != nil {
123+ logger .Fatal ().Msgf ("Error building Quesma: %v" , err )
124+ }
125+
104126 var limitedHandler http.Handler
105127 if config .DisableAuth {
106- limitedHandler = newSimultaneousClientsLimiterV2 (elasticHttpFrontentConnector , concurrentClientsLimitV2 )
128+ limitedHandler = newSimultaneousClientsLimiterV2 (elasticHttpIngestFrontendConnector , concurrentClientsLimitV2 )
107129 } else {
108- limitedHandler = newSimultaneousClientsLimiterV2 (NewAuthMiddleware (elasticHttpFrontentConnector , config .Elasticsearch ), concurrentClientsLimitV2 )
130+ limitedHandler = newSimultaneousClientsLimiterV2 (NewAuthMiddleware (elasticHttpIngestFrontendConnector , config .Elasticsearch ), concurrentClientsLimitV2 )
109131 }
110132
111133 return & dualWriteHttpProxyV2 {
@@ -119,10 +141,10 @@ func newDualWriteProxyV2(schemaLoader clickhouse.TableDiscovery, logManager *cli
119141 logManager : logManager ,
120142 publicPort : config .PublicTcpPort ,
121143 asyncQueriesEvictor : async_search_storage .NewAsyncQueriesEvictor (
122- queryRunner .AsyncRequestStorage .(async_search_storage.AsyncSearchStorageInMemory ),
123- queryRunner .AsyncQueriesContexts .(async_search_storage.AsyncQueryContextStorageInMemory ),
144+ queryProcessor .AsyncRequestStorage .(async_search_storage.AsyncSearchStorageInMemory ),
145+ queryProcessor .AsyncQueriesContexts .(async_search_storage.AsyncQueryContextStorageInMemory ),
124146 ),
125- queryRunner : queryRunner ,
147+ queryRunner : queryProcessor ,
126148 }
127149}
128150
0 commit comments