6

I am running Coveo 4.1.125 (on a on-premise server) for Sitecore 8.1

I noticed that sometimes when my dedicated Coveo server is unreachable, that the complete website is going down with the following exception:

Coveo Entreprise Search seems to be unavailable. Please make sure that the service is installed and started.

This issue is caused by the render view /views/coveo hive/resources/coveo search resources.cshtml and while this render view is used on every page of my website, it causes a complete website outage.

So I would like to prevent such a website outage by adding a 'Coveo health check' in the controller that is returning the Coveo view. The idea is to simply not render the search input box and result page when the Coveo API is unreachable, offering degraded service (not possible to search the website) instead of no website at all.

Is there any check already available in Coveo that I can call from my controller and that returns the current health status?

I found this post where it seems that recent versions of Coveo should have such checks, but I could not figure out how to call it.

1 Answer 1

2

The checks that we are performing on the recent versions you mentioned are nothing too fancy, there are not health checks for every single fail point possible on a Coveo setup, especially in the on-premises version of the module.

That's why I would say that the best way you can guarantee you are not missing any part is to simply try to create the model on your controller. If it throws an exception you can than do whatever you want, including not render the view.

1
  • Tha's indeed a possible solution. I implemented a Circuit Breaker pattern in the controller that catches the exceptions. And in case of failure, only once per 30 seconds the state of Coveo will be rechecked. Commented Jun 27, 2018 at 8:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.