aboutsummaryrefslogtreecommitdiff
path: root/telemetry/proto/telemetry.proto
diff options
context:
space:
mode:
Diffstat (limited to 'telemetry/proto/telemetry.proto')
-rw-r--r--telemetry/proto/telemetry.proto52
1 files changed, 52 insertions, 0 deletions
diff --git a/telemetry/proto/telemetry.proto b/telemetry/proto/telemetry.proto
new file mode 100644
index 000000000..07bc79446
--- /dev/null
+++ b/telemetry/proto/telemetry.proto
@@ -0,0 +1,52 @@
+syntax = "proto3";
+
+package telemetry;
+
+option go_package = "github.com/seaweedfs/seaweedfs/telemetry/proto";
+
+// TelemetryData represents cluster-level telemetry information
+message TelemetryData {
+ // Unique cluster identifier (generated in-memory)
+ string cluster_id = 1;
+
+ // SeaweedFS version
+ string version = 2;
+
+ // Operating system (e.g., "linux/amd64")
+ string os = 3;
+
+ // Enabled features (e.g., ["filer", "s3api", "mq"])
+ repeated string features = 4;
+
+ // Deployment type ("standalone", "cluster", "master-only", "volume-only")
+ string deployment = 5;
+
+ // Number of volume servers in the cluster
+ int32 volume_server_count = 6;
+
+ // Total disk usage across all volume servers (in bytes)
+ uint64 total_disk_bytes = 7;
+
+ // Total number of volumes in the cluster
+ int32 total_volume_count = 8;
+
+ // Number of filer servers in the cluster
+ int32 filer_count = 9;
+
+ // Number of broker servers in the cluster
+ int32 broker_count = 10;
+
+ // Unix timestamp when the data was collected
+ int64 timestamp = 11;
+}
+
+// TelemetryRequest is sent from SeaweedFS clusters to the telemetry server
+message TelemetryRequest {
+ TelemetryData data = 1;
+}
+
+// TelemetryResponse is returned by the telemetry server
+message TelemetryResponse {
+ bool success = 1;
+ string message = 2;
+} \ No newline at end of file