Merge pull request #17026 from s1monw/issues/17025
Add missing index name to indexing slow log
This commit is contained in:
commit
91308d74c6
|
@ -36,6 +36,7 @@ import java.util.concurrent.TimeUnit;
|
|||
/**
|
||||
*/
|
||||
public final class IndexingSlowLog implements IndexingOperationListener {
|
||||
private final Index index;
|
||||
private boolean reformat;
|
||||
private long indexWarnThreshold;
|
||||
private long indexInfoThreshold;
|
||||
|
@ -85,6 +86,7 @@ public final class IndexingSlowLog implements IndexingOperationListener {
|
|||
IndexingSlowLog(IndexSettings indexSettings, ESLogger indexLogger, ESLogger deleteLogger) {
|
||||
this.indexLogger = indexLogger;
|
||||
this.deleteLogger = deleteLogger;
|
||||
this.index = indexSettings.getIndex();
|
||||
|
||||
indexSettings.getScopedSettings().addSettingsUpdateConsumer(INDEX_INDEXING_SLOWLOG_REFORMAT_SETTING, this::setReformat);
|
||||
this.reformat = indexSettings.getValue(INDEX_INDEXING_SLOWLOG_REFORMAT_SETTING);
|
||||
|
@ -141,13 +143,13 @@ public final class IndexingSlowLog implements IndexingOperationListener {
|
|||
|
||||
private void postIndexing(ParsedDocument doc, long tookInNanos) {
|
||||
if (indexWarnThreshold >= 0 && tookInNanos > indexWarnThreshold) {
|
||||
indexLogger.warn("{}", new SlowLogParsedDocumentPrinter(doc, tookInNanos, reformat, maxSourceCharsToLog));
|
||||
indexLogger.warn("{}", new SlowLogParsedDocumentPrinter(index, doc, tookInNanos, reformat, maxSourceCharsToLog));
|
||||
} else if (indexInfoThreshold >= 0 && tookInNanos > indexInfoThreshold) {
|
||||
indexLogger.info("{}", new SlowLogParsedDocumentPrinter(doc, tookInNanos, reformat, maxSourceCharsToLog));
|
||||
indexLogger.info("{}", new SlowLogParsedDocumentPrinter(index, doc, tookInNanos, reformat, maxSourceCharsToLog));
|
||||
} else if (indexDebugThreshold >= 0 && tookInNanos > indexDebugThreshold) {
|
||||
indexLogger.debug("{}", new SlowLogParsedDocumentPrinter(doc, tookInNanos, reformat, maxSourceCharsToLog));
|
||||
indexLogger.debug("{}", new SlowLogParsedDocumentPrinter(index, doc, tookInNanos, reformat, maxSourceCharsToLog));
|
||||
} else if (indexTraceThreshold >= 0 && tookInNanos > indexTraceThreshold) {
|
||||
indexLogger.trace("{}", new SlowLogParsedDocumentPrinter(doc, tookInNanos, reformat, maxSourceCharsToLog));
|
||||
indexLogger.trace("{}", new SlowLogParsedDocumentPrinter(index, doc, tookInNanos, reformat, maxSourceCharsToLog));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -156,9 +158,11 @@ public final class IndexingSlowLog implements IndexingOperationListener {
|
|||
private final long tookInNanos;
|
||||
private final boolean reformat;
|
||||
private final int maxSourceCharsToLog;
|
||||
private final Index index;
|
||||
|
||||
SlowLogParsedDocumentPrinter(ParsedDocument doc, long tookInNanos, boolean reformat, int maxSourceCharsToLog) {
|
||||
SlowLogParsedDocumentPrinter(Index index, ParsedDocument doc, long tookInNanos, boolean reformat, int maxSourceCharsToLog) {
|
||||
this.doc = doc;
|
||||
this.index = index;
|
||||
this.tookInNanos = tookInNanos;
|
||||
this.reformat = reformat;
|
||||
this.maxSourceCharsToLog = maxSourceCharsToLog;
|
||||
|
@ -167,6 +171,7 @@ public final class IndexingSlowLog implements IndexingOperationListener {
|
|||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(index).append(" ");
|
||||
sb.append("took[").append(TimeValue.timeValueNanos(tookInNanos)).append("], took_millis[").append(TimeUnit.NANOSECONDS.toMillis(tookInNanos)).append("], ");
|
||||
sb.append("type[").append(doc.type()).append("], ");
|
||||
sb.append("id[").append(doc.id()).append("], ");
|
||||
|
|
|
@ -36,24 +36,30 @@ import java.io.IOException;
|
|||
|
||||
import static org.hamcrest.Matchers.containsString;
|
||||
import static org.hamcrest.Matchers.not;
|
||||
import static org.hamcrest.Matchers.startsWith;
|
||||
|
||||
public class IndexingSlowLogTests extends ESTestCase {
|
||||
public void testSlowLogParsedDocumentPrinterSourceToLog() throws IOException {
|
||||
BytesReference source = JsonXContent.contentBuilder().startObject().field("foo", "bar").endObject().bytes();
|
||||
ParsedDocument pd = new ParsedDocument(new StringField("uid", "test:id", Store.YES), new LegacyIntField("version", 1, Store.YES), "id",
|
||||
"test", null, 0, -1, null, source, null);
|
||||
|
||||
Index index = new Index("foo", "123");
|
||||
// Turning off document logging doesn't log source[]
|
||||
SlowLogParsedDocumentPrinter p = new SlowLogParsedDocumentPrinter(pd, 10, true, 0);
|
||||
SlowLogParsedDocumentPrinter p = new SlowLogParsedDocumentPrinter(index, pd, 10, true, 0);
|
||||
assertThat(p.toString(), not(containsString("source[")));
|
||||
|
||||
// Turning on document logging logs the whole thing
|
||||
p = new SlowLogParsedDocumentPrinter(pd, 10, true, Integer.MAX_VALUE);
|
||||
p = new SlowLogParsedDocumentPrinter(index, pd, 10, true, Integer.MAX_VALUE);
|
||||
assertThat(p.toString(), containsString("source[{\"foo\":\"bar\"}]"));
|
||||
|
||||
// And you can truncate the source
|
||||
p = new SlowLogParsedDocumentPrinter(pd, 10, true, 3);
|
||||
p = new SlowLogParsedDocumentPrinter(index, pd, 10, true, 3);
|
||||
assertThat(p.toString(), containsString("source[{\"f]"));
|
||||
|
||||
// And you can truncate the source
|
||||
p = new SlowLogParsedDocumentPrinter(index, pd, 10, true, 3);
|
||||
assertThat(p.toString(), containsString("source[{\"f]"));
|
||||
assertThat(p.toString(), startsWith("[foo/123] took"));
|
||||
}
|
||||
|
||||
public void testReformatSetting() {
|
||||
|
|
Loading…
Reference in New Issue