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 {
|
public final class IndexingSlowLog implements IndexingOperationListener {
|
||||||
|
private final Index index;
|
||||||
private boolean reformat;
|
private boolean reformat;
|
||||||
private long indexWarnThreshold;
|
private long indexWarnThreshold;
|
||||||
private long indexInfoThreshold;
|
private long indexInfoThreshold;
|
||||||
|
@ -85,6 +86,7 @@ public final class IndexingSlowLog implements IndexingOperationListener {
|
||||||
IndexingSlowLog(IndexSettings indexSettings, ESLogger indexLogger, ESLogger deleteLogger) {
|
IndexingSlowLog(IndexSettings indexSettings, ESLogger indexLogger, ESLogger deleteLogger) {
|
||||||
this.indexLogger = indexLogger;
|
this.indexLogger = indexLogger;
|
||||||
this.deleteLogger = deleteLogger;
|
this.deleteLogger = deleteLogger;
|
||||||
|
this.index = indexSettings.getIndex();
|
||||||
|
|
||||||
indexSettings.getScopedSettings().addSettingsUpdateConsumer(INDEX_INDEXING_SLOWLOG_REFORMAT_SETTING, this::setReformat);
|
indexSettings.getScopedSettings().addSettingsUpdateConsumer(INDEX_INDEXING_SLOWLOG_REFORMAT_SETTING, this::setReformat);
|
||||||
this.reformat = indexSettings.getValue(INDEX_INDEXING_SLOWLOG_REFORMAT_SETTING);
|
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) {
|
private void postIndexing(ParsedDocument doc, long tookInNanos) {
|
||||||
if (indexWarnThreshold >= 0 && tookInNanos > indexWarnThreshold) {
|
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) {
|
} 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) {
|
} 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) {
|
} 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 long tookInNanos;
|
||||||
private final boolean reformat;
|
private final boolean reformat;
|
||||||
private final int maxSourceCharsToLog;
|
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.doc = doc;
|
||||||
|
this.index = index;
|
||||||
this.tookInNanos = tookInNanos;
|
this.tookInNanos = tookInNanos;
|
||||||
this.reformat = reformat;
|
this.reformat = reformat;
|
||||||
this.maxSourceCharsToLog = maxSourceCharsToLog;
|
this.maxSourceCharsToLog = maxSourceCharsToLog;
|
||||||
|
@ -167,6 +171,7 @@ public final class IndexingSlowLog implements IndexingOperationListener {
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
StringBuilder sb = new StringBuilder();
|
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("took[").append(TimeValue.timeValueNanos(tookInNanos)).append("], took_millis[").append(TimeUnit.NANOSECONDS.toMillis(tookInNanos)).append("], ");
|
||||||
sb.append("type[").append(doc.type()).append("], ");
|
sb.append("type[").append(doc.type()).append("], ");
|
||||||
sb.append("id[").append(doc.id()).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.containsString;
|
||||||
import static org.hamcrest.Matchers.not;
|
import static org.hamcrest.Matchers.not;
|
||||||
|
import static org.hamcrest.Matchers.startsWith;
|
||||||
|
|
||||||
public class IndexingSlowLogTests extends ESTestCase {
|
public class IndexingSlowLogTests extends ESTestCase {
|
||||||
public void testSlowLogParsedDocumentPrinterSourceToLog() throws IOException {
|
public void testSlowLogParsedDocumentPrinterSourceToLog() throws IOException {
|
||||||
BytesReference source = JsonXContent.contentBuilder().startObject().field("foo", "bar").endObject().bytes();
|
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",
|
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);
|
"test", null, 0, -1, null, source, null);
|
||||||
|
Index index = new Index("foo", "123");
|
||||||
// Turning off document logging doesn't log source[]
|
// 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[")));
|
assertThat(p.toString(), not(containsString("source[")));
|
||||||
|
|
||||||
// Turning on document logging logs the whole thing
|
// 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\"}]"));
|
assertThat(p.toString(), containsString("source[{\"foo\":\"bar\"}]"));
|
||||||
|
|
||||||
// And you can truncate the source
|
// 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]"));
|
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() {
|
public void testReformatSetting() {
|
||||||
|
|
Loading…
Reference in New Issue