Skip to content

Commit cda08dd

Browse files
authored
Merge pull request census-instrumentation#75 from dinooliva/rpc-constants
Updates RpcConstants to have appropriate ViewDescriptors.
2 parents 570c861 + f1c31e2 commit cda08dd

File tree

1 file changed

+140
-27
lines changed

1 file changed

+140
-27
lines changed

core/java/com/google/instrumentation/stats/RpcConstants.java

Lines changed: 140 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -15,26 +15,26 @@
1515

1616
import com.google.instrumentation.stats.MeasurementDescriptor.BasicUnit;
1717
import com.google.instrumentation.stats.MeasurementDescriptor.MeasurementUnit;
18+
import com.google.instrumentation.stats.ViewDescriptor.DistributionViewDescriptor;
1819

1920
import java.util.Arrays;
2021
import java.util.List;
2122

2223
/**
23-
* Census constants for collecting rpc stats.
24+
* Constants for collecting rpc stats.
2425
*/
2526
public 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

Comments
 (0)