Search in sources :

Example 6 with Tag

use of io.micrometer.core.instrument.Tag in project seldon-core by SeldonIO.

the class RestClientController method feedback.

@RequestMapping(value = "/api/v0.1/feedback", method = RequestMethod.POST, consumes = "application/json; charset=utf-8", produces = "application/json; charset=utf-8")
@ResponseStatus(value = HttpStatus.OK)
public void feedback(RequestEntity<String> requestEntity, Principal principal) {
    String clientId = principal.getName();
    String json = requestEntity.getBody();
    Feedback feedback;
    try {
        Feedback.Builder builder = Feedback.newBuilder();
        ProtoBufUtils.updateMessageBuilderFromJson(builder, requestEntity.getBody());
        feedback = builder.build();
        Iterable<Tag> tags = asList(tagsProvider.principal(clientId), tagsProvider.projectName(clientId), tagsProvider.deploymentName(clientId), tagsProvider.deploymentVersion(clientId));
        Counter.builder("seldon_api_ingress_server_feedback_reward").tags(tags).register(Metrics.globalRegistry).increment(feedback.getReward());
        Counter.builder("seldon_api_ingress_server_feedback").tags(tags).register(Metrics.globalRegistry).increment();
    } catch (InvalidProtocolBufferException e) {
        logger.error("Bad request", e);
        throw new SeldonAPIException(ApiExceptionType.APIFE_INVALID_RESPONSE_JSON, requestEntity.getBody());
    }
    predictionService.sendFeedback(json, clientId);
}
Also used : SeldonAPIException(io.seldon.apife.exception.SeldonAPIException) Feedback(io.seldon.protos.PredictionProtos.Feedback) InvalidProtocolBufferException(com.google.protobuf.InvalidProtocolBufferException) Tag(io.micrometer.core.instrument.Tag) ResponseStatus(org.springframework.web.bind.annotation.ResponseStatus) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Aggregations

Tag (io.micrometer.core.instrument.Tag)6 Test (org.junit.jupiter.api.Test)3 HystrixPropertiesCommandDefault (com.netflix.hystrix.strategy.properties.HystrixPropertiesCommandDefault)2 SimpleMeterRegistry (io.micrometer.core.instrument.simple.SimpleMeterRegistry)2 Disabled (org.junit.jupiter.api.Disabled)2 MetricsHttpSessionListener (com.canoo.dp.impl.platform.server.metrics.servlet.MetricsHttpSessionListener)1 MetricsServlet (com.canoo.dp.impl.platform.server.metrics.servlet.MetricsServlet)1 RequestMetricsFilter (com.canoo.dp.impl.platform.server.metrics.servlet.RequestMetricsFilter)1 PlatformConfiguration (com.canoo.platform.core.PlatformConfiguration)1 InvalidProtocolBufferException (com.google.protobuf.InvalidProtocolBufferException)1 ClassLoaderMetrics (io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics)1 JvmGcMetrics (io.micrometer.core.instrument.binder.jvm.JvmGcMetrics)1 JvmMemoryMetrics (io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics)1 JvmThreadMetrics (io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics)1 ProcessorMetrics (io.micrometer.core.instrument.binder.system.ProcessorMetrics)1 PrometheusMeterRegistry (io.micrometer.prometheus.PrometheusMeterRegistry)1 SeldonAPIException (io.seldon.apife.exception.SeldonAPIException)1 Feedback (io.seldon.protos.PredictionProtos.Feedback)1 BufferPoolMXBean (java.lang.management.BufferPoolMXBean)1 MemoryPoolMXBean (java.lang.management.MemoryPoolMXBean)1