5
5
import static org .hypertrace .core .graphql .common .utils .CollectorUtils .flatten ;
6
6
7
7
import io .grpc .CallCredentials ;
8
+ import io .reactivex .rxjava3 .core .Scheduler ;
8
9
import io .reactivex .rxjava3 .core .Single ;
9
10
import java .util .Collection ;
10
11
import java .util .Set ;
13
14
import javax .inject .Singleton ;
14
15
import org .hypertrace .core .graphql .common .utils .Converter ;
15
16
import org .hypertrace .core .graphql .context .GraphQlRequestContext ;
17
+ import org .hypertrace .core .graphql .rx .BoundedIoScheduler ;
16
18
import org .hypertrace .core .graphql .spi .config .GraphQlServiceConfig ;
17
- import org .hypertrace .core .graphql .utils .grpc .GraphQlGrpcContextBuilder ;
18
19
import org .hypertrace .core .graphql .utils .grpc .GrpcChannelRegistry ;
20
+ import org .hypertrace .core .graphql .utils .grpc .GrpcContextBuilder ;
19
21
import org .hypertrace .gateway .service .GatewayServiceGrpc ;
20
22
import org .hypertrace .gateway .service .v1 .baseline .BaselineEntitiesRequest ;
21
23
import org .hypertrace .gateway .service .v1 .baseline .BaselineEntitiesResponse ;
34
36
35
37
@ Singleton
36
38
class GatewayBaselineDao implements BaselineDao {
37
- private static final int DEFAULT_DEADLINE_SEC = 10 ;
38
39
private final GatewayServiceGrpc .GatewayServiceFutureStub gatewayServiceStub ;
39
- private final GraphQlGrpcContextBuilder grpcContextBuilder ;
40
+ private final GrpcContextBuilder grpcContextBuilder ;
41
+ private final Scheduler boundedIoScheduler ;
40
42
private final Converter <Collection <MetricAggregationRequest >, Set <Expression >>
41
43
aggregationConverter ;
42
44
private final Converter <Collection <MetricSeriesRequest >, Set <TimeAggregation >> seriesConverter ;
@@ -47,10 +49,12 @@ class GatewayBaselineDao implements BaselineDao {
47
49
GrpcChannelRegistry grpcChannelRegistry ,
48
50
GraphQlServiceConfig serviceConfig ,
49
51
CallCredentials credentials ,
50
- GraphQlGrpcContextBuilder grpcContextBuilder ,
52
+ GrpcContextBuilder grpcContextBuilder ,
53
+ @ BoundedIoScheduler Scheduler boundedIoScheduler ,
51
54
Converter <Collection <MetricAggregationRequest >, Set <Expression >> aggregationConverter ,
52
55
Converter <Collection <MetricSeriesRequest >, Set <TimeAggregation >> seriesConverter ) {
53
56
this .grpcContextBuilder = grpcContextBuilder ;
57
+ this .boundedIoScheduler = boundedIoScheduler ;
54
58
this .gatewayServiceStub =
55
59
GatewayServiceGrpc .newFutureStub (
56
60
grpcChannelRegistry .forAddress (
@@ -68,6 +72,7 @@ public Single<BaselineEntitiesResponse> getBaselines(
68
72
EntitiesResponse entitiesResponse ,
69
73
EntityRequest request ) {
70
74
return this .buildRequest (entitiesRequest , entitiesResponse , request )
75
+ .subscribeOn (this .boundedIoScheduler )
71
76
.flatMap (baselineEntitiesRequest -> makeRequest (context , baselineEntitiesRequest ));
72
77
}
73
78
@@ -126,7 +131,7 @@ private Single<BaselineEntitiesResponse> makeRequest(
126
131
return Single .fromFuture (
127
132
this .grpcContextBuilder
128
133
.build (context )
129
- .callInContext (
134
+ .call (
130
135
() ->
131
136
this .gatewayServiceStub
132
137
.withDeadlineAfter (
0 commit comments