aboutsummaryrefslogtreecommitdiff
path: root/spark-common/src/main/java/me/lucko/spark/common/sampler
diff options
context:
space:
mode:
authorLuck <git@lucko.me>2019-05-13 11:28:35 +0100
committerLuck <git@lucko.me>2019-05-13 11:28:35 +0100
commit6602483b18ff556147094c2e6b816b0898ed698e (patch)
treea433ae3390cda98a9c4e1e525cbe80cac87e794b /spark-common/src/main/java/me/lucko/spark/common/sampler
parent226d205fc6606cc3360791f2aea3a491d577750e (diff)
downloadspark-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.java20
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/sampler/ThreadDumper.java7
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();