Marvel: index_recovery type doesn't need all data indexed
closes elastic/elasticsearch#832 Original commit: elastic/x-pack-elasticsearch@5a8b2ea345
This commit is contained in:
parent
b6038ae97f
commit
496a595c24
|
@ -76,8 +76,8 @@ public abstract class AbstractRenderer<T extends MarvelDoc> implements Renderer<
|
||||||
return filters;
|
return filters;
|
||||||
}
|
}
|
||||||
|
|
||||||
static final class Fields {
|
public static final class Fields {
|
||||||
static final XContentBuilderString CLUSTER_UUID = new XContentBuilderString("cluster_uuid");
|
public static final XContentBuilderString CLUSTER_UUID = new XContentBuilderString("cluster_uuid");
|
||||||
static final XContentBuilderString TIMESTAMP = new XContentBuilderString("timestamp");
|
public static final XContentBuilderString TIMESTAMP = new XContentBuilderString("timestamp");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -240,8 +240,8 @@
|
||||||
},
|
},
|
||||||
"index_recovery": {
|
"index_recovery": {
|
||||||
"properties": {
|
"properties": {
|
||||||
"shards": {
|
"index_recovery": {
|
||||||
"type": "object"
|
"enabled": false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -7,8 +7,10 @@ package org.elasticsearch.marvel.agent.renderer.indices;
|
||||||
|
|
||||||
import org.elasticsearch.action.admin.indices.recovery.RecoveryResponse;
|
import org.elasticsearch.action.admin.indices.recovery.RecoveryResponse;
|
||||||
import org.elasticsearch.action.search.SearchResponse;
|
import org.elasticsearch.action.search.SearchResponse;
|
||||||
|
import org.elasticsearch.common.Strings;
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.common.settings.Settings;
|
||||||
import org.elasticsearch.marvel.agent.collector.indices.IndexRecoveryCollector;
|
import org.elasticsearch.marvel.agent.collector.indices.IndexRecoveryCollector;
|
||||||
|
import org.elasticsearch.marvel.agent.renderer.AbstractRenderer;
|
||||||
import org.elasticsearch.marvel.agent.settings.MarvelSettings;
|
import org.elasticsearch.marvel.agent.settings.MarvelSettings;
|
||||||
import org.elasticsearch.marvel.test.MarvelIntegTestCase;
|
import org.elasticsearch.marvel.test.MarvelIntegTestCase;
|
||||||
import org.elasticsearch.search.SearchHit;
|
import org.elasticsearch.search.SearchHit;
|
||||||
|
@ -18,7 +20,9 @@ import org.junit.After;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import static org.elasticsearch.index.query.QueryBuilders.existsQuery;
|
||||||
import static org.elasticsearch.test.ESIntegTestCase.Scope.TEST;
|
import static org.elasticsearch.test.ESIntegTestCase.Scope.TEST;
|
||||||
|
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertHitCount;
|
||||||
import static org.hamcrest.Matchers.greaterThan;
|
import static org.hamcrest.Matchers.greaterThan;
|
||||||
import static org.hamcrest.Matchers.is;
|
import static org.hamcrest.Matchers.is;
|
||||||
|
|
||||||
|
@ -67,12 +71,19 @@ public class IndexRecoveryTests extends MarvelIntegTestCase {
|
||||||
|
|
||||||
awaitMarvelDocsCount(greaterThan(0L), IndexRecoveryCollector.TYPE);
|
awaitMarvelDocsCount(greaterThan(0L), IndexRecoveryCollector.TYPE);
|
||||||
|
|
||||||
|
String clusterUUID = client().admin().cluster().prepareState().setMetaData(true).get().getState().metaData().clusterUUID();
|
||||||
|
assertTrue(Strings.hasText(clusterUUID));
|
||||||
|
|
||||||
logger.debug("--> searching for marvel documents of type [{}]", IndexRecoveryCollector.TYPE);
|
logger.debug("--> searching for marvel documents of type [{}]", IndexRecoveryCollector.TYPE);
|
||||||
SearchResponse response = client().prepareSearch(MarvelSettings.MARVEL_INDICES_PREFIX + "*").setTypes(IndexRecoveryCollector.TYPE).get();
|
SearchResponse response = client().prepareSearch(MarvelSettings.MARVEL_INDICES_PREFIX + "*")
|
||||||
|
.setTypes(IndexRecoveryCollector.TYPE)
|
||||||
|
.get();
|
||||||
assertThat(response.getHits().getTotalHits(), greaterThan(0L));
|
assertThat(response.getHits().getTotalHits(), greaterThan(0L));
|
||||||
|
|
||||||
logger.debug("--> checking that every document contains the expected fields");
|
logger.debug("--> checking that every document contains the expected fields");
|
||||||
String[] filters = {
|
String[] filters = {
|
||||||
|
AbstractRenderer.Fields.CLUSTER_UUID.underscore().toString(),
|
||||||
|
AbstractRenderer.Fields.TIMESTAMP.underscore().toString(),
|
||||||
IndexRecoveryRenderer.Fields.INDEX_RECOVERY.underscore().toString(),
|
IndexRecoveryRenderer.Fields.INDEX_RECOVERY.underscore().toString(),
|
||||||
IndexRecoveryRenderer.Fields.INDEX_RECOVERY.underscore().toString() + "." + IndexRecoveryRenderer.Fields.SHARDS.underscore().toString(),
|
IndexRecoveryRenderer.Fields.INDEX_RECOVERY.underscore().toString() + "." + IndexRecoveryRenderer.Fields.SHARDS.underscore().toString(),
|
||||||
};
|
};
|
||||||
|
@ -85,6 +96,32 @@ public class IndexRecoveryTests extends MarvelIntegTestCase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
securedFlush();
|
||||||
|
securedRefresh();
|
||||||
|
|
||||||
|
logger.debug("--> checking that cluster_uuid field is correctly indexed");
|
||||||
|
response = client().prepareSearch().setTypes(IndexRecoveryCollector.TYPE).setSize(0).setQuery(existsQuery("cluster_uuid")).get();
|
||||||
|
assertThat(response.getHits().getTotalHits(), greaterThan(0L));
|
||||||
|
|
||||||
|
logger.debug("--> checking that timestamp field is correctly indexed");
|
||||||
|
response = client().prepareSearch().setTypes(IndexRecoveryCollector.TYPE).setSize(0).setQuery(existsQuery("timestamp")).get();
|
||||||
|
assertThat(response.getHits().getTotalHits(), greaterThan(0L));
|
||||||
|
|
||||||
|
logger.debug("--> checking that other fields are not indexed");
|
||||||
|
String[] fields = {
|
||||||
|
"index_recovery.shards.primary",
|
||||||
|
"index_recovery.shards.id",
|
||||||
|
"index_recovery.shards.stage",
|
||||||
|
"index_recovery.shards.index_name",
|
||||||
|
"index_recovery.shards.source.host",
|
||||||
|
"index_recovery.shards.source.name",
|
||||||
|
};
|
||||||
|
|
||||||
|
for (String field : fields) {
|
||||||
|
response = client().prepareSearch().setTypes(IndexRecoveryCollector.TYPE).setSize(0).setQuery(existsQuery(field)).get();
|
||||||
|
assertHitCount(response, 0L);
|
||||||
|
}
|
||||||
|
|
||||||
logger.debug("--> index recovery successfully collected");
|
logger.debug("--> index recovery successfully collected");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue