diff options
author | Luck <git@lucko.me> | 2019-05-13 11:28:35 +0100 |
---|---|---|
committer | Luck <git@lucko.me> | 2019-05-13 11:28:35 +0100 |
commit | 6602483b18ff556147094c2e6b816b0898ed698e (patch) | |
tree | a433ae3390cda98a9c4e1e525cbe80cac87e794b /spark-common/src/main/java/me/lucko/spark/common/sampler | |
parent | 226d205fc6606cc3360791f2aea3a491d577750e (diff) | |
download | spark-6602483b18ff556147094c2e6b816b0898ed698e.tar.gz spark-6602483b18ff556147094c2e6b816b0898ed698e.tar.bz2 spark-6602483b18ff556147094c2e6b816b0898ed698e.zip |
Include sender metadata too
Diffstat (limited to 'spark-common/src/main/java/me/lucko/spark/common/sampler')
-rw-r--r-- | spark-common/src/main/java/me/lucko/spark/common/sampler/Sampler.java | 20 | ||||
-rw-r--r-- | spark-common/src/main/java/me/lucko/spark/common/sampler/ThreadDumper.java | 7 |
2 files changed, 16 insertions, 11 deletions
diff --git a/spark-common/src/main/java/me/lucko/spark/common/sampler/Sampler.java b/spark-common/src/main/java/me/lucko/spark/common/sampler/Sampler.java index f68a611..a02eec5 100644 --- a/spark-common/src/main/java/me/lucko/spark/common/sampler/Sampler.java +++ b/spark-common/src/main/java/me/lucko/spark/common/sampler/Sampler.java @@ -22,7 +22,9 @@ package me.lucko.spark.common.sampler; import com.google.common.util.concurrent.ThreadFactoryBuilder; +import com.google.gson.Gson; import com.google.gson.stream.JsonWriter; +import me.lucko.spark.common.CommandSender; import me.lucko.spark.common.sampler.aggregator.DataAggregator; import me.lucko.spark.common.sampler.aggregator.SimpleDataAggregator; import me.lucko.spark.common.sampler.aggregator.TickedDataAggregator; @@ -164,25 +166,29 @@ public class Sampler implements Runnable { } private void writeMetadata(JsonWriter writer) throws IOException { - writer.name("startTime").value(startTime); - writer.name("interval").value(interval); + writer.name("startTime").value(this.startTime); + writer.name("interval").value(this.interval); writer.name("threadDumper").beginObject(); - threadDumper.writeMetadata(writer); + this.threadDumper.writeMetadata(writer); writer.endObject(); writer.name("dataAggregator").beginObject(); - dataAggregator.writeMetadata(writer); + this.dataAggregator.writeMetadata(writer); writer.endObject(); } - private void writeOutput(JsonWriter writer) throws IOException { + private void writeOutput(JsonWriter writer, CommandSender creator) throws IOException { writer.beginObject(); writer.name("type").value("sampler"); writer.name("metadata").beginObject(); writeMetadata(writer); + + writer.name("user"); + new Gson().toJson(creator.toData().serialize(), writer); + writer.endObject(); writer.name("threads").beginArray(); @@ -203,11 +209,11 @@ public class Sampler implements Runnable { writer.endObject(); } - public byte[] formCompressedDataPayload() { + public byte[] formCompressedDataPayload(CommandSender creator) { ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); try (Writer writer = new OutputStreamWriter(new GZIPOutputStream(byteOut), StandardCharsets.UTF_8)) { try (JsonWriter jsonWriter = new JsonWriter(writer)) { - writeOutput(jsonWriter); + writeOutput(jsonWriter, creator); } } catch (IOException e) { throw new RuntimeException(e); diff --git a/spark-common/src/main/java/me/lucko/spark/common/sampler/ThreadDumper.java b/spark-common/src/main/java/me/lucko/spark/common/sampler/ThreadDumper.java index 2ceec04..fee130e 100644 --- a/spark-common/src/main/java/me/lucko/spark/common/sampler/ThreadDumper.java +++ b/spark-common/src/main/java/me/lucko/spark/common/sampler/ThreadDumper.java @@ -76,7 +76,6 @@ public interface ThreadDumper { * Implementation of {@link ThreadDumper} that generates data for a specific set of threads. */ final class Specific implements ThreadDumper { - private final ThreadFinder threadFinder = new ThreadFinder(); private final long[] ids; public Specific(long[] ids) { @@ -85,7 +84,7 @@ public interface ThreadDumper { public Specific(Set<String> names) { Set<String> namesLower = names.stream().map(String::toLowerCase).collect(Collectors.toSet()); - this.ids = this.threadFinder.getThreads() + this.ids = new ThreadFinder().getThreads() .filter(t -> namesLower.contains(t.getName().toLowerCase())) .mapToLong(Thread::getId) .toArray(); @@ -100,7 +99,7 @@ public interface ThreadDumper { public void writeMetadata(JsonWriter writer) throws IOException { writer.name("type").value("specific"); writer.name("ids").beginArray(); - for (long id : ids) { + for (long id : this.ids) { writer.value(id); } writer.endArray(); @@ -155,7 +154,7 @@ public interface ThreadDumper { public void writeMetadata(JsonWriter writer) throws IOException { writer.name("type").value("regex"); writer.name("patterns").beginArray(); - for (Pattern pattern : namePatterns) { + for (Pattern pattern : this.namePatterns) { writer.value(pattern.pattern()); } writer.endArray(); |