1515
1616import com .google .instrumentation .stats .MeasurementDescriptor .BasicUnit ;
1717import com .google .instrumentation .stats .MeasurementDescriptor .MeasurementUnit ;
18+ import com .google .instrumentation .stats .ViewDescriptor .DistributionViewDescriptor ;
1819
1920import java .util .Arrays ;
2021import java .util .List ;
2122
2223/**
23- * Census constants for collecting rpc stats.
24+ * Constants for collecting rpc stats.
2425 */
2526public final class RpcConstants {
2627 /**
27- * Census defined tag keys.
28+ * Rpc tag keys.
2829 */
29- public static final TagKey RPC_STATUS = TagKey .create ("/rpc/status " );
30- public static final TagKey RPC_CLIENT_METHOD = TagKey .create ("/rpc/client_method " );
31- public static final TagKey RPC_SERVER_METHOD = TagKey .create ("/rpc/server_method " );
30+ public static final TagKey RPC_STATUS = TagKey .create ("OpStatus " );
31+ public static final TagKey RPC_CLIENT_METHOD = TagKey .create ("method " );
32+ public static final TagKey RPC_SERVER_METHOD = TagKey .create ("method " );
3233
3334 // Constants used to define the following MeasurementDescriptors.
34- private static final List <BasicUnit > bytes = Arrays .asList (new BasicUnit [] { BasicUnit .BYTES });
35- private static final List <BasicUnit > scalar = Arrays .asList (new BasicUnit [] { BasicUnit .SCALAR });
36- private static final List <BasicUnit > seconds =
37- Arrays .asList (new BasicUnit [] { BasicUnit .SECONDS });
35+ private static final List <BasicUnit > bytes = Arrays .asList (BasicUnit .BYTES );
36+ private static final List <BasicUnit > scalar = Arrays .asList (BasicUnit .SCALAR );
37+ private static final List <BasicUnit > seconds = Arrays .asList (BasicUnit .SECONDS );
3838
3939 /**
4040 * Census defined rpc client {@link MeasurementDescriptor}s.
@@ -47,29 +47,34 @@ public final class RpcConstants {
4747 public static final MeasurementDescriptor RPC_CLIENT_REQUEST_BYTES =
4848 MeasurementDescriptor .create (
4949 "/rpc/client/request_bytes" ,
50- "Request MB/s " ,
51- MeasurementUnit .create (6 , bytes , seconds ));
50+ "Request MB" ,
51+ MeasurementUnit .create (6 , bytes ));
5252 public static final MeasurementDescriptor RPC_CLIENT_RESPONSE_BYTES =
5353 MeasurementDescriptor .create (
5454 "/rpc/client/response_bytes" ,
55- "Response MB/s " ,
56- MeasurementUnit .create (6 , bytes , seconds ));
55+ "Response MB" ,
56+ MeasurementUnit .create (6 , bytes ));
5757 // TODO(dpo): verify this encoding
5858 public static final MeasurementDescriptor RPC_CLIENT_ROUNDTRIP_LATENCY =
5959 MeasurementDescriptor .create (
6060 "/rpc/client/roundtrip_latency" ,
6161 "RPC roundtrip latency us" ,
62- MeasurementUnit .create (-6 , scalar ));
62+ MeasurementUnit .create (-6 , seconds ));
63+ public static final MeasurementDescriptor RPC_CLIENT_SERVER_ELAPSED_TIME =
64+ MeasurementDescriptor .create (
65+ "/rpc/client/server_elapsed_time" ,
66+ "Server elapsed time in msecs" ,
67+ MeasurementUnit .create (-3 , seconds ));
6368 public static final MeasurementDescriptor RPC_CLIENT_UNCOMPRESSED_REQUEST_BYTES =
6469 MeasurementDescriptor .create (
6570 "/rpc/client/uncompressed_request_bytes" ,
66- "Uncompressed Request MB/s " ,
67- MeasurementUnit .create (6 , bytes , seconds ));
71+ "Uncompressed Request MB" ,
72+ MeasurementUnit .create (6 , bytes ));
6873 public static final MeasurementDescriptor RPC_CLIENT_UNCOMPRESSED_RESPONSE_BYTES =
6974 MeasurementDescriptor .create (
7075 "/rpc/client/uncompressed_response_bytes" ,
71- "Uncompressed Request MB/s " ,
72- MeasurementUnit .create (6 , bytes , seconds ));
76+ "Uncompressed Request MB" ,
77+ MeasurementUnit .create (6 , bytes ));
7378
7479 /**
7580 * Census defined rpc server {@link MeasurementDescriptor}s.
@@ -82,28 +87,136 @@ public final class RpcConstants {
8287 public static final MeasurementDescriptor RPC_SERVER_REQUEST_BYTES =
8388 MeasurementDescriptor .create (
8489 "/rpc/server/request_bytes" ,
85- "Request MB/s " ,
86- MeasurementUnit .create (6 , bytes , seconds ));
90+ "Request MB" ,
91+ MeasurementUnit .create (6 , bytes ));
8792 public static final MeasurementDescriptor RPC_SERVER_RESPONSE_BYTES =
8893 MeasurementDescriptor .create (
8994 "/rpc/server/response_bytes" ,
90- "Response MB/s" ,
91- MeasurementUnit .create (6 , bytes , seconds ));
95+ "Response MB" ,
96+ MeasurementUnit .create (6 , bytes ));
97+ public static final MeasurementDescriptor RPC_SERVER_SERVER_ELAPSED_TIME =
98+ MeasurementDescriptor .create (
99+ "/rpc/server/server_elapsed_time" ,
100+ "Server elapsed time in msecs" ,
101+ MeasurementUnit .create (-3 , seconds ));
92102 public static final MeasurementDescriptor RPC_SERVER_SERVER_LATENCY =
93103 MeasurementDescriptor .create (
94104 "/rpc/server/server_latency" ,
95105 "Latency in msecs" ,
96- MeasurementUnit .create (-3 , scalar ));
106+ MeasurementUnit .create (-3 , seconds ));
97107 public static final MeasurementDescriptor RPC_SERVER_UNCOMPRESSED_REQUEST_BYTES =
98108 MeasurementDescriptor .create (
99109 "/rpc/server/uncompressed_request_bytes" ,
100- "Uncompressed Request MB/s " ,
101- MeasurementUnit .create (6 , bytes , seconds ));
110+ "Uncompressed Request MB" ,
111+ MeasurementUnit .create (6 , bytes ));
102112 public static final MeasurementDescriptor RPC_SERVER_UNCOMPRESSED_RESPONSE_BYTES =
103113 MeasurementDescriptor .create (
104114 "/rpc/server/uncompressed_response_bytes" ,
105- "Uncompressed Request MB/s" ,
106- MeasurementUnit .create (6 , bytes , seconds ));
115+ "Uncompressed Request MB" ,
116+ MeasurementUnit .create (6 , bytes ));
117+
118+ // Common histogram bucket boundaries for bytes received/sets DistributionViewDescriptors.
119+ private static final List <Double > RPC_BYTES_BUCKET_BOUNDARIES = Arrays .asList (
120+ 0.0 , 1024.0 , 2048.0 , 4096.0 , 16384.0 , 65536.0 , 262144.0 , 1048576.0 , 4194304.0 , 16777216.0 ,
121+ 67108864.0 , 268435456.0 , 1073741824.0 , 4294967296.0 );
122+
123+ // Common histogram bucket boundaries for latency and elapsed-time DistributionViewDescriptors.
124+ private static final List <Double > RPC_MILLIS_BUCKET_BOUNDARIES = Arrays .asList (
125+ 0.0 , 1.0 , 2.0 , 3.0 , 4.0 , 5.0 , 6.0 , 8.0 , 10.0 , 13.0 , 16.0 , 20.0 , 25.0 , 30.0 , 40.0 , 50.0 ,
126+ 65.0 , 80.0 , 100.0 , 130.0 , 160.0 , 200.0 , 250.0 , 300.0 , 400.0 , 500.0 , 650.0 , 800.0 , 1000.0 ,
127+ 2000.0 , 5000.0 , 10000.0 , 20000.0 , 50000.0 , 100000.0 );
128+
129+ /**
130+ * Census defined rpc client {@link ViewDescriptor}s.
131+ */
132+ public static final DistributionViewDescriptor RPC_CLIENT_ERROR_COUNT_VIEW =
133+ DistributionViewDescriptor .create (
134+ "rpc client error count" ,
135+ "RPC Errors" ,
136+ RPC_CLIENT_ERROR_COUNT ,
137+ DistributionAggregationDescriptor .create (),
138+ Arrays .asList (RPC_STATUS , RPC_CLIENT_METHOD ));
139+ public static final DistributionViewDescriptor RPC_CLIENT_ROUNDTRIP_LATENCY_VIEW =
140+ DistributionViewDescriptor .create (
141+ "rpc client roundtrip latency" ,
142+ "Latency in msecs" ,
143+ RPC_CLIENT_ROUNDTRIP_LATENCY ,
144+ DistributionAggregationDescriptor .create (RPC_MILLIS_BUCKET_BOUNDARIES ),
145+ Arrays .asList (RPC_CLIENT_METHOD ));
146+ public static final DistributionViewDescriptor RPC_CLIENT_SERVER_ELAPSED_TIME_VIEW =
147+ DistributionViewDescriptor .create (
148+ "rpc client server_elapsed_time" ,
149+ "Server elapsed time in msecs" ,
150+ RPC_CLIENT_SERVER_ELAPSED_TIME ,
151+ DistributionAggregationDescriptor .create (RPC_MILLIS_BUCKET_BOUNDARIES ),
152+ Arrays .asList (RPC_CLIENT_METHOD ));
153+ public static final DistributionViewDescriptor RPC_CLIENT_REQUEST_BYTES_VIEW =
154+ DistributionViewDescriptor .create (
155+ "rpc client request_bytes" ,
156+ "Request MB" ,
157+ RPC_CLIENT_REQUEST_BYTES ,
158+ DistributionAggregationDescriptor .create (RPC_BYTES_BUCKET_BOUNDARIES ),
159+ Arrays .asList (RPC_CLIENT_METHOD ));
160+ public static final DistributionViewDescriptor RPC_CLIENT_RESPONSE_BYTES_VIEW =
161+ DistributionViewDescriptor .create (
162+ "/rpc/client/response_bytes" ,
163+ "Response MB" ,
164+ RPC_CLIENT_RESPONSE_BYTES ,
165+ DistributionAggregationDescriptor .create (RPC_BYTES_BUCKET_BOUNDARIES ),
166+ Arrays .asList (RPC_CLIENT_METHOD ));
167+
168+ /**
169+ * Census defined rpc server {@link ViewDescriptor}s.
170+ */
171+ public static final DistributionViewDescriptor RPC_SERVER_ERROR_COUNT_VIEW =
172+ DistributionViewDescriptor .create (
173+ "rpc server error count" ,
174+ "RPC Errors" ,
175+ RPC_SERVER_ERROR_COUNT ,
176+ DistributionAggregationDescriptor .create (),
177+ Arrays .asList (RPC_STATUS , RPC_SERVER_METHOD ));
178+ public static final DistributionViewDescriptor RPC_SERVER_SERVER_LATENCY_VIEW =
179+ DistributionViewDescriptor .create (
180+ "rpc server latency" ,
181+ "Latency in msecs" ,
182+ RPC_SERVER_SERVER_LATENCY ,
183+ DistributionAggregationDescriptor .create (RPC_MILLIS_BUCKET_BOUNDARIES ),
184+ Arrays .asList (RPC_SERVER_METHOD ));
185+ public static final DistributionViewDescriptor RPC_SERVER_SERVER_ELAPSED_TIME_VIEW =
186+ DistributionViewDescriptor .create (
187+ "rpc server elapsed_time" ,
188+ "Server elapsed time in msecs" ,
189+ RPC_SERVER_SERVER_ELAPSED_TIME ,
190+ DistributionAggregationDescriptor .create (RPC_MILLIS_BUCKET_BOUNDARIES ),
191+ Arrays .asList (RPC_SERVER_METHOD ));
192+ public static final DistributionViewDescriptor RPC_SERVER_REQUEST_BYTES_VIEW =
193+ DistributionViewDescriptor .create (
194+ "rpc server request_bytes" ,
195+ "Request MB" ,
196+ RPC_SERVER_REQUEST_BYTES ,
197+ DistributionAggregationDescriptor .create (RPC_BYTES_BUCKET_BOUNDARIES ),
198+ Arrays .asList (RPC_SERVER_METHOD ));
199+ public static final DistributionViewDescriptor RPC_SERVER_RESPONSE_BYTES_VIEW =
200+ DistributionViewDescriptor .create (
201+ "/rpc/server/response_bytes" ,
202+ "Response MB" ,
203+ RPC_SERVER_RESPONSE_BYTES ,
204+ DistributionAggregationDescriptor .create (RPC_BYTES_BUCKET_BOUNDARIES ),
205+ Arrays .asList (RPC_SERVER_METHOD ));
206+ public static final DistributionViewDescriptor RPC_SERVER_UNCOMPRESSED_REQUEST_BYTES_VIEW =
207+ DistributionViewDescriptor .create (
208+ "/rpc/server/uncompressed_request_bytes" ,
209+ "Uncompressed Request MB" ,
210+ RPC_SERVER_UNCOMPRESSED_REQUEST_BYTES ,
211+ DistributionAggregationDescriptor .create (),
212+ Arrays .asList (RPC_SERVER_METHOD ));
213+ public static final DistributionViewDescriptor RPC_SERVER_UNCOMPRESSED_RESPONSE_BYTES_VIEW =
214+ DistributionViewDescriptor .create (
215+ "/rpc/server/uncompressed_response_bytes" ,
216+ "Uncompressed Request MB" ,
217+ RPC_SERVER_UNCOMPRESSED_RESPONSE_BYTES ,
218+ DistributionAggregationDescriptor .create (),
219+ Arrays .asList (RPC_SERVER_METHOD ));
107220
108221 // Visible for testing
109222 RpcConstants () {
0 commit comments