private ClusterStatsResponse clusterStats() { return esClient.prepareClusterStats().get(); }
Health checkEsStatus() { try { ClusterHealthStatus esStatus = esClient.prepareClusterStats().get().getStatus(); if (esStatus == null) { return RED_HEALTH_UNAVAILABLE; } switch (esStatus) { case GREEN: return Health.GREEN; case YELLOW: return YELLOW_HEALTH; case RED: return RED_HEALTH; default: throw new IllegalArgumentException("Unsupported Elasticsearch status " + esStatus); } } catch (Exception e) { LOG.error("Failed to query ES status", e); return RED_HEALTH_UNAVAILABLE; } } }
@Test public void to_string() { assertThat(es.client().prepareClusterStats().setNodesIds("node1").toString()).isEqualTo("ES cluster stats request on nodes 'node1'"); assertThat(es.client().prepareClusterStats().toString()).isEqualTo("ES cluster stats request"); }
@Test public void attributes_displays_exception_message_when_cause_is_not_ElasticSearchException_when_client_fails() { EsClient esClientMock = mock(EsClient.class); EsStateSection underTest = new EsStateSection(esClientMock); when(esClientMock.prepareClusterStats()).thenThrow(new RuntimeException("RuntimeException with cause not ES", new IllegalArgumentException("some cause message"))); ProtobufSystemInfo.Section section = underTest.toProtobuf(); assertThatAttributeIs(section, "State", "RuntimeException with cause not ES"); }
@Test public void check_returns_GREEN_without_cause_if_ES_cluster_status_is_GREEN() { when(esClient.prepareClusterStats().get().getStatus()).thenReturn(ClusterHealthStatus.GREEN); Health health = underTest.check(); assertThat(health).isEqualTo(Health.GREEN); }
@Test public void attributes_displays_exception_message_when_cause_null_when_client_fails() { EsClient esClientMock = mock(EsClient.class); EsStateSection underTest = new EsStateSection(esClientMock); when(esClientMock.prepareClusterStats()).thenThrow(new RuntimeException("RuntimeException with no cause")); ProtobufSystemInfo.Section section = underTest.toProtobuf(); assertThatAttributeIs(section, "State", "RuntimeException with no cause"); }
@Test public void check_ignores_NodeHealth_arg_and_returns_RED_with_cause_if_an_exception_occurs_checking_ES_cluster_status() { EsClient esClient = mock(EsClient.class); when(esClient.prepareClusterStats()).thenThrow(new RuntimeException("Faking an exception occurring while using the EsClient")); Health health = new EsStatusNodeCheck(esClient).check(); assertThat(health.getStatus()).isEqualTo(Health.Status.RED); assertThat(health.getCauses()).containsOnly("Elasticsearch status is RED (unavailable)"); }
@Test public void execute_should_throw_an_unsupported_operation_exception() { try { es.client().prepareClusterStats().execute(); fail(); } catch (Exception e) { assertThat(e).isInstanceOf(UnsupportedOperationException.class).hasMessage("execute() should not be called as it's used for asynchronous"); } }
@Test public void check_ignores_NodeHealth_arg_and_returns_GREEN_without_cause_if_ES_cluster_status_is_GREEN() { Set<NodeHealth> nodeHealths = ImmutableSet.of(newNodeHealth(NodeHealth.Status.YELLOW)); when(esClient.prepareClusterStats().get().getStatus()).thenReturn(ClusterHealthStatus.GREEN); Health health = underTest.check(nodeHealths); assertThat(health).isEqualTo(Health.GREEN); }
@Test public void get_with_string_timeout_is_not_yet_implemented() { try { es.client().prepareClusterStats().get("1"); fail(); } catch (Exception e) { assertThat(e).isInstanceOf(IllegalStateException.class).hasMessage("Not yet implemented"); } }
@Test public void check_ignores_NodeHealth_arg_and_returns_RED_with_cause_if_an_exception_occurs_checking_ES_cluster_status() { Set<NodeHealth> nodeHealths = ImmutableSet.of(newNodeHealth(NodeHealth.Status.GREEN)); when(esClient.prepareClusterStats()).thenThrow(new RuntimeException("Faking an exception occurring while using the EsClient")); Health health = new EsStatusClusterCheck(esClient).check(nodeHealths); assertThat(health.getStatus()).isEqualTo(Health.Status.RED); assertThat(health.getCauses()).containsOnly("Elasticsearch status is RED (unavailable)"); }
@Test public void attributes_displays_cause_message_when_cause_is_ElasticSearchException_when_client_fails() { EsClient esClientMock = mock(EsClient.class); EsStateSection underTest = new EsStateSection(esClientMock); when(esClientMock.prepareClusterStats()).thenThrow(new RuntimeException("RuntimeException with ES cause", new ElasticsearchException("some cause message"))); ProtobufSystemInfo.Section section = underTest.toProtobuf(); assertThatAttributeIs(section, "State", "some cause message"); } }
@Test public void get_with_time_value_timeout_is_not_yet_implemented() { try { es.client().prepareClusterStats().get(TimeValue.timeValueMinutes(1)); fail(); } catch (Exception e) { assertThat(e).isInstanceOf(IllegalStateException.class).hasMessage("Not yet implemented"); } }
@Test public void stats() { ClusterStatsRequestBuilder requestBuilder = es.client().prepareClusterStats(); requestBuilder.get(); }
@Test public void trace_logs() { logTester.setLevel(LoggerLevel.TRACE); ClusterStatsRequestBuilder requestBuilder = es.client().prepareClusterStats(); requestBuilder.get(); assertThat(logTester.logs()).hasSize(1); }
@Override public ProtobufSystemInfo.Section toProtobuf() { ProtobufSystemInfo.Section.Builder protobuf = ProtobufSystemInfo.Section.newBuilder(); protobuf.setName("Search State"); ClusterStatsResponse stats = esClient.prepareClusterStats().get(); setAttribute(protobuf, "State", stats.getStatus().name()); setAttribute(protobuf, "Nodes", stats.getNodesStats().getCounts().getTotal()); return protobuf.build(); }
@Test public void proxify_requests() { EsClient underTest = es.client(); assertThat(underTest.nativeClient()).isNotNull(); assertThat(underTest.prepareClusterStats()).isInstanceOf(ProxyClusterStatsRequestBuilder.class); assertThat(underTest.prepareCreate("fakes")).isInstanceOf(ProxyCreateIndexRequestBuilder.class); assertThat(underTest.prepareDelete("fakes", "fake", "my_id")).isInstanceOf(ProxyDeleteRequestBuilder.class); assertThat(underTest.prepareIndicesExist()).isInstanceOf(ProxyIndicesExistsRequestBuilder.class); assertThat(underTest.prepareGet(new IndexType("fakes", "fake"), "1")).isInstanceOf(ProxyGetRequestBuilder.class); assertThat(underTest.prepareHealth()).isInstanceOf(ProxyClusterHealthRequestBuilder.class); assertThat(underTest.prepareNodesStats()).isInstanceOf(ProxyNodesStatsRequestBuilder.class); assertThat(underTest.preparePutMapping()).isInstanceOf(ProxyPutMappingRequestBuilder.class); assertThat(underTest.prepareRefresh()).isInstanceOf(ProxyRefreshRequestBuilder.class); assertThat(underTest.prepareSearch(new IndexType[0])).isInstanceOf(ProxySearchRequestBuilder.class); assertThat(underTest.prepareSearchScroll("1234")).isInstanceOf(ProxySearchScrollRequestBuilder.class); assertThat(underTest.prepareState()).isInstanceOf(ProxyClusterStateRequestBuilder.class); assertThat(underTest.prepareStats()).isInstanceOf(ProxyIndicesStatsRequestBuilder.class); underTest.close(); } }
private ClusterStatsResponse clusterStats() { return esClient.prepareClusterStats().get(); }
Health checkEsStatus() { try { ClusterHealthStatus esStatus = esClient.prepareClusterStats().get().getStatus(); if (esStatus == null) { return RED_HEALTH_UNAVAILABLE; } switch (esStatus) { case GREEN: return Health.GREEN; case YELLOW: return YELLOW_HEALTH; case RED: return RED_HEALTH; default: throw new IllegalArgumentException("Unsupported Elasticsearch status " + esStatus); } } catch (Exception e) { LOG.error("Failed to query ES status", e); return RED_HEALTH_UNAVAILABLE; } } }
@Override public ProtobufSystemInfo.Section toProtobuf() { ProtobufSystemInfo.Section.Builder protobuf = ProtobufSystemInfo.Section.newBuilder(); protobuf.setName("Search State"); ClusterStatsResponse stats = esClient.prepareClusterStats().get(); setAttribute(protobuf, "State", stats.getStatus().name()); setAttribute(protobuf, "Nodes", stats.getNodesStats().getCounts().getTotal()); return protobuf.build(); }