aboutsummaryrefslogtreecommitdiff
path: root/spark-common/src/main/java/me/lucko/spark/common/sampler
diff options
context:
space:
mode:
authorlucko <git@lucko.me>2024-08-06 21:29:48 +0100
committerGitHub <noreply@github.com>2024-08-06 21:29:48 +0100
commit8017dbd288fca21dac3813409dec959ae6e6c822 (patch)
treebce438e9a7156dcf04f99194295c753702600f1c /spark-common/src/main/java/me/lucko/spark/common/sampler
parent613f702ddd8c1a7515298917a74464e6799df0c4 (diff)
downloadspark-8017dbd288fca21dac3813409dec959ae6e6c822.tar.gz
spark-8017dbd288fca21dac3813409dec959ae6e6c822.tar.bz2
spark-8017dbd288fca21dac3813409dec959ae6e6c822.zip
Add uploadable health report (#436)
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/AbstractSampler.java46
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/sampler/Sampler.java9
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/sampler/ThreadGrouper.java2
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/sampler/source/SourceMetadata.java7
4 files changed, 22 insertions, 42 deletions
diff --git a/spark-common/src/main/java/me/lucko/spark/common/sampler/AbstractSampler.java b/spark-common/src/main/java/me/lucko/spark/common/sampler/AbstractSampler.java
index 8a9c05f..7453074 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/sampler/AbstractSampler.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/sampler/AbstractSampler.java
@@ -24,6 +24,7 @@ import me.lucko.spark.common.SparkPlatform;
import me.lucko.spark.common.command.sender.CommandSender;
import me.lucko.spark.common.monitor.memory.GarbageCollectorStatistics;
import me.lucko.spark.common.platform.MetadataProvider;
+import me.lucko.spark.common.platform.SparkMetadata;
import me.lucko.spark.common.platform.serverconfig.ServerConfigProvider;
import me.lucko.spark.common.sampler.aggregator.DataAggregator;
import me.lucko.spark.common.sampler.node.MergeMode;
@@ -123,6 +124,11 @@ public abstract class AbstractSampler implements Sampler {
}
@Override
+ public Map<Integer, SparkProtos.WindowStatistics> exportWindowStatistics() {
+ return this.windowStatisticsCollector.export();
+ }
+
+ @Override
public void start() {
this.startTime = System.currentTimeMillis();
}
@@ -177,14 +183,13 @@ public abstract class AbstractSampler implements Sampler {
protected void writeMetadataToProto(SamplerData.Builder proto, SparkPlatform platform, CommandSender.Data creator, String comment, DataAggregator dataAggregator) {
SamplerMetadata.Builder metadata = SamplerMetadata.newBuilder()
.setSamplerMode(getMode().asProto())
- .setPlatformMetadata(platform.getPlugin().getPlatformInfo().toData().toProto())
- .setCreator(creator.toProto())
.setStartTime(this.startTime)
- .setEndTime(System.currentTimeMillis())
.setInterval(this.interval)
.setThreadDumper(this.threadDumper.getMetadata())
.setDataAggregator(dataAggregator.getMetadata());
+ SparkMetadata.gather(platform, creator, getInitialGcStats()).writeTo(metadata);
+
if (comment != null) {
metadata.setComment(comment);
}
@@ -194,41 +199,6 @@ public abstract class AbstractSampler implements Sampler {
metadata.setNumberOfTicks(totalTicks);
}
- try {
- metadata.setPlatformStatistics(platform.getStatisticsProvider().getPlatformStatistics(getInitialGcStats(), true));
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- try {
- metadata.setSystemStatistics(platform.getStatisticsProvider().getSystemStatistics());
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- try {
- ServerConfigProvider serverConfigProvider = platform.getPlugin().createServerConfigProvider();
- if (serverConfigProvider != null) {
- metadata.putAllServerConfigurations(serverConfigProvider.export());
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- try {
- MetadataProvider extraMetadataProvider = platform.getPlugin().createExtraMetadataProvider();
- if (extraMetadataProvider != null) {
- metadata.putAllExtraPlatformMetadata(extraMetadataProvider.export());
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- Collection<SourceMetadata> knownSources = platform.getPlugin().getKnownSources();
- for (SourceMetadata source : knownSources) {
- metadata.putSources(source.getName().toLowerCase(Locale.ROOT), source.toProto());
- }
-
proto.setMetadata(metadata);
}
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 844ab0b..bb74cd2 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
@@ -25,10 +25,12 @@ import me.lucko.spark.common.command.sender.CommandSender;
import me.lucko.spark.common.sampler.node.MergeMode;
import me.lucko.spark.common.sampler.source.ClassSourceLookup;
import me.lucko.spark.common.ws.ViewerSocket;
+import me.lucko.spark.proto.SparkProtos;
import me.lucko.spark.proto.SparkSamplerProtos.SamplerData;
import me.lucko.spark.proto.SparkSamplerProtos.SocketChannelInfo;
import java.util.Collection;
+import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.function.Supplier;
@@ -96,6 +98,13 @@ public interface Sampler {
*/
CompletableFuture<Sampler> getFuture();
+ /**
+ * Exports the current set of window statistics.
+ *
+ * @return the window statistics
+ */
+ Map<Integer, SparkProtos.WindowStatistics> exportWindowStatistics();
+
// Methods used to export the sampler data to the web viewer.
SamplerData toProto(SparkPlatform platform, ExportProps exportProps);
diff --git a/spark-common/src/main/java/me/lucko/spark/common/sampler/ThreadGrouper.java b/spark-common/src/main/java/me/lucko/spark/common/sampler/ThreadGrouper.java
index c8d5b3c..7a791bc 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/sampler/ThreadGrouper.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/sampler/ThreadGrouper.java
@@ -181,6 +181,6 @@ public interface ThreadGrouper {
public SamplerMetadata.DataAggregator.ThreadGrouper asProto() {
return SamplerMetadata.DataAggregator.ThreadGrouper.AS_ONE;
}
- };
+ }
}
diff --git a/spark-common/src/main/java/me/lucko/spark/common/sampler/source/SourceMetadata.java b/spark-common/src/main/java/me/lucko/spark/common/sampler/source/SourceMetadata.java
index 13dc66d..e5f2b48 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/sampler/source/SourceMetadata.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/sampler/source/SourceMetadata.java
@@ -21,7 +21,7 @@
package me.lucko.spark.common.sampler.source;
import com.google.common.collect.ImmutableList;
-import me.lucko.spark.proto.SparkSamplerProtos.SamplerMetadata;
+import me.lucko.spark.proto.SparkProtos.PluginOrModMetadata;
import java.util.Collection;
import java.util.List;
@@ -70,10 +70,11 @@ public class SourceMetadata {
return this.author;
}
- public SamplerMetadata.SourceMetadata toProto() {
- return SamplerMetadata.SourceMetadata.newBuilder()
+ public PluginOrModMetadata toProto() {
+ return PluginOrModMetadata.newBuilder()
.setName(this.name)
.setVersion(this.version)
+ .setAuthor(this.author)
.build();
}