aboutsummaryrefslogtreecommitdiff
path: root/spark-common/src
diff options
context:
space:
mode:
authorLuck <git@lucko.me>2024-07-07 20:26:10 +0100
committerLuck <git@lucko.me>2024-07-07 20:26:10 +0100
commitc94eba98639303d4663296349819fb6638a9ab9c (patch)
tree815bfd45a378e96df69736a7b64cb62bd2d43f9f /spark-common/src
parentdface5907890d3f832c79d9152d6a379ef22f429 (diff)
downloadspark-c94eba98639303d4663296349819fb6638a9ab9c.tar.gz
spark-c94eba98639303d4663296349819fb6638a9ab9c.tar.bz2
spark-c94eba98639303d4663296349819fb6638a9ab9c.zip
Include server brand in viewer payloads
Diffstat (limited to 'spark-common/src')
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/activitylog/Activity.java1
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/api/AbstractStatistic.java1
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/api/GarbageCollectorInfo.java1
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/api/SparkApi.java2
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/command/Command.java2
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/command/CommandResponseHandler.java1
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/command/modules/ActivityLogModule.java1
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/command/modules/GcMonitoringModule.java2
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/command/modules/HealthModule.java1
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/command/modules/HeapAnalysisModule.java1
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/command/modules/TickMonitoringModule.java1
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/command/sender/CommandSender.java2
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDump.java7
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDumpSummary.java8
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/monitor/cpu/CpuMonitor.java7
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/monitor/memory/GarbageCollectionMonitor.java9
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/monitor/memory/MemoryInfo.java7
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/monitor/net/NetworkInterfaceInfo.java2
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/monitor/ping/PingStatistics.java1
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/monitor/tick/TickMonitor.java2
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/platform/PlatformInfo.java13
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/platform/serverconfig/ServerConfigProvider.java1
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/sampler/async/AsyncProfilerAccess.java2
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/sampler/async/AsyncProfilerJob.java2
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/sampler/async/AsyncSampler.java1
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/sampler/async/SampleCollector.java1
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/sampler/java/JavaSampler.java1
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/sampler/node/StackTraceNode.java1
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/sampler/source/ClassSourceLookup.java1
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/sampler/source/SourceMetadata.java1
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/util/ClassFinder.java1
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/util/MethodDisambiguator.java2
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/util/SparkPlaceholder.java1
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/util/StatisticFormatter.java2
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/ws/ViewerSocket.java1
-rw-r--r--spark-common/src/main/proto/spark/spark.proto1
36 files changed, 28 insertions, 63 deletions
diff --git a/spark-common/src/main/java/me/lucko/spark/common/activitylog/Activity.java b/spark-common/src/main/java/me/lucko/spark/common/activitylog/Activity.java
index 8b1b558..0b69826 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/activitylog/Activity.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/activitylog/Activity.java
@@ -23,7 +23,6 @@ package me.lucko.spark.common.activitylog;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
-
import me.lucko.spark.common.command.sender.CommandSender;
import java.util.concurrent.TimeUnit;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/api/AbstractStatistic.java b/spark-common/src/main/java/me/lucko/spark/common/api/AbstractStatistic.java
index 49a6ccb..e761013 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/api/AbstractStatistic.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/api/AbstractStatistic.java
@@ -24,7 +24,6 @@ import me.lucko.spark.api.statistic.Statistic;
import me.lucko.spark.api.statistic.StatisticWindow;
import me.lucko.spark.api.statistic.types.DoubleStatistic;
import me.lucko.spark.api.statistic.types.GenericStatistic;
-
import org.checkerframework.checker.nullness.qual.NonNull;
import java.lang.reflect.Array;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/api/GarbageCollectorInfo.java b/spark-common/src/main/java/me/lucko/spark/common/api/GarbageCollectorInfo.java
index fc14c67..3dfdab2 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/api/GarbageCollectorInfo.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/api/GarbageCollectorInfo.java
@@ -22,7 +22,6 @@ package me.lucko.spark.common.api;
import me.lucko.spark.api.gc.GarbageCollector;
import me.lucko.spark.common.monitor.memory.GarbageCollectorStatistics;
-
import org.checkerframework.checker.nullness.qual.NonNull;
public class GarbageCollectorInfo implements GarbageCollector {
diff --git a/spark-common/src/main/java/me/lucko/spark/common/api/SparkApi.java b/spark-common/src/main/java/me/lucko/spark/common/api/SparkApi.java
index 9e4eee4..16cb259 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/api/SparkApi.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/api/SparkApi.java
@@ -21,7 +21,6 @@
package me.lucko.spark.common.api;
import com.google.common.collect.ImmutableMap;
-
import me.lucko.spark.api.Spark;
import me.lucko.spark.api.SparkProvider;
import me.lucko.spark.api.gc.GarbageCollector;
@@ -32,7 +31,6 @@ import me.lucko.spark.common.SparkPlatform;
import me.lucko.spark.common.monitor.cpu.CpuMonitor;
import me.lucko.spark.common.monitor.memory.GarbageCollectorStatistics;
import me.lucko.spark.common.monitor.tick.TickStatistics;
-
import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/command/Command.java b/spark-common/src/main/java/me/lucko/spark/common/command/Command.java
index c6871a9..3e87fa6 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/command/Command.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/command/Command.java
@@ -21,10 +21,8 @@
package me.lucko.spark.common.command;
import com.google.common.collect.ImmutableList;
-
import me.lucko.spark.common.SparkPlatform;
import me.lucko.spark.common.command.sender.CommandSender;
-
import net.kyori.adventure.text.Component;
import java.util.Collections;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/command/CommandResponseHandler.java b/spark-common/src/main/java/me/lucko/spark/common/command/CommandResponseHandler.java
index d1481bd..c2e8223 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/command/CommandResponseHandler.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/command/CommandResponseHandler.java
@@ -22,7 +22,6 @@ package me.lucko.spark.common.command;
import me.lucko.spark.common.SparkPlatform;
import me.lucko.spark.common.command.sender.CommandSender;
-
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.JoinConfiguration;
import net.kyori.adventure.text.TextComponent;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/command/modules/ActivityLogModule.java b/spark-common/src/main/java/me/lucko/spark/common/command/modules/ActivityLogModule.java
index 6252ac7..c72038b 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/command/modules/ActivityLogModule.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/command/modules/ActivityLogModule.java
@@ -24,7 +24,6 @@ import me.lucko.spark.common.activitylog.Activity;
import me.lucko.spark.common.command.Command;
import me.lucko.spark.common.command.CommandModule;
import me.lucko.spark.common.command.tabcomplete.TabCompleter;
-
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent;
import net.kyori.adventure.text.event.ClickEvent;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/command/modules/GcMonitoringModule.java b/spark-common/src/main/java/me/lucko/spark/common/command/modules/GcMonitoringModule.java
index a2da0a0..1d0c226 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/command/modules/GcMonitoringModule.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/command/modules/GcMonitoringModule.java
@@ -21,7 +21,6 @@
package me.lucko.spark.common.command.modules;
import com.sun.management.GarbageCollectionNotificationInfo;
-
import me.lucko.spark.common.SparkPlatform;
import me.lucko.spark.common.command.Command;
import me.lucko.spark.common.command.CommandModule;
@@ -29,7 +28,6 @@ import me.lucko.spark.common.command.CommandResponseHandler;
import me.lucko.spark.common.monitor.memory.GarbageCollectionMonitor;
import me.lucko.spark.common.monitor.memory.GarbageCollectorStatistics;
import me.lucko.spark.common.util.FormatUtil;
-
import net.kyori.adventure.text.Component;
import java.lang.management.MemoryUsage;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/command/modules/HealthModule.java b/spark-common/src/main/java/me/lucko/spark/common/command/modules/HealthModule.java
index 16eadc8..15722d7 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/command/modules/HealthModule.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/command/modules/HealthModule.java
@@ -38,7 +38,6 @@ import me.lucko.spark.common.monitor.tick.TickStatistics;
import me.lucko.spark.common.util.FormatUtil;
import me.lucko.spark.common.util.RollingAverage;
import me.lucko.spark.common.util.StatisticFormatter;
-
import net.kyori.adventure.text.Component;
import java.lang.management.ManagementFactory;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/command/modules/HeapAnalysisModule.java b/spark-common/src/main/java/me/lucko/spark/common/command/modules/HeapAnalysisModule.java
index 6ac3b2f..503e862 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/command/modules/HeapAnalysisModule.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/command/modules/HeapAnalysisModule.java
@@ -34,7 +34,6 @@ import me.lucko.spark.common.util.Compression;
import me.lucko.spark.common.util.FormatUtil;
import me.lucko.spark.common.util.MediaTypes;
import me.lucko.spark.proto.SparkHeapProtos;
-
import net.kyori.adventure.text.event.ClickEvent;
import java.io.IOException;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/command/modules/TickMonitoringModule.java b/spark-common/src/main/java/me/lucko/spark/common/command/modules/TickMonitoringModule.java
index f5f4fce..85dfaf1 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/command/modules/TickMonitoringModule.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/command/modules/TickMonitoringModule.java
@@ -28,7 +28,6 @@ import me.lucko.spark.common.command.tabcomplete.TabCompleter;
import me.lucko.spark.common.monitor.tick.ReportPredicate;
import me.lucko.spark.common.monitor.tick.TickMonitor;
import me.lucko.spark.common.tick.TickHook;
-
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/command/sender/CommandSender.java b/spark-common/src/main/java/me/lucko/spark/common/command/sender/CommandSender.java
index bae5ddf..a1df627 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/command/sender/CommandSender.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/command/sender/CommandSender.java
@@ -23,9 +23,7 @@ package me.lucko.spark.common.command.sender;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
-
import me.lucko.spark.proto.SparkProtos.CommandSenderMetadata;
-
import net.kyori.adventure.text.Component;
import java.util.UUID;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDump.java b/spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDump.java
index 955bafe..707adbb 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDump.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDump.java
@@ -20,15 +20,14 @@
package me.lucko.spark.common.heapdump;
+import javax.management.JMX;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
import java.io.IOException;
import java.lang.management.ManagementFactory;
import java.lang.reflect.Method;
import java.nio.file.Path;
-import javax.management.JMX;
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-
/**
* Utility for creating .hprof memory heap snapshots.
*/
diff --git a/spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDumpSummary.java b/spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDumpSummary.java
index eaedd31..c7f4f51 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDumpSummary.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDumpSummary.java
@@ -25,9 +25,11 @@ import me.lucko.spark.common.command.sender.CommandSender;
import me.lucko.spark.proto.SparkHeapProtos.HeapData;
import me.lucko.spark.proto.SparkHeapProtos.HeapEntry;
import me.lucko.spark.proto.SparkHeapProtos.HeapMetadata;
-
import org.objectweb.asm.Type;
+import javax.management.JMX;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
import java.lang.management.ManagementFactory;
import java.util.Arrays;
import java.util.List;
@@ -36,10 +38,6 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
-import javax.management.JMX;
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-
/**
* Represents a "heap dump summary" from the VM.
*
diff --git a/spark-common/src/main/java/me/lucko/spark/common/monitor/cpu/CpuMonitor.java b/spark-common/src/main/java/me/lucko/spark/common/monitor/cpu/CpuMonitor.java
index b4ab831..987af7b 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/monitor/cpu/CpuMonitor.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/monitor/cpu/CpuMonitor.java
@@ -23,13 +23,12 @@ package me.lucko.spark.common.monitor.cpu;
import me.lucko.spark.common.monitor.MonitoringExecutor;
import me.lucko.spark.common.util.RollingAverage;
-import java.lang.management.ManagementFactory;
-import java.math.BigDecimal;
-import java.util.concurrent.TimeUnit;
-
import javax.management.JMX;
import javax.management.MBeanServer;
import javax.management.ObjectName;
+import java.lang.management.ManagementFactory;
+import java.math.BigDecimal;
+import java.util.concurrent.TimeUnit;
/**
* Exposes and monitors the system/process CPU usage.
diff --git a/spark-common/src/main/java/me/lucko/spark/common/monitor/memory/GarbageCollectionMonitor.java b/spark-common/src/main/java/me/lucko/spark/common/monitor/memory/GarbageCollectionMonitor.java
index 9bff1e2..d9abf9b 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/monitor/memory/GarbageCollectionMonitor.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/monitor/memory/GarbageCollectionMonitor.java
@@ -22,16 +22,15 @@ package me.lucko.spark.common.monitor.memory;
import com.sun.management.GarbageCollectionNotificationInfo;
-import java.lang.management.GarbageCollectorMXBean;
-import java.lang.management.ManagementFactory;
-import java.util.ArrayList;
-import java.util.List;
-
import javax.management.ListenerNotFoundException;
import javax.management.Notification;
import javax.management.NotificationEmitter;
import javax.management.NotificationListener;
import javax.management.openmbean.CompositeData;
+import java.lang.management.GarbageCollectorMXBean;
+import java.lang.management.ManagementFactory;
+import java.util.ArrayList;
+import java.util.List;
/**
* Monitoring process for garbage collections.
diff --git a/spark-common/src/main/java/me/lucko/spark/common/monitor/memory/MemoryInfo.java b/spark-common/src/main/java/me/lucko/spark/common/monitor/memory/MemoryInfo.java
index 8f63f71..b260d7e 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/monitor/memory/MemoryInfo.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/monitor/memory/MemoryInfo.java
@@ -22,13 +22,12 @@ package me.lucko.spark.common.monitor.memory;
import me.lucko.spark.common.monitor.LinuxProc;
-import java.lang.management.ManagementFactory;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
import javax.management.JMX;
import javax.management.MBeanServer;
import javax.management.ObjectName;
+import java.lang.management.ManagementFactory;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
/**
* Utility to query information about system memory usage.
diff --git a/spark-common/src/main/java/me/lucko/spark/common/monitor/net/NetworkInterfaceInfo.java b/spark-common/src/main/java/me/lucko/spark/common/monitor/net/NetworkInterfaceInfo.java
index 332077a..eed695e 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/monitor/net/NetworkInterfaceInfo.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/monitor/net/NetworkInterfaceInfo.java
@@ -21,9 +21,7 @@
package me.lucko.spark.common.monitor.net;
import com.google.common.collect.ImmutableMap;
-
import me.lucko.spark.common.monitor.LinuxProc;
-
import org.checkerframework.checker.nullness.qual.NonNull;
import java.util.Arrays;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/monitor/ping/PingStatistics.java b/spark-common/src/main/java/me/lucko/spark/common/monitor/ping/PingStatistics.java
index 49fcbe1..803a183 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/monitor/ping/PingStatistics.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/monitor/ping/PingStatistics.java
@@ -22,7 +22,6 @@ package me.lucko.spark.common.monitor.ping;
import me.lucko.spark.common.monitor.MonitoringExecutor;
import me.lucko.spark.common.util.RollingAverage;
-
import org.checkerframework.checker.nullness.qual.Nullable;
import java.math.BigDecimal;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/monitor/tick/TickMonitor.java b/spark-common/src/main/java/me/lucko/spark/common/monitor/tick/TickMonitor.java
index 944fa83..f9b41f3 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/monitor/tick/TickMonitor.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/monitor/tick/TickMonitor.java
@@ -21,11 +21,9 @@
package me.lucko.spark.common.monitor.tick;
import com.sun.management.GarbageCollectionNotificationInfo;
-
import me.lucko.spark.common.SparkPlatform;
import me.lucko.spark.common.monitor.memory.GarbageCollectionMonitor;
import me.lucko.spark.common.tick.TickHook;
-
import net.kyori.adventure.text.Component;
import java.text.DecimalFormat;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/platform/PlatformInfo.java b/spark-common/src/main/java/me/lucko/spark/common/platform/PlatformInfo.java
index 082389d..1d71d53 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/platform/PlatformInfo.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/platform/PlatformInfo.java
@@ -30,6 +30,8 @@ public interface PlatformInfo {
String getName();
+ String getBrand();
+
String getVersion();
String getMinecraftVersion();
@@ -40,7 +42,7 @@ public interface PlatformInfo {
}
default Data toData() {
- return new Data(getType(), getName(), getVersion(), getMinecraftVersion(), getSparkVersion());
+ return new Data(getType(), getName(), getBrand(), getVersion(), getMinecraftVersion(), getSparkVersion());
}
enum Type {
@@ -62,13 +64,15 @@ public interface PlatformInfo {
final class Data {
private final Type type;
private final String name;
+ private final String brand;
private final String version;
private final String minecraftVersion;
private final int sparkVersion;
- public Data(Type type, String name, String version, String minecraftVersion, int sparkVersion) {
+ public Data(Type type, String name, String brand, String version, String minecraftVersion, int sparkVersion) {
this.type = type;
this.name = name;
+ this.brand = brand;
this.version = version;
this.minecraftVersion = minecraftVersion;
this.sparkVersion = sparkVersion;
@@ -82,6 +86,10 @@ public interface PlatformInfo {
return this.name;
}
+ public String getBrand() {
+ return this.brand;
+ }
+
public String getVersion() {
return this.version;
}
@@ -98,6 +106,7 @@ public interface PlatformInfo {
PlatformMetadata.Builder proto = PlatformMetadata.newBuilder()
.setType(this.type.toProto())
.setName(this.name)
+ .setBrand(this.brand)
.setVersion(this.version)
.setSparkVersion(this.sparkVersion);
diff --git a/spark-common/src/main/java/me/lucko/spark/common/platform/serverconfig/ServerConfigProvider.java b/spark-common/src/main/java/me/lucko/spark/common/platform/serverconfig/ServerConfigProvider.java
index 485f215..6503df9 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/platform/serverconfig/ServerConfigProvider.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/platform/serverconfig/ServerConfigProvider.java
@@ -22,7 +22,6 @@ package me.lucko.spark.common.platform.serverconfig;
import com.google.common.collect.ImmutableMap;
import com.google.gson.JsonElement;
-
import me.lucko.spark.common.platform.MetadataProvider;
import java.util.Arrays;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/sampler/async/AsyncProfilerAccess.java b/spark-common/src/main/java/me/lucko/spark/common/sampler/async/AsyncProfilerAccess.java
index 5bee56f..192275b 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/sampler/async/AsyncProfilerAccess.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/sampler/async/AsyncProfilerAccess.java
@@ -23,9 +23,7 @@ package me.lucko.spark.common.sampler.async;
import com.google.common.collect.ImmutableTable;
import com.google.common.collect.Table;
import com.google.common.io.ByteStreams;
-
import me.lucko.spark.common.SparkPlatform;
-
import one.profiler.AsyncProfiler;
import one.profiler.Events;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/sampler/async/AsyncProfilerJob.java b/spark-common/src/main/java/me/lucko/spark/common/sampler/async/AsyncProfilerJob.java
index 2fd304c..39c4eb2 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/sampler/async/AsyncProfilerJob.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/sampler/async/AsyncProfilerJob.java
@@ -21,11 +21,9 @@
package me.lucko.spark.common.sampler.async;
import com.google.common.collect.ImmutableList;
-
import me.lucko.spark.common.SparkPlatform;
import me.lucko.spark.common.sampler.ThreadDumper;
import me.lucko.spark.common.sampler.async.jfr.JfrReader;
-
import one.profiler.AsyncProfiler;
import java.io.IOException;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/sampler/async/AsyncSampler.java b/spark-common/src/main/java/me/lucko/spark/common/sampler/async/AsyncSampler.java
index 961c3e9..e3470b4 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/sampler/async/AsyncSampler.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/sampler/async/AsyncSampler.java
@@ -21,7 +21,6 @@
package me.lucko.spark.common.sampler.async;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
-
import me.lucko.spark.common.SparkPlatform;
import me.lucko.spark.common.sampler.AbstractSampler;
import me.lucko.spark.common.sampler.SamplerMode;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/sampler/async/SampleCollector.java b/spark-common/src/main/java/me/lucko/spark/common/sampler/async/SampleCollector.java
index 6054b91..cd3f750 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/sampler/async/SampleCollector.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/sampler/async/SampleCollector.java
@@ -21,7 +21,6 @@
package me.lucko.spark.common.sampler.async;
import com.google.common.collect.ImmutableList;
-
import me.lucko.spark.common.sampler.SamplerMode;
import me.lucko.spark.common.sampler.async.AsyncProfilerAccess.ProfilingEvent;
import me.lucko.spark.common.sampler.async.jfr.JfrReader.AllocationSample;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/sampler/java/JavaSampler.java b/spark-common/src/main/java/me/lucko/spark/common/sampler/java/JavaSampler.java
index e29619b..bae7e19 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/sampler/java/JavaSampler.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/sampler/java/JavaSampler.java
@@ -21,7 +21,6 @@
package me.lucko.spark.common.sampler.java;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
-
import me.lucko.spark.common.SparkPlatform;
import me.lucko.spark.common.sampler.AbstractSampler;
import me.lucko.spark.common.sampler.SamplerMode;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/sampler/node/StackTraceNode.java b/spark-common/src/main/java/me/lucko/spark/common/sampler/node/StackTraceNode.java
index c0dcc5b..fec7123 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/sampler/node/StackTraceNode.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/sampler/node/StackTraceNode.java
@@ -23,7 +23,6 @@ package me.lucko.spark.common.sampler.node;
import me.lucko.spark.common.sampler.window.ProtoTimeEncoder;
import me.lucko.spark.common.util.MethodDisambiguator;
import me.lucko.spark.proto.SparkSamplerProtos;
-
import org.checkerframework.checker.nullness.qual.Nullable;
import java.util.Objects;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/sampler/source/ClassSourceLookup.java b/spark-common/src/main/java/me/lucko/spark/common/sampler/source/ClassSourceLookup.java
index ab63c00..a62f8d1 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/sampler/source/ClassSourceLookup.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/sampler/source/ClassSourceLookup.java
@@ -24,7 +24,6 @@ import me.lucko.spark.common.SparkPlatform;
import me.lucko.spark.common.sampler.node.StackTraceNode;
import me.lucko.spark.common.sampler.node.ThreadNode;
import me.lucko.spark.common.util.ClassFinder;
-
import org.checkerframework.checker.nullness.qual.Nullable;
import java.io.IOException;
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 0808d66..13dc66d 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,6 @@
package me.lucko.spark.common.sampler.source;
import com.google.common.collect.ImmutableList;
-
import me.lucko.spark.proto.SparkSamplerProtos.SamplerMetadata;
import java.util.Collection;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/util/ClassFinder.java b/spark-common/src/main/java/me/lucko/spark/common/util/ClassFinder.java
index f132613..8bc06a8 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/util/ClassFinder.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/util/ClassFinder.java
@@ -21,7 +21,6 @@
package me.lucko.spark.common.util;
import net.bytebuddy.agent.ByteBuddyAgent;
-
import org.checkerframework.checker.nullness.qual.Nullable;
import java.lang.instrument.Instrumentation;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/util/MethodDisambiguator.java b/spark-common/src/main/java/me/lucko/spark/common/util/MethodDisambiguator.java
index c03e7cb..2b2e3c7 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/util/MethodDisambiguator.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/util/MethodDisambiguator.java
@@ -23,9 +23,7 @@ package me.lucko.spark.common.util;
import com.google.common.collect.ImmutableListMultimap;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ListMultimap;
-
import me.lucko.spark.common.sampler.node.StackTraceNode;
-
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.Label;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/util/SparkPlaceholder.java b/spark-common/src/main/java/me/lucko/spark/common/util/SparkPlaceholder.java
index be5bbc2..948d404 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/util/SparkPlaceholder.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/util/SparkPlaceholder.java
@@ -23,7 +23,6 @@ package me.lucko.spark.common.util;
import me.lucko.spark.common.SparkPlatform;
import me.lucko.spark.common.monitor.cpu.CpuMonitor;
import me.lucko.spark.common.monitor.tick.TickStatistics;
-
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/util/StatisticFormatter.java b/spark-common/src/main/java/me/lucko/spark/common/util/StatisticFormatter.java
index b488f50..e7b8cca 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/util/StatisticFormatter.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/util/StatisticFormatter.java
@@ -21,9 +21,7 @@
package me.lucko.spark.common.util;
import com.google.common.base.Strings;
-
import me.lucko.spark.api.statistic.misc.DoubleAverageInfo;
-
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent;
import net.kyori.adventure.text.format.TextColor;
diff --git a/spark-common/src/main/java/me/lucko/spark/common/ws/ViewerSocket.java b/spark-common/src/main/java/me/lucko/spark/common/ws/ViewerSocket.java
index 6a9c2b7..0356b7d 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/ws/ViewerSocket.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/ws/ViewerSocket.java
@@ -21,7 +21,6 @@
package me.lucko.spark.common.ws;
import com.google.protobuf.ByteString;
-
import me.lucko.bytesocks.client.BytesocksClient;
import me.lucko.spark.common.SparkPlatform;
import me.lucko.spark.common.sampler.AbstractSampler;
diff --git a/spark-common/src/main/proto/spark/spark.proto b/spark-common/src/main/proto/spark/spark.proto
index 2004415..a70b3c3 100644
--- a/spark-common/src/main/proto/spark/spark.proto
+++ b/spark-common/src/main/proto/spark/spark.proto
@@ -11,6 +11,7 @@ message PlatformMetadata {
string version = 3;
string minecraft_version = 4; // optional
int32 spark_version = 7;
+ string brand = 8;
// replaced
reserved 5, 6;