Fix line length for monitor and remove suppressions (#37456)

Relates #34884
This commit is contained in:
Dimitrios Liappis 2019-01-15 14:18:15 +02:00 committed by GitHub
parent 23ae9808ba
commit 19fc59f089
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 28 additions and 17 deletions

View File

@ -48,11 +48,8 @@
<!-- Hopefully temporary suppression of LineLength on files that don't pass it. We should remove these when we the <!-- Hopefully temporary suppression of LineLength on files that don't pass it. We should remove these when we the
files start to pass. --> files start to pass. -->
<suppress files="server[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]monitor[/\\]jvm[/\\]GcNames.java" checks="LineLength" />
<suppress files="server[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]monitor[/\\]jvm[/\\]HotThreads.java" checks="LineLength" />
<suppress files="server[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]node[/\\]Node.java" checks="LineLength" /> <suppress files="server[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]node[/\\]Node.java" checks="LineLength" />
<suppress files="server[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]aliases[/\\]IndexAliasesIT.java" checks="LineLength" /> <suppress files="server[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]aliases[/\\]IndexAliasesIT.java" checks="LineLength" />
<suppress files="server[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]monitor[/\\]jvm[/\\]JvmGcMonitorServiceSettingsTests.java" checks="LineLength" />
<!-- Gradle requires inputs to be seriablizable --> <!-- Gradle requires inputs to be seriablizable -->
<suppress files="buildSrc[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]gradle[/\\]precommit[/\\]TestingConventionRule.java" checks="RegexpSinglelineJava" /> <suppress files="buildSrc[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]gradle[/\\]precommit[/\\]TestingConventionRule.java" checks="RegexpSinglelineJava" />

View File

@ -29,13 +29,16 @@ public class GcNames {
* Resolves the GC type by its memory pool name ({@link java.lang.management.MemoryPoolMXBean#getName()}. * Resolves the GC type by its memory pool name ({@link java.lang.management.MemoryPoolMXBean#getName()}.
*/ */
public static String getByMemoryPoolName(String poolName, String defaultName) { public static String getByMemoryPoolName(String poolName, String defaultName) {
if ("Eden Space".equals(poolName) || "PS Eden Space".equals(poolName) || "Par Eden Space".equals(poolName) || "G1 Eden Space".equals(poolName)) { if ("Eden Space".equals(poolName) || "PS Eden Space".equals(poolName)
|| "Par Eden Space".equals(poolName) || "G1 Eden Space".equals(poolName)) {
return YOUNG; return YOUNG;
} }
if ("Survivor Space".equals(poolName) || "PS Survivor Space".equals(poolName) || "Par Survivor Space".equals(poolName) || "G1 Survivor Space".equals(poolName)) { if ("Survivor Space".equals(poolName) || "PS Survivor Space".equals(poolName)
|| "Par Survivor Space".equals(poolName) || "G1 Survivor Space".equals(poolName)) {
return SURVIVOR; return SURVIVOR;
} }
if ("Tenured Gen".equals(poolName) || "PS Old Gen".equals(poolName) || "CMS Old Gen".equals(poolName) || "G1 Old Gen".equals(poolName)) { if ("Tenured Gen".equals(poolName) || "PS Old Gen".equals(poolName)
|| "CMS Old Gen".equals(poolName) || "G1 Old Gen".equals(poolName)) {
return OLD; return OLD;
} }
return defaultName; return defaultName;
@ -45,7 +48,8 @@ public class GcNames {
if ("Copy".equals(gcName) || "PS Scavenge".equals(gcName) || "ParNew".equals(gcName) || "G1 Young Generation".equals(gcName)) { if ("Copy".equals(gcName) || "PS Scavenge".equals(gcName) || "ParNew".equals(gcName) || "G1 Young Generation".equals(gcName)) {
return YOUNG; return YOUNG;
} }
if ("MarkSweepCompact".equals(gcName) || "PS MarkSweep".equals(gcName) || "ConcurrentMarkSweep".equals(gcName) || "G1 Old Generation".equals(gcName)) { if ("MarkSweepCompact".equals(gcName) || "PS MarkSweep".equals(gcName)
|| "ConcurrentMarkSweep".equals(gcName) || "G1 Old Generation".equals(gcName)) {
return OLD; return OLD;
} }
return defaultName; return defaultName;

View File

@ -234,7 +234,8 @@ public class HotThreads {
continue; // thread is not alive yet or died before the first snapshot - ignore it! continue; // thread is not alive yet or died before the first snapshot - ignore it!
} }
double percent = (((double) time) / interval.nanos()) * 100; double percent = (((double) time) / interval.nanos()) * 100;
sb.append(String.format(Locale.ROOT, "%n%4.1f%% (%s out of %s) %s usage by thread '%s'%n", percent, TimeValue.timeValueNanos(time), interval, type, threadName)); sb.append(String.format(Locale.ROOT, "%n%4.1f%% (%s out of %s) %s usage by thread '%s'%n",
percent, TimeValue.timeValueNanos(time), interval, type, threadName));
// for each snapshot (2nd array index) find later snapshot for same thread with max number of // for each snapshot (2nd array index) find later snapshot for same thread with max number of
// identical StackTraceElements (starting from end of each) // identical StackTraceElements (starting from end of each)
boolean[] done = new boolean[threadElementsSnapshotCount]; boolean[] done = new boolean[threadElementsSnapshotCount];
@ -267,7 +268,8 @@ public class HotThreads {
sb.append(String.format(Locale.ROOT, " %s%n", show[l])); sb.append(String.format(Locale.ROOT, " %s%n", show[l]));
} }
} else { } else {
sb.append(String.format(Locale.ROOT, " %d/%d snapshots sharing following %d elements%n", count, threadElementsSnapshotCount, maxSim)); sb.append(String.format(Locale.ROOT, " %d/%d snapshots sharing following %d elements%n",
count, threadElementsSnapshotCount, maxSim));
for (int l = show.length - maxSim; l < show.length; l++) { for (int l = show.length - maxSim; l < show.length; l++) {
sb.append(String.format(Locale.ROOT, " %s%n", show[l])); sb.append(String.format(Locale.ROOT, " %s%n", show[l]));
} }

View File

@ -65,7 +65,8 @@ public class JvmGcMonitorServiceSettingsTests extends ESTestCase {
Settings settings = Settings.builder().put("monitor.jvm.gc.collector." + collector + ".warn", "-" + randomTimeValue()).build(); Settings settings = Settings.builder().put("monitor.jvm.gc.collector." + collector + ".warn", "-" + randomTimeValue()).build();
execute(settings, (command, interval, name) -> null, e -> { execute(settings, (command, interval, name) -> null, e -> {
assertThat(e, instanceOf(IllegalArgumentException.class)); assertThat(e, instanceOf(IllegalArgumentException.class));
assertThat(e.getMessage(), allOf(containsString("invalid gc_threshold"), containsString("for [monitor.jvm.gc.collector." + collector + "."))); assertThat(e.getMessage(), allOf(containsString("invalid gc_threshold"),
containsString("for [monitor.jvm.gc.collector." + collector + ".")));
}, true, null); }, true, null);
} }
@ -78,8 +79,9 @@ public class JvmGcMonitorServiceSettingsTests extends ESTestCase {
Settings.Builder builder = Settings.builder(); Settings.Builder builder = Settings.builder();
// drop a random setting or two // drop a random setting or two
for (@SuppressWarnings("unchecked") AbstractMap.SimpleEntry<String, String> entry : randomSubsetOf(randomIntBetween(1, 2), entries.toArray(new AbstractMap.SimpleEntry[0]))) { for (@SuppressWarnings("unchecked") AbstractMap.SimpleEntry<String, String> entry : randomSubsetOf(randomIntBetween(1, 2),
builder.put(entry.getKey(), entry.getValue()); entries.toArray(new AbstractMap.SimpleEntry[0]))) {
builder.put(entry.getKey(), entry.getValue());
} }
// we should get an exception that a setting is missing // we should get an exception that a setting is missing
@ -115,25 +117,31 @@ public class JvmGcMonitorServiceSettingsTests extends ESTestCase {
infoWarnOutOfOrderBuilder.put("monitor.jvm.gc.overhead.warn", warn); infoWarnOutOfOrderBuilder.put("monitor.jvm.gc.overhead.warn", warn);
execute(infoWarnOutOfOrderBuilder.build(), (command, interval, name) -> null, e -> { execute(infoWarnOutOfOrderBuilder.build(), (command, interval, name) -> null, e -> {
assertThat(e, instanceOf(IllegalArgumentException.class)); assertThat(e, instanceOf(IllegalArgumentException.class));
assertThat(e.getMessage(), containsString("[monitor.jvm.gc.overhead.warn] must be greater than [monitor.jvm.gc.overhead.info] [" + info + "] but was [" + warn + "]")); assertThat(e.getMessage(), containsString("[monitor.jvm.gc.overhead.warn] must be greater than "
+ "[monitor.jvm.gc.overhead.info] [" + info + "] but was [" + warn + "]"));
}, true, null); }, true, null);
final Settings.Builder debugInfoOutOfOrderBuilder = Settings.builder(); final Settings.Builder debugInfoOutOfOrderBuilder = Settings.builder();
debugInfoOutOfOrderBuilder.put("monitor.jvm.gc.overhead.info", info); debugInfoOutOfOrderBuilder.put("monitor.jvm.gc.overhead.info", info);
final int debug = randomIntBetween(info + 1, 99); final int debug = randomIntBetween(info + 1, 99);
debugInfoOutOfOrderBuilder.put("monitor.jvm.gc.overhead.debug", debug); debugInfoOutOfOrderBuilder.put("monitor.jvm.gc.overhead.debug", debug);
debugInfoOutOfOrderBuilder.put("monitor.jvm.gc.overhead.warn", randomIntBetween(debug + 1, 100)); // or the test will fail for the wrong reason debugInfoOutOfOrderBuilder.put("monitor.jvm.gc.overhead.warn",
randomIntBetween(debug + 1, 100)); // or the test will fail for the wrong reason
execute(debugInfoOutOfOrderBuilder.build(), (command, interval, name) -> null, e -> { execute(debugInfoOutOfOrderBuilder.build(), (command, interval, name) -> null, e -> {
assertThat(e, instanceOf(IllegalArgumentException.class)); assertThat(e, instanceOf(IllegalArgumentException.class));
assertThat(e.getMessage(), containsString("[monitor.jvm.gc.overhead.info] must be greater than [monitor.jvm.gc.overhead.debug] [" + debug + "] but was [" + info + "]")); assertThat(e.getMessage(), containsString("[monitor.jvm.gc.overhead.info] must be greater than "
+ "[monitor.jvm.gc.overhead.debug] [" + debug + "] but was [" + info + "]"));
}, true, null); }, true, null);
} }
private static void execute(Settings settings, TriFunction<Runnable, TimeValue, String, Cancellable> scheduler, Runnable asserts) throws InterruptedException { private static void execute(Settings settings, TriFunction<Runnable, TimeValue, String, Cancellable> scheduler,
Runnable asserts) throws InterruptedException {
execute(settings, scheduler, null, false, asserts); execute(settings, scheduler, null, false, asserts);
} }
private static void execute(Settings settings, TriFunction<Runnable, TimeValue, String, Cancellable> scheduler, Consumer<Throwable> consumer, boolean constructionShouldFail, Runnable asserts) throws InterruptedException { private static void execute(Settings settings, TriFunction<Runnable, TimeValue, String, Cancellable> scheduler,
Consumer<Throwable> consumer, boolean constructionShouldFail,
Runnable asserts) throws InterruptedException {
assert constructionShouldFail == (consumer != null); assert constructionShouldFail == (consumer != null);
assert constructionShouldFail == (asserts == null); assert constructionShouldFail == (asserts == null);
ThreadPool threadPool = null; ThreadPool threadPool = null;