Search in sources :

Example 1 with TooManyRequestsStatus

use of org.graylog2.rest.TooManyRequestsStatus in project graylog2-server by Graylog2.

the class LoadBalancerStatusResource method status.

@GET
@Timed
@Produces(MediaType.TEXT_PLAIN)
@ApiOperation(value = "Get status of this Graylog server node for load balancers. " + "Returns ALIVE with HTTP 200, DEAD with HTTP 503, or THROTTLED with HTTP 429.")
public Response status() {
    final LoadBalancerStatus lbStatus = serverStatus.getLifecycle().getLoadbalancerStatus();
    Response.StatusType status;
    switch(lbStatus) {
        case ALIVE:
            status = Response.Status.OK;
            break;
        case THROTTLED:
            status = new TooManyRequestsStatus();
            break;
        default:
            status = Response.Status.SERVICE_UNAVAILABLE;
    }
    return Response.status(status).entity(lbStatus.toString().toUpperCase(Locale.ENGLISH)).build();
}
Also used : Response(javax.ws.rs.core.Response) TooManyRequestsStatus(org.graylog2.rest.TooManyRequestsStatus) LoadBalancerStatus(org.graylog2.plugin.lifecycles.LoadBalancerStatus) Produces(javax.ws.rs.Produces) Timed(com.codahale.metrics.annotation.Timed) GET(javax.ws.rs.GET) ApiOperation(io.swagger.annotations.ApiOperation)

Aggregations

Timed (com.codahale.metrics.annotation.Timed)1 ApiOperation (io.swagger.annotations.ApiOperation)1 GET (javax.ws.rs.GET)1 Produces (javax.ws.rs.Produces)1 Response (javax.ws.rs.core.Response)1 LoadBalancerStatus (org.graylog2.plugin.lifecycles.LoadBalancerStatus)1 TooManyRequestsStatus (org.graylog2.rest.TooManyRequestsStatus)1