Я хочу проверить, нормально ли подключено к базе данных Elasticsearch. Другими словами, я хочу выполнить ping Elasticsearch. Когда я выполняю приведенный ниже код, генерируется исключение.Как проверить, установлено ли соединение с Elasticsearch?
public async Task<HealthCheckResult> Execute()
{
if (_configuration.Nodes?.Length == 0)
{
await Task.Delay(1);
return new HealthCheckResult("Connection Failed - Missing elasticsearch connection string")
{
ChildResults = new List<HealthCheckResult>() {new HealthCheckResult()}
};
}
var node = new Uri(_configuration.Nodes.First());
try
{
var connectionPool = new SniffingConnectionPool(new[] {node});
var settings = new ConnectionConfiguration(connectionPool);
var client = new ElasticLowLevelClient(settings);
client.IndicesExists<string>("applications");
}
catch (Exception exception)
{
return new HealthCheckResult(exception.Message)
{
ChildResults = new List<HealthCheckResult>() { new HealthCheckResult() }
};
}
return new HealthCheckResult("Connection Passed")
{
ChildResults = new List<HealthCheckResult>() { new HealthCheckResult() }
};
}
Когда я исполню метод выше, исключение, и я получаю сообщение:
Failed нюхает состояние кластера.
Что я могу сделать для проверки того, установлено соединение с Elasticsearch?
Какой версии НЕСТ вы используете и какую версию Elasticsearch вы работаете против? Установите '.DisableDirectStreaming()' в 'ConnectionSettings', чтобы получить более подробную информацию о сбое нюхания состояния кластера. –