package com.netflix.eureka.resources; import com.fasterxml.jackson.databind.ObjectMapper; import com.netflix.appinfo.InstanceInfo; import com.netflix.eureka.EurekaServerContext; import com.netflix.eureka.EurekaServerContextHolder; import com.netflix.eureka.registry.PeerAwareInstanceRegistry; import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Response; import java.util.Map; /** * @author David Liu */ @Produces("application/json") @Path("/serverinfo") public class ServerInfoResource { private final PeerAwareInstanceRegistry registry; @Inject ServerInfoResource(EurekaServerContext server) { this.registry = server.getRegistry(); } public ServerInfoResource() { this(EurekaServerContextHolder.getInstance().getServerContext()); } @GET @Path("statusoverrides") public Response getOverrides() throws Exception { Map<String, InstanceInfo.InstanceStatus> result = registry.overriddenInstanceStatusesSnapshot(); ObjectMapper objectMapper = new ObjectMapper(); String responseStr = objectMapper.writeValueAsString(result); return Response.ok(responseStr).build(); } }