Skip to content

Commit 8cd829c

Browse files
added error count of failed requests from query service to pinot (#138)
* added error count of failed request from query-service to pinot/other request handler * added success metric for response returned in query-layer * added success metric and applied the spotless github action fix * addressing the PR comments 1
1 parent bc43b70 commit 8cd829c

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

query-service-impl/src/main/java/org/hypertrace/core/query/service/QueryServiceImpl.java

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22

33
import static org.hypertrace.core.query.service.RowChunkingOperator.chunkRows;
44

5+
import com.google.common.collect.ImmutableMap;
56
import io.grpc.Status;
67
import io.grpc.stub.ServerCallStreamObserver;
78
import io.grpc.stub.StreamObserver;
9+
import io.micrometer.core.instrument.Counter;
810
import io.reactivex.rxjava3.core.Maybe;
911
import io.reactivex.rxjava3.core.Observable;
1012
import javax.inject.Inject;
@@ -16,14 +18,21 @@
1618
import org.hypertrace.core.query.service.api.QueryServiceGrpc;
1719
import org.hypertrace.core.query.service.api.ResultSetChunk;
1820
import org.hypertrace.core.query.service.validation.QueryValidator;
21+
import org.hypertrace.core.serviceframework.metrics.PlatformMetricsRegistry;
1922

2023
@Singleton
2124
@Slf4j
2225
class QueryServiceImpl extends QueryServiceGrpc.QueryServiceImplBase {
26+
2327
private final RequestHandlerSelector handlerSelector;
2428
private final QueryTransformationPipeline queryTransformationPipeline;
2529
private final QueryValidator queryValidator;
2630

31+
private Counter requestStatusErrorCounter;
32+
private Counter requestStatusSuccessCounter;
33+
private static final String SERVICE_REQUESTS_STATUS_COUNTER =
34+
"hypertrace.query.service.requests.status";
35+
2736
@Inject
2837
public QueryServiceImpl(
2938
RequestHandlerSelector handlerSelector,
@@ -32,6 +41,17 @@ public QueryServiceImpl(
3241
this.handlerSelector = handlerSelector;
3342
this.queryTransformationPipeline = queryTransformationPipeline;
3443
this.queryValidator = queryValidator;
44+
initMetrics();
45+
}
46+
47+
private void initMetrics() {
48+
requestStatusErrorCounter =
49+
PlatformMetricsRegistry.registerCounter(
50+
SERVICE_REQUESTS_STATUS_COUNTER, ImmutableMap.of("error", "true"));
51+
52+
requestStatusSuccessCounter =
53+
PlatformMetricsRegistry.registerCounter(
54+
SERVICE_REQUESTS_STATUS_COUNTER, ImmutableMap.of("error", "false"));
3555
}
3656

3757
@Override
@@ -45,7 +65,12 @@ public void execute(
4565
() ->
4666
this.transformAndExecute(
4767
originalRequest, requestContext.getTenantId().orElseThrow())))
48-
.doOnError(error -> log.error("Query failed: {}", originalRequest, error))
68+
.doOnError(
69+
error -> {
70+
log.error("Query failed: {}", originalRequest, error);
71+
requestStatusErrorCounter.increment();
72+
})
73+
.doOnComplete(() -> requestStatusSuccessCounter.increment())
4974
.subscribe(
5075
new ServerCallStreamRxObserver<>(
5176
(ServerCallStreamObserver<ResultSetChunk>) callStreamObserver));

0 commit comments

Comments
 (0)