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.
@@ -60,6 +60,11 @@ public final class RpcConstants {
6060 "/rpc/client/roundtrip_latency" ,
6161 "RPC roundtrip latency us" ,
6262 MeasurementUnit .create (-6 , scalar ));
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 , scalar ));
6368 public static final MeasurementDescriptor RPC_CLIENT_UNCOMPRESSED_REQUEST_BYTES =
6469 MeasurementDescriptor .create (
6570 "/rpc/client/uncompressed_request_bytes" ,
@@ -89,6 +94,11 @@ public final class RpcConstants {
8994 "/rpc/server/response_bytes" ,
9095 "Response MB/s" ,
9196 MeasurementUnit .create (6 , bytes , seconds ));
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 , scalar ));
92102 public static final MeasurementDescriptor RPC_SERVER_SERVER_LATENCY =
93103 MeasurementDescriptor .create (
94104 "/rpc/server/server_latency" ,
@@ -105,6 +115,108 @@ public final class RpcConstants {
105115 "Uncompressed Request MB/s" ,
106116 MeasurementUnit .create (6 , bytes , seconds ));
107117
118+ // Common sized histogram bucket boundaries.
119+ private static final List <Double > 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+ private static final List <Double > millis_bucket_boundaries = Arrays .asList (
124+ 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 ,
125+ 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 ,
126+ 2000.0 , 5000.0 , 10000.0 , 20000.0 , 50000.0 , 100000.0 );
127+
128+ /**
129+ * Census defined rpc client {@link ViewDescriptor}s.
130+ */
131+ public static final DistributionViewDescriptor RPC_CLIENT_ERROR_COUNT_VIEW =
132+ DistributionViewDescriptor .create (
133+ "rpc client error count" ,
134+ "RPC Errors" ,
135+ RPC_CLIENT_ERROR_COUNT ,
136+ DistributionAggregationDescriptor .create (),
137+ Arrays .asList (RPC_STATUS , RPC_CLIENT_METHOD ));
138+ public static final DistributionViewDescriptor RPC_CLIENT_ROUNDTRIP_LATENCY_VIEW =
139+ DistributionViewDescriptor .create (
140+ "rpc client roundtrip latency" ,
141+ "Latency in msecs" ,
142+ RPC_CLIENT_ROUNDTRIP_LATENCY ,
143+ DistributionAggregationDescriptor .create (millis_bucket_boundaries ),
144+ Arrays .asList (RPC_CLIENT_METHOD ));
145+ public static final DistributionViewDescriptor RPC_CLIENT_SERVER_ELAPSED_TIME_VIEW =
146+ DistributionViewDescriptor .create (
147+ "rpc client server_elapsed_time" ,
148+ "Server elapsed time in msecs" ,
149+ RPC_CLIENT_SERVER_ELAPSED_TIME ,
150+ DistributionAggregationDescriptor .create (millis_bucket_boundaries ),
151+ Arrays .asList (RPC_CLIENT_METHOD ));
152+ public static final DistributionViewDescriptor RPC_CLIENT_REQUEST_BYTES_VIEW =
153+ DistributionViewDescriptor .create (
154+ "rpc client request_bytes" ,
155+ "Request MB/s" ,
156+ RPC_CLIENT_REQUEST_BYTES ,
157+ DistributionAggregationDescriptor .create (bytes_bucket_boundaries ),
158+ Arrays .asList (RPC_CLIENT_METHOD ));
159+ public static final DistributionViewDescriptor RPC_CLIENT_RESPONSE_BYTES_VIEW =
160+ DistributionViewDescriptor .create (
161+ "/rpc/client/response_bytes" ,
162+ "Response MB/s" ,
163+ RPC_CLIENT_RESPONSE_BYTES ,
164+ DistributionAggregationDescriptor .create (bytes_bucket_boundaries ),
165+ Arrays .asList (RPC_CLIENT_METHOD ));
166+
167+ /**
168+ * Census defined rpc server {@link ViewDescriptor}s.
169+ */
170+ public static final DistributionViewDescriptor RPC_SERVER_ERROR_COUNT_VIEW =
171+ DistributionViewDescriptor .create (
172+ "rpc server error count" ,
173+ "RPC Errors" ,
174+ RPC_SERVER_ERROR_COUNT ,
175+ DistributionAggregationDescriptor .create (),
176+ Arrays .asList (RPC_STATUS , RPC_SERVER_METHOD ));
177+ public static final DistributionViewDescriptor RPC_SERVER_SERVER_LATENCY_VIEW =
178+ DistributionViewDescriptor .create (
179+ "rpc server latency" ,
180+ "Latency in msecs" ,
181+ RPC_SERVER_SERVER_LATENCY ,
182+ DistributionAggregationDescriptor .create (millis_bucket_boundaries ),
183+ Arrays .asList (RPC_SERVER_METHOD ));
184+ public static final DistributionViewDescriptor RPC_SERVER_SERVER_ELAPSED_TIME_VIEW =
185+ DistributionViewDescriptor .create (
186+ "rpc server elapsed_time" ,
187+ "Server elapsed time in msecs" ,
188+ RPC_SERVER_SERVER_ELAPSED_TIME ,
189+ DistributionAggregationDescriptor .create (millis_bucket_boundaries ),
190+ Arrays .asList (RPC_SERVER_METHOD ));
191+ public static final DistributionViewDescriptor RPC_SERVER_REQUEST_BYTES_VIEW =
192+ DistributionViewDescriptor .create (
193+ "rpc server request_bytes" ,
194+ "Request MB/s" ,
195+ RPC_SERVER_REQUEST_BYTES ,
196+ DistributionAggregationDescriptor .create (bytes_bucket_boundaries ),
197+ Arrays .asList (RPC_SERVER_METHOD ));
198+ public static final DistributionViewDescriptor RPC_SERVER_RESPONSE_BYTES_VIEW =
199+ DistributionViewDescriptor .create (
200+ "/rpc/server/response_bytes" ,
201+ "Response MB/s" ,
202+ RPC_SERVER_RESPONSE_BYTES ,
203+ DistributionAggregationDescriptor .create (bytes_bucket_boundaries ),
204+ Arrays .asList (RPC_SERVER_METHOD ));
205+ public static final DistributionViewDescriptor RPC_SERVER_UNCOMPRESSED_REQUEST_BYTES_VIEW =
206+ DistributionViewDescriptor .create (
207+ "/rpc/server/uncompressed_request_bytes" ,
208+ "Uncompressed Request MB/s" ,
209+ RPC_SERVER_UNCOMPRESSED_REQUEST_BYTES ,
210+ DistributionAggregationDescriptor .create (),
211+ Arrays .asList (RPC_SERVER_METHOD ));
212+ public static final DistributionViewDescriptor RPC_SERVER_UNCOMPRESSED_RESPONSE_BYTES_VIEW =
213+ DistributionViewDescriptor .create (
214+ "/rpc/server/uncompressed_response_bytes" ,
215+ "Uncompressed Request MB/s" ,
216+ RPC_SERVER_UNCOMPRESSED_RESPONSE_BYTES ,
217+ DistributionAggregationDescriptor .create (),
218+ Arrays .asList (RPC_SERVER_METHOD ));
219+
108220 // Visible for testing
109221 RpcConstants () {
110222 throw new AssertionError ();
0 commit comments