@@ -95,6 +95,7 @@ public class Custom {
9595 private SSLSocketFactory allTrustingTrustManager = null ;
9696 private boolean noTLS = false ;
9797 private boolean serverLogsEnabled = false ;
98+ private boolean beelineNoTelemetry = false ;
9899 private boolean started = false ;
99100
100101 private String lastHover = "" ;
@@ -105,7 +106,7 @@ public class Custom {
105106 private String beelineCloudUrl = "" ;
106107 private String beelineCloudToken = "" ;
107108 private String glossaries = "" ;
108- private String ver = "1.0.0 " ;
109+ private String version = "" ;
109110 private String cmdb = "" ;
110111
111112 private AtomicReference <Map <String , Capability >> capabilities = new AtomicReference <>(Collections .emptyMap ());
@@ -122,6 +123,21 @@ public class Custom {
122123
123124 private static final Custom INSTANCE = new Custom ();
124125
126+ public void setVersion (String version ) {
127+ this .version = version ;
128+ }
129+
130+ public void setBeelineNoTelemetry (boolean beelineNoTelemetry ) {
131+ if (this .beelineNoTelemetry != beelineNoTelemetry ) {
132+ this .beelineNoTelemetry = beelineNoTelemetry ;
133+ if (this .beelineNoTelemetry == true ) {
134+ logger .debug ("Stop ArchOps Telemetry collection" );
135+ } else {
136+ logger .debug ("Start ArchOps Telemetry collection" );
137+ }
138+ }
139+ }
140+
125141 public void setBeelineApiSecret (String beelineApiSecret ) {
126142 this .beelineApiSecret = beelineApiSecret ;
127143 }
@@ -284,6 +300,7 @@ public void reinit() {
284300 updateTech ();
285301 updateTerms ();
286302 }
303+ startTelemetry ();
287304 }
288305
289306 public void setBeelineCloudUrl (String beelineCloudUrl ) {
@@ -379,9 +396,6 @@ private void updateTerms() {
379396 public void setBeelineApiUrl (String beelineApiUrl ) {
380397 if (beelineApiUrl != null && !this .beelineApiUrl .equals (beelineApiUrl ) && isValidURL (beelineApiUrl )) {
381398 this .beelineApiUrl = beelineApiUrl ;
382- if (started == false ) {
383- started = startTelemetry ();
384- }
385399 }
386400 }
387401
@@ -937,33 +951,40 @@ public void closeScope(C4CompletionScope scope, C4DocumentModel model) {
937951 }
938952
939953 public void snippetTelemetry (String templateId ) {
940- String message = MessageFormat .format ("'{'\" version\" : \" {0}\" , \" action\" : \" template\" , \" template_id\" : \" {1}\" , \" user\" : \" {2}\" , \" cmdb\" : \" {3}\" '}'" , ver , templateId , username , cmdb );
954+ String message = MessageFormat .format ("'{'\" version\" : \" {0}\" , \" action\" : \" template\" , \" template_id\" : \" {1}\" , \" user\" : \" {2}\" , \" cmdb\" : \" {3}\" '}'" , version , templateId , username , cmdb );
941955 CompletableFuture .runAsync (() -> sendTelemetry (message ));
942956 }
943957
944958 public void deploymentTelemetry () {
945- String message = MessageFormat .format ("'{'\" version\" : \" {0}\" , \" action\" : \" deployment\" , \" user\" : \" {1}\" , \" cmdb\" : \" {2}\" '}'" , ver , username , cmdb );
959+ String message = MessageFormat .format ("'{'\" version\" : \" {0}\" , \" action\" : \" deployment\" , \" user\" : \" {1}\" , \" cmdb\" : \" {2}\" '}'" , version , username , cmdb );
946960 CompletableFuture .runAsync (() -> sendTelemetry (message ));
947961 }
948962
949963 public void completionTelemety () {
950- String message = MessageFormat .format ("'{'\" version\" : \" {0}\" , \" action\" : \" autocomplite\" , \" user\" : \" {1}\" , \" cmdb\" : \" {2}\" '}'" , ver , username , cmdb );
964+ String message = MessageFormat .format ("'{'\" version\" : \" {0}\" , \" action\" : \" autocomplite\" , \" user\" : \" {1}\" , \" cmdb\" : \" {2}\" '}'" , version , username , cmdb );
951965 CompletableFuture .runAsync (() -> sendTelemetry (message ));
952966 }
953967
954- public boolean startTelemetry () {
955- String message = MessageFormat .format ("'{'\" version\" : \" {0}\" , \" action\" : \" start\" , \" user\" : \" {1}\" , \" cmdb\" : \" {2}\" '}'" , ver , username , cmdb );
956- return sendTelemetry (message );
968+ private void startTelemetry () {
969+ String message = MessageFormat .format ("'{'\" version\" : \" {0}\" , \" action\" : \" start\" , \" user\" : \" {1}\" , \" cmdb\" : \" {2}\" '}'" , version , username , cmdb );
970+ CompletableFuture .runAsync (() -> {
971+ if (started == false ) {
972+ started = sendTelemetry (message );
973+ }
974+ });
957975 }
958976
959977 public void hoverTelemetry () {
960978 String message = MessageFormat .format (
961- "'{'\" version\" : \" {0}\" , \" action\" : \" hover\" , \" user\" : \" {1}\" , \" cmdb\" : \" {2}\" '}'" , ver ,
979+ "'{'\" version\" : \" {0}\" , \" action\" : \" hover\" , \" user\" : \" {1}\" , \" cmdb\" : \" {2}\" '}'" , version ,
962980 username , cmdb );
963981 CompletableFuture .runAsync (() -> sendTelemetry (message ));
964982 }
965983
966984 private boolean sendTelemetry (String message ) {
985+ if (beelineNoTelemetry == true ) {
986+ return false ;
987+ }
967988 try {
968989 String path = "/dashboard/api/v1/telemetry/c4plugin/start" ;
969990 HttpsURLConnection conn = beelineApiConnection ("POST" , path , message , "application/json" );
0 commit comments