3333 * Created by gupele on 12/12/2016.
3434 */
3535final class DefaultQuickPulseDataFetcher implements QuickPulseDataFetcher {
36- private final static String QP_BASE_URI = "https://rt.services.visualstudio.com/QuickPulseService.svc/ping?ikey= " ;
36+ private final static String QP_BASE_URI = "https://rt.services.visualstudio.com/QuickPulseService.svc/" ;
3737 private final String quickPulsePostUri ;
3838 private final ArrayBlockingQueue <HttpPost > sendQueue ;
3939 private final QuickPulseNetworkHelper networkHelper = new QuickPulseNetworkHelper ();
@@ -43,15 +43,14 @@ public DefaultQuickPulseDataFetcher(final ArrayBlockingQueue<HttpPost> sendQueue
4343 quickPulsePostUri = QP_BASE_URI + "post?ikey=" + ikey ;
4444 this .sendQueue = sendQueue ;
4545 final StringBuilder sb = new StringBuilder ();
46- sb .append ("\" Instance\" :\" " + instanceName + "\" ," + "\" InstrumentationKey\" :" );
47- sb .append (ikey );
48- sb .append (",\" InvariantVersion\" :2,\" MachineName\" :\" " );
49- sb .append (instanceName );
50- sb .append ("\" " );
51- sb .append (",\" Version\" :\" 2.2.0-424\" " );
52- sb .append (",\" StreamId\" :" );
53- sb .append (quickPulseId );
54-
46+ sb .append ("[{" );
47+ formatDocuments (sb );
48+ sb .append ("\" Instance\" : \" " + instanceName + "\" ," );
49+ sb .append ("\" InstrumentationKey\" : \" " + ikey + "\" ," );
50+ sb .append ("\" InvariantVersion\" : 2," );
51+ sb .append ("\" MachineName\" : \" " + instanceName + "\" ," );
52+ sb .append ("\" StreamId\" : \" " + quickPulseId + "\" ," );
53+
5554 postPrefix = sb .toString ();
5655 }
5756
@@ -77,45 +76,47 @@ public void prepareQuickPulseDataForSend() {
7776
7877 private ByteArrayEntity buildPostEntity (QuickPulseDataCollector .FinalCounters counters ) {
7978 StringBuilder sb = new StringBuilder (postPrefix );
80-
81- formatDocuments (sb );
8279 formatMetrics (counters , sb );
83-
84- sb .append (",\" Timestamp\" : \" \\ /Date(" );
85-
80+ sb .append ("\" Timestamp\" : \" \\ /Date(" );
8681 long ms = System .currentTimeMillis ();
87-
8882 sb .append (ms );
89- sb .append (")\\ \\ /\\ \" \" " );
90-
83+ sb .append (")\\ /\" ," );
84+ sb .append ("\" Version\" : \" 2.2.0-738\" " );
85+ sb .append ("}]" );
9186 ByteArrayEntity bae = new ByteArrayEntity (sb .toString ().getBytes ());
9287 return bae ;
9388 }
9489
9590 private void formatDocuments (StringBuilder sb ) {
96- sb .append (",\" Documents\" :null" );
91+ sb .append ("\" Documents\" : [] ," );
92+ }
93+
94+ private void formatSingleMetric (StringBuilder sb , String metricName , double metricValue , int metricWeight , Boolean includeComma ) {
95+ String comma = includeComma ? "," : "" ;
96+ sb .append (String .format ("{\" Name\" : \" %s\" ,\" Value\" : %s,\" Weight\" : %s}%s" , metricName , metricValue , metricWeight , comma ));
97+ }
98+ private void formatSingleMetric (StringBuilder sb , String metricName , long metricValue , int metricWeight , Boolean includeComma ) {
99+ String comma = includeComma ? "," : "" ;
100+ sb .append (String .format ("{\" Name\" : \" %s\" ,\" Value\" : %s,\" Weight\" : %s}%s" , metricName , metricValue , metricWeight , comma ));
101+ }
102+ private void formatSingleMetric (StringBuilder sb , String metricName , int metricValue , int metricWeight , Boolean includeComma ) {
103+ String comma = includeComma ? "," : "" ;
104+ sb .append (String .format ("{\" Name\" : \" %s\" ,\" Value\" : %s,\" Weight\" : %s}%s" , metricName , metricValue , metricWeight , comma ));
97105 }
98106
99107 private void formatMetrics (QuickPulseDataCollector .FinalCounters counters , StringBuilder sb ) {
100- sb .append (
101- String .format (",\" Metrics\" :[{" +
102- "{\" Name\" :\" \\ \\ ApplicationInsights\\ \\ Exceptions\" ,\" Value\" : %s,\" Weight\" :1}," +
103- "{\" Name\" :\" \\ \\ Memory\\ \\ Committed Bytes\" ,\" Value\" : %s,\" Weight\" :1}," +
104- "{\" Name\" :\" \\ \\ Memory\\ \\ Processor(_Total)\\ \\ %% Processor Time\" ,\" Value\" : %s,\" Weight\" :1}," +
105- "{\" Name\" :\" \\ \\ ApplicationInsights\\ \\ Request\" ,\" Value\" : %s,\" Weight\" :1}," +
106- "{\" Name\" :\" \\ \\ ApplicationInsights\\ \\ Request Duration\\ /Sec\" ,\" Value\" :%s,\" Weight\" :%s}," +
107- "{\" Name\" :\" \\ \\ ApplicationInsights\\ \\ Requests Failed\\ /Sec\" ,\" Value\" :%s,\" Weight\" :1}," +
108- "{\" Name\" :\" \\ \\ ApplicationInsights\\ \\ Dependency Calls\" ,\" Value\" :%s,\" Weight\" :1}," +
109- "{\" Name\" :\" \\ \\ ApplicationInsights\\ \\ Dependency Calls Failed\\ /Sec\" ,\" Value\" :%s,\" Weight\" :1}," +
110- "{\" Name\" :\" \\ \\ ApplicationInsights\\ \\ Dependency Call Duration\\ /Sec\" ,\" Value\" :%s,\" Weight\" :%s}}]" ,
111- counters .exceptions ,
112- counters .memoryCommitted ,
113- counters .cpuUsage ,
114- counters .requests ,
115- counters .requestsDuration , counters .requests ,
116- counters .unsuccessfulRequests ,
117- counters .rdds ,
118- counters .unsuccessfulRdds ,
119- counters .rddsDuration , counters .rdds ));
108+ sb .append ("\" Metrics\" :[" );
109+ formatSingleMetric (sb , "\\ \\ ApplicationInsights\\ \\ Requests\\ /Sec" , counters .requests , 1 , true );
110+ formatSingleMetric (sb , "\\ \\ ApplicationInsights\\ \\ Request Duration" , counters .requestsDuration , 1 , true );
111+ formatSingleMetric (sb , "\\ \\ ApplicationInsights\\ \\ Requests Failed\\ /Sec" , counters .unsuccessfulRequests , 1 , true );
112+ formatSingleMetric (sb , "\\ \\ ApplicationInsights\\ \\ Requests Succeeded\\ /Sec" , (counters .requests - counters .unsuccessfulRequests ), 1 , true );
113+ formatSingleMetric (sb , "\\ \\ ApplicationInsights\\ \\ Dependency Calls\\ /Sec" , counters .rdds , 1 , true );
114+ formatSingleMetric (sb , "\\ \\ ApplicationInsights\\ \\ Dependency Call Duration" , counters .rddsDuration , 1 , true );
115+ formatSingleMetric (sb , "\\ \\ ApplicationInsights\\ \\ Dependency Calls Failed\\ /Sec" , counters .unsuccessfulRdds , 1 , true );
116+ formatSingleMetric (sb , "\\ \\ ApplicationInsights\\ \\ Dependency Calls Succeeded\\ /Sec" , counters .rdds - counters .unsuccessfulRdds , 1 , true );
117+ formatSingleMetric (sb , "\\ \\ ApplicationInsights\\ \\ Exceptions\\ /Sec" , counters .exceptions , 1 , true );
118+ formatSingleMetric (sb , "\\ \\ Memory\\ \\ Committed Bytes" , counters .memoryCommitted , 1 , true );
119+ formatSingleMetric (sb , "\\ \\ Processor(_Total)\\ \\ % Processor Time" , counters .cpuUsage , 1 , false );
120+ sb .append ("]," );
120121 }
121122}
0 commit comments