1919import java .util .concurrent .TimeUnit ;
2020
2121public abstract class SimpleMetrics implements Metrics {
22- private final HttpClient httpClient = HttpClient .newBuilder ()
23- .connectTimeout (Duration .ofSeconds (3 ))
24- .build ();
22+ private final HttpClient httpClient = HttpClient .newBuilder ().connectTimeout (Duration .ofSeconds (3 )).build ();
2523 private final Set <Chart <?>> charts = new HashSet <>();
2624
2725 private final ScheduledExecutorService executor ;
@@ -47,42 +45,35 @@ protected void submitData() {
4745 try {
4846 var bytes = createData ().toString ().getBytes (StandardCharsets .UTF_8 );
4947 var compressed = Zstd .compress (bytes , 6 );
50- var request = HttpRequest .newBuilder ()
51- .POST (HttpRequest .BodyPublishers .ofByteArray (compressed ))
52- .header ("Content-Encoding" , "zstd" )
53- .header ("Content-Type" , "application/octet-stream" )
54- .header ("Authorization" , "Bearer " + getToken ())
55- .header ("User-Agent" , "fastStats Metrics" )
56- .timeout (Duration .ofSeconds (3 ))
57- .uri (URI .create (getURL ()))
58- .build ();
48+ var request = HttpRequest .newBuilder ().POST (HttpRequest .BodyPublishers .ofByteArray (compressed )).header ("content-encoding" , "zstd" ).header ("content-type" , "application/octet-stream" ).header ("authorization" , "Bearer " + getToken ()).header ("user-agent" , "fastStats Metrics" ).timeout (Duration .ofSeconds (3 )).uri (URI .create (getURL ())).build ();
5949 httpClient .send (request , HttpResponse .BodyHandlers .discarding ());
50+ // todo: add debugs
6051 } catch (IOException | InterruptedException e ) {
52+ // todo: shorten connection errors
6153 error ("Failed to submit metrics" , e );
6254 }
6355 }
6456
6557 protected JsonObject createData () {
6658 var data = new JsonObject ();
67- data .addProperty ("serverIdentifier" , getServerId ().toString ());
68- data .addProperty ("token" , getToken ());
59+ var charts = new JsonObject ();
6960
70- data .addProperty ("javaVersion" , System .getProperty ("java.version" ));
71- data .addProperty ("locale" , System .getProperty ("user.language" ));
72- data .addProperty ("osArch" , System .getProperty ("os.arch" ));
73- data .addProperty ("osName" , System .getProperty ("os.name" ));
74- data .addProperty ("osVersion" , System .getProperty ("os.version" ));
75- data .addProperty ("processors" , Runtime .getRuntime ().availableProcessors ());
61+ charts .addProperty ("java_version" , System .getProperty ("java.version" ));
62+ charts .addProperty ("os_arch" , System .getProperty ("os.arch" )); // todo: rename in backend
63+ charts .addProperty ("os_name" , System .getProperty ("os.name" )); // todo: rename in backend
64+ charts .addProperty ("os_version" , System .getProperty ("os.version" )); // todo: rename in backend
65+ charts .addProperty ("core_count" , Runtime .getRuntime ().availableProcessors ());
7666
77- var charts = new JsonObject ();
7867 this .charts .forEach (chart -> {
7968 try {
8069 chart .getData ().ifPresent (chartData -> charts .add (chart .getId (), chartData ));
8170 } catch (Exception e ) {
8271 error ("Failed to build chart data: " + chart .getId (), e );
8372 }
8473 });
85- if (!charts .isEmpty ()) data .add ("charts" , charts );
74+
75+ data .addProperty ("server_id" , getServerId ().toString ());
76+ data .add ("data" , charts );
8677 return data ;
8778 }
8879
0 commit comments