better logging when warming up

This commit is contained in:
Shay Banon 2012-05-08 11:39:18 +03:00
parent 761cc6c214
commit 68a321ec0c
4 changed files with 17 additions and 12 deletions

View File

@ -20,6 +20,7 @@
package org.elasticsearch.index.warmer;
import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.logging.ESLogger;
import org.elasticsearch.common.metrics.CounterMetric;
import org.elasticsearch.common.metrics.MeanMetric;
import org.elasticsearch.common.settings.Settings;
@ -42,6 +43,10 @@ public class ShardIndexWarmerService extends AbstractIndexShardComponent {
super(shardId, indexSettings);
}
public ESLogger logger() {
return this.logger;
}
public void onPreWarm() {
current.inc();
}

View File

@ -21,7 +21,7 @@ package org.elasticsearch.indices.warmer;
import org.elasticsearch.cluster.metadata.IndexMetaData;
import org.elasticsearch.index.engine.Engine;
import org.elasticsearch.index.shard.ShardId;
import org.elasticsearch.index.shard.service.IndexShard;
/**
*/
@ -31,7 +31,7 @@ public interface IndicesWarmer {
String executor();
void warm(ShardId shardId, IndexMetaData indexMetaData, Engine.Searcher search);
void warm(IndexShard indexShard, IndexMetaData indexMetaData, Engine.Searcher search);
}
void addListener(Listener listener);

View File

@ -78,7 +78,7 @@ public class InternalIndicesWarmer extends AbstractComponent implements IndicesW
if (indexService == null) {
return;
}
IndexShard indexShard = indexService.shard(shardId.id());
final IndexShard indexShard = indexService.shard(shardId.id());
if (indexShard == null) {
return;
}
@ -93,9 +93,9 @@ public class InternalIndicesWarmer extends AbstractComponent implements IndicesW
@Override
public void run() {
try {
listener.warm(shardId, indexMetaData, searcher);
listener.warm(indexShard, indexMetaData, searcher);
} catch (Throwable e) {
logger.warn("[{}][{}] failed to warm [{}]", e, shardId.index().name(), shardId.id(), listener);
indexShard.warmerService().logger().warn("failed to warm [{}]", e, listener);
} finally {
latch.countDown();
}
@ -109,8 +109,8 @@ public class InternalIndicesWarmer extends AbstractComponent implements IndicesW
}
long took = System.nanoTime() - time;
indexShard.warmerService().onPostWarm(took);
if (logger.isTraceEnabled()) {
logger.trace("[{}][{}] warming took [{}]", shardId.index().name(), shardId.id(), new TimeValue(took, TimeUnit.NANOSECONDS));
if (indexShard.warmerService().logger().isTraceEnabled()) {
indexShard.warmerService().logger().trace("warming took [{}]", new TimeValue(took, TimeUnit.NANOSECONDS));
}
}
}

View File

@ -633,7 +633,7 @@ public class SearchService extends AbstractLifecycleComponent<SearchService> {
}
@Override
public void warm(ShardId shardId, IndexMetaData indexMetaData, Engine.Searcher search) {
public void warm(IndexShard indexShard, IndexMetaData indexMetaData, Engine.Searcher search) {
IndexWarmersMetaData custom = indexMetaData.custom(IndexWarmersMetaData.TYPE);
if (custom == null) {
return;
@ -642,17 +642,17 @@ public class SearchService extends AbstractLifecycleComponent<SearchService> {
SearchContext context = null;
try {
long now = System.nanoTime();
InternalSearchRequest request = new InternalSearchRequest(shardId.index().name(), shardId.id(), indexMetaData.numberOfShards(), SearchType.COUNT)
InternalSearchRequest request = new InternalSearchRequest(indexShard.shardId().index().name(), indexShard.shardId().id(), indexMetaData.numberOfShards(), SearchType.COUNT)
.source(entry.source().bytes(), entry.source().offset(), entry.source().length())
.types(entry.types());
context = createContext(request, search);
queryPhase.execute(context);
long took = System.nanoTime() - now;
if (logger.isTraceEnabled()) {
logger.trace("[{}][{}] warmed [{}], took [{}]", shardId.index().name(), shardId.id(), entry.name(), TimeValue.timeValueNanos(took));
if (indexShard.warmerService().logger().isTraceEnabled()) {
indexShard.warmerService().logger().trace("warmed [{}], took [{}]", entry.name(), TimeValue.timeValueNanos(took));
}
} catch (Throwable t) {
logger.warn("[{}][{}] warmer [{}] failed", t, shardId.index().name(), shardId.id(), entry.name());
indexShard.warmerService().logger().warn("warmer [{}] failed", t, entry.name());
} finally {
if (context != null) {
freeContext(context);