VEuPathDB / lib-jaxrs-container-core

Core library for VEuPathDB JaxRS container services
Apache License 2.0
0 stars 0 forks source link

Emit a metric when a streaming API fails after 200 #39

Closed dmgaldi closed 10 months ago

dmgaldi commented 10 months ago

I was thinking this is a bit of a gap in our metrics. A lot of EDA API failures end up without metrics because they return a 200:

ESC[mESC[36m2023-10-27 10:41:06.818 [rid:d91d8d685e7349aab5a06acd7cbf4e78] DEBUG PrometheusFilter:155 - Request end: POST /ss-internal/studies/VBP_MEGA/entities/GAZ_00000448/tabular 200
ESC[mESC[33m2023-10-27 10:41:06.819 [rid:     ] WARN  ErrorMapper:70 - Caught Exception:
ESC[m java.lang.IllegalStateException: No metadata file was found to parse binary properties from for variable EUPATH_0043203
        at org.veupathdb.service.eda.ss.model.variable.StringVariable.getStringConverter(StringVariable.java:45) ~[service.jar:3.9.0]
        at org.veupathdb.service.eda.ss.model.reducer.BinaryValuesStreamer.streamIdValueBinaryPairs(BinaryValuesStreamer.java:100) ~[service.jar:3.9.0]
        at org.veupathdb.service.eda.ss.model.db.FilteredResultFactory.produceTabularSubsetFromFile(FilteredResultFactory.java:186) ~[service.jar:3.9.0]
        at org.veupathdb.service.eda.ss.service.StudiesService.lambda$handleTabularRequest$7(StudiesService.java:290) ~[service.jar:3.9.0]
        at org.veupathdb.service.eda.generated.model.EntityTabularPostResponseStream.write(EntityTabularPostResponseStream.java:21) ~[service.jar:3.9.0]
        at org.glassfish.jersey.message.internal.StreamingOutputProvider.writeTo(StreamingOutputProvider.java:55) ~[service.jar:3.9.0]
        at org.glassfish.jersey.message.internal.StreamingOutputProvider.writeTo(StreamingOutputProvider.java:37) ~[service.jar:3.9.0]
        at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.invokeWriteTo(WriterInterceptorExecutor.java:242) ~[service.jar:3.9.0]
        at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:227) ~[service.jar:3.9.0]
        at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:139) ~[service.jar:3.9.0]
        at org.glassfish.jersey.server.internal.JsonWithPaddingInterceptor.aroundWriteTo(JsonWithPaddingInterceptor.java:85) ~[service.jar:3.9.0]
        at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:139) ~[service.jar:3.9.0]
        at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:61) ~[service.jar:3.9.0]
        at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:139) ~[service.jar:3.9.0]
        at org.veupathdb.lib.container.jaxrs.server.middleware.PrometheusFilter.aroundWriteTo(PrometheusFilter.java:129) ~[service.jar:3.9.0]
        at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:139) ~[service.jar:3.9.0]
        at org.veupathdb.lib.container.jaxrs.server.middleware.RequestIdFilter.aroundWriteTo(RequestIdFilter.java:70) ~[service.jar:3.9.0]
        at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:139) ~[service.jar:3.9.0]
        at org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1116) ~[service.jar:3.9.0]
        at org.glassfish.jersey.server.ServerRuntime$Responder.writeResponse(ServerRuntime.java:677) [service.jar:3.9.0]
        at org.glassfish.jersey.server.ServerRuntime$Responder.processResponse(ServerRuntime.java:385) [service.jar:3.9.0]
        at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:375) [service.jar:3.9.0]
        at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:264) [service.jar:3.9.0]
        at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248) [service.jar:3.9.0]
        at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244) [service.jar:3.9.0]
        at org.glassfish.jersey.internal.Errors.process(Errors.java:292) [service.jar:3.9.0]
        at org.glassfish.jersey.internal.Errors.process(Errors.java:274) [service.jar:3.9.0]
        at org.glassfish.jersey.internal.Errors.process(Errors.java:244) [service.jar:3.9.0]
        at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265) [service.jar:3.9.0]
        at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:240) [service.jar:3.9.0]
        at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:697) [service.jar:3.9.0]
        at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:367) [service.jar:3.9.0]
        at org.glassfish.grizzly.http.server.HttpHandler$1.run(HttpHandler.java:190) [service.jar:3.9.0]
        at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:535) [service.jar:3.9.0]
        at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:515) [service.jar:3.9.0]
Foxcapades commented 10 months ago

Sorry, accidentally merged out of habit