Class HealthCheckHandler
- java.lang.Object
-
- org.apache.solr.handler.RequestHandlerBase
-
- org.apache.solr.handler.admin.HealthCheckHandler
-
- All Implemented Interfaces:
AutoCloseable,ApiSupport,SolrInfoBean,NestedRequestHandler,SolrMetricProducer,SolrRequestHandler,PermissionNameProvider
public class HealthCheckHandler extends RequestHandlerBase
Health Check Handler for reporting the health of a specific node.For the Solr Cloud mode by default the handler returns status
200 OKif all checks succeed, else it returns status503 UNAVAILABLE:- Cores container is active.
- Node connected to zookeeper.
- Node listed in
live_nodesin zookeeper.
The handler takes an optional request parameter
requireHealthyCores=truewhich will also require that all local cores that are part of an active shard are done initializing, i.e. not in statesRECOVERINGorDOWN. This parameter is designed to help during rolling restarts, to make sure each node is fully initialized and stable before proceeding with restarting the next node, and thus reduce the risk of restarting the last live replica of a shard.For the legacy mode the handler returns status
200 OKif all the cores configured as follower have successfully replicated index from their respective leader after startup. Note that this is a weak check i.e. once a follower has caught up with the leader the health check will keep reporting200 OKeven if the follower starts lagging behind. You should specify the acceptable generation lag follower should be with respect to its leader using themaxGenerationLag=<max_generation_lag>request parameter. IfmaxGenerationLagis not provided then health check would simply return OK.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.solr.handler.RequestHandlerBase
RequestHandlerBase.HandlerMetrics
-
Nested classes/interfaces inherited from interface org.apache.solr.security.PermissionNameProvider
PermissionNameProvider.Name
-
Nested classes/interfaces inherited from interface org.apache.solr.core.SolrInfoBean
SolrInfoBean.Category, SolrInfoBean.Group
-
-
Field Summary
-
Fields inherited from class org.apache.solr.handler.RequestHandlerBase
appends, defaults, httpCaching, initArgs, invariants, metrics, solrMetricsContext
-
Fields inherited from interface org.apache.solr.security.PermissionNameProvider
ANY, NULL, values
-
Fields inherited from interface org.apache.solr.request.SolrRequestHandler
TYPE
-
-
Constructor Summary
Constructors Constructor Description HealthCheckHandler(CoreContainer coreContainer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Collection<Api>getApis()It is possible to support multiple v2 apis by a single requesthandlerSolrInfoBean.CategorygetCategory()Category of this componentCoreContainergetCoreContainer()StringgetDescription()Simple one or two line descriptionPermissionNameProvider.NamegetPermissionName(AuthorizationContext request)voidhandleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp)voidinit(NamedList<?> args)Initializes theSolrRequestHandlerby creating threeSolrParamsnamed.BooleanregisterV2()Whether this request handler must be made available at the /v2/ path-
Methods inherited from class org.apache.solr.handler.RequestHandlerBase
getInitArgs, getMetricsForThisRequest, getName, getPluginInfo, getRequestHandler, getSolrMetricsContext, getSolrParamsFromNamedList, getSubHandler, handleRequest, initializeMetrics, setPluginInfo
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.solr.api.ApiSupport
registerV1
-
Methods inherited from interface org.apache.solr.metrics.SolrMetricProducer
close
-
-
-
-
Constructor Detail
-
HealthCheckHandler
public HealthCheckHandler(CoreContainer coreContainer)
-
-
Method Detail
-
init
public final void init(NamedList<?> args)
Description copied from class:RequestHandlerBaseInitializes theSolrRequestHandlerby creating threeSolrParamsnamed.table of parameters Name Description defaults Contains all of the named arguments contained within the list element named "defaults". appends Contains all of the named arguments contained within the list element named "appends". invariants Contains all of the named arguments contained within the list element named "invariants". Example:
<lst name="defaults"> <str name="echoParams">explicit</str> <str name="qf">text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0</str> <str name="mm">2<-1 5<-2 6<90%</str> <str name="bq">incubationdate_dt:[* TO NOW/DAY-1MONTH]^2.2</str> </lst> <lst name="appends"> <str name="fq">inStock:true</str> </lst> <lst name="invariants"> <str name="facet.field">cat</str> <str name="facet.field">manu_exact</str> <str name="facet.query">price:[* TO 500]</str> <str name="facet.query">price:[500 TO *]</str> </lst>
- Specified by:
initin interfaceSolrRequestHandler- Overrides:
initin classRequestHandlerBase- Parameters:
args- TheNamedListto initialize from- See Also:
RequestHandlerBase.handleRequest(org.apache.solr.request.SolrQueryRequest, org.apache.solr.response.SolrQueryResponse),RequestHandlerBase.handleRequestBody(org.apache.solr.request.SolrQueryRequest, org.apache.solr.response.SolrQueryResponse),SolrPluginUtils.setDefaults(org.apache.solr.request.SolrQueryRequest, org.apache.solr.common.params.SolrParams, org.apache.solr.common.params.SolrParams, org.apache.solr.common.params.SolrParams),See also the example solrconfig.xml located in the Solr codebase (example/solr/conf).
-
getCoreContainer
public CoreContainer getCoreContainer()
-
handleRequestBody
public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws Exception
- Specified by:
handleRequestBodyin classRequestHandlerBase- Throws:
Exception
-
getDescription
public String getDescription()
Description copied from interface:SolrInfoBeanSimple one or two line description- Specified by:
getDescriptionin interfaceSolrInfoBean- Specified by:
getDescriptionin classRequestHandlerBase
-
getCategory
public SolrInfoBean.Category getCategory()
Description copied from interface:SolrInfoBeanCategory of this component- Specified by:
getCategoryin interfaceSolrInfoBean- Overrides:
getCategoryin classRequestHandlerBase
-
registerV2
public Boolean registerV2()
Description copied from interface:ApiSupportWhether this request handler must be made available at the /v2/ path
-
getApis
public Collection<Api> getApis()
Description copied from interface:ApiSupportIt is possible to support multiple v2 apis by a single requesthandler- Specified by:
getApisin interfaceApiSupport- Overrides:
getApisin classRequestHandlerBase- Returns:
- the list of v2 api implementations
-
getPermissionName
public PermissionNameProvider.Name getPermissionName(AuthorizationContext request)
-
-