86 std::string metricString;
92 metricString =
"foo[METRIC] bkey,0 12 1789372894 hostname=test.cern.chbar";
93 std::string_view metric{metricString.data() + 3, metricString.size() - 6};
94 REQUIRE(metric == std::string_view(
"[METRIC] bkey,0 12 1789372894 hostname=test.cern.ch"));
95 result = DeviceMetricsHelper::parseMetric(metric,
match);
97 REQUIRE(strncmp(
match.beginKey,
"bkey", 4) == 0);
98 REQUIRE(
match.timestamp == 1789372894);
99 REQUIRE(
match.type == MetricType::Int);
100 REQUIRE(
match.intValue == 12);
102 result = DeviceMetricsHelper::processMetric(
match, info);
104 REQUIRE(info.metricLabelsAlphabeticallySortedIdx.size() == 1);
105 REQUIRE(info.metricLabels.size() == 1);
106 REQUIRE(strncmp(info.metricLabels[0].label,
"bkey", 4) == 0);
107 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[0].index == 0);
108 REQUIRE(info.metricPrefixes.size() == 1);
109 REQUIRE(strcmp(info.metricPrefixes[0].prefix,
"b") == 0);
110 REQUIRE(info.metricLabelsPrefixesSortedIdx.size() == 1);
111 REQUIRE(info.metricLabelsPrefixesSortedIdx[0].index == 0);
112 REQUIRE(info.intMetrics.size() == 1);
113 REQUIRE(info.floatMetrics.size() == 0);
114 REQUIRE(info.intTimestamps.size() == 1);
115 REQUIRE(info.metrics.size() == 1);
116 REQUIRE(info.metrics[0].type == MetricType::Int);
117 REQUIRE(info.metrics[0].storeIdx == 0);
118 REQUIRE(info.metrics[0].pos == 1);
120 REQUIRE(info.intTimestamps[0][0] == 1789372894);
121 REQUIRE(info.intMetrics[0][0] == 12);
122 REQUIRE(info.intMetrics[0][1] == 0);
125 metric =
"[METRIC] bkey,0 13 1789372894 hostname=test.cern.ch";
126 result = DeviceMetricsHelper::parseMetric(metric,
match);
128 REQUIRE(
match.intValue == 13);
129 result = DeviceMetricsHelper::processMetric(
match, info);
131 REQUIRE(info.metricLabels.size() == 1);
132 REQUIRE(info.metricLabelsAlphabeticallySortedIdx.size() == 1);
133 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[0].index == 0);
134 REQUIRE(info.metricPrefixes.size() == 1);
135 REQUIRE(strcmp(info.metricPrefixes[0].prefix,
"b") == 0);
136 REQUIRE(info.metricLabelsPrefixesSortedIdx.size() == 1);
137 REQUIRE(info.metricLabelsPrefixesSortedIdx[0].index == 0);
138 REQUIRE(info.intMetrics.size() == 1);
139 REQUIRE(info.intMetrics[0][0] == 12);
140 REQUIRE(info.intMetrics[0][1] == 13);
141 REQUIRE(info.intMetrics[0][2] == 0);
142 REQUIRE(info.metrics[0].pos == 2);
145 metric =
"[METRIC] akey,0 14 1789372894 hostname=test.cern.ch";
146 result = DeviceMetricsHelper::parseMetric(metric,
match);
148 result = DeviceMetricsHelper::processMetric(
match, info);
150 REQUIRE(info.metricLabels.size() == 2);
151 REQUIRE(info.metricLabelsAlphabeticallySortedIdx.size() == 2);
152 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[0].index == 1);
153 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[1].index == 0);
154 REQUIRE(info.metricPrefixes.size() == 2);
155 REQUIRE(strcmp(info.metricPrefixes[0].prefix,
"b") == 0);
156 REQUIRE(strcmp(info.metricPrefixes[1].prefix,
"a") == 0);
157 REQUIRE(info.metricLabelsPrefixesSortedIdx.size() == 2);
158 REQUIRE(info.metricLabelsPrefixesSortedIdx[0].index == 1);
159 REQUIRE(info.metricLabelsPrefixesSortedIdx[1].index == 0);
160 REQUIRE(info.intMetrics.size() == 2);
161 REQUIRE(info.intMetrics[0][0] == 12);
162 REQUIRE(info.intMetrics[0][1] == 13);
163 REQUIRE(info.intMetrics[0][2] == 0);
164 REQUIRE(info.intMetrics[1][0] == 14);
165 REQUIRE(info.metrics.size() == 2);
166 REQUIRE(info.metrics[1].type == MetricType::Int);
167 REQUIRE(info.metrics[1].storeIdx == 1);
168 REQUIRE(info.metrics[1].pos == 1);
171 metric =
"[METRIC] key3,2 16.0 1789372894 hostname=test.cern.ch";
172 result = DeviceMetricsHelper::parseMetric(metric,
match);
174 result = DeviceMetricsHelper::processMetric(
match, info);
176 REQUIRE(info.metricLabels.size() == 3);
177 REQUIRE(info.metricPrefixes.size() == 3);
178 REQUIRE(info.metricLabelsAlphabeticallySortedIdx.size() == 3);
179 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[0].index == 1);
180 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[1].index == 0);
181 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[2].index == 2);
182 REQUIRE(strcmp(info.metricPrefixes[0].prefix,
"b") == 0);
183 REQUIRE(strcmp(info.metricPrefixes[1].prefix,
"a") == 0);
184 REQUIRE(strcmp(info.metricPrefixes[2].prefix,
"k") == 0);
185 REQUIRE(info.metricLabelsPrefixesSortedIdx.size() == 3);
186 REQUIRE(info.metricLabelsPrefixesSortedIdx[0].index == 1);
187 REQUIRE(info.metricLabelsPrefixesSortedIdx[1].index == 0);
188 REQUIRE(info.metricLabelsPrefixesSortedIdx[2].index == 2);
189 REQUIRE(info.intMetrics.size() == 2);
190 REQUIRE(info.floatMetrics.size() == 1);
191 REQUIRE(info.metrics.size() == 3);
192 REQUIRE(info.floatMetrics[0][0] == 16.0);
193 REQUIRE(info.floatMetrics[0][1] == 0);
194 REQUIRE(info.metrics[2].type == MetricType::Float);
195 REQUIRE(info.metrics[2].storeIdx == 0);
196 REQUIRE(info.metrics[2].pos == 1);
199 metric =
"[METRIC] key3,2 17.0 1789372895 hostname=test.cern.ch";
200 result = DeviceMetricsHelper::parseMetric(metric,
match);
202 result = DeviceMetricsHelper::processMetric(
match, info);
204 REQUIRE(info.metricLabels.size() == 3);
205 REQUIRE(info.metricLabelsAlphabeticallySortedIdx.size() == 3);
206 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[0].index == 1);
207 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[1].index == 0);
208 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[2].index == 2);
209 REQUIRE(info.metricLabelsPrefixesSortedIdx.size() == 3);
210 REQUIRE(info.metricLabelsPrefixesSortedIdx[0].index == 1);
211 REQUIRE(info.metricLabelsPrefixesSortedIdx[1].index == 0);
212 REQUIRE(info.metricLabelsPrefixesSortedIdx[2].index == 2);
213 REQUIRE(info.intMetrics.size() == 2);
214 REQUIRE(info.floatMetrics.size() == 1);
215 REQUIRE(info.metrics.size() == 3);
216 REQUIRE(info.floatMetrics[0][0] == 16.0);
217 REQUIRE(info.floatMetrics[0][1] == 17.0);
218 REQUIRE(info.floatMetrics[0][2] == 0);
219 REQUIRE(info.metrics[2].type == MetricType::Float);
220 REQUIRE(info.metrics[2].storeIdx == 0);
221 REQUIRE(info.metrics[2].pos == 2);
223 REQUIRE(DeviceMetricsHelper::metricIdxByName(
"akey", info) == 1);
224 REQUIRE(DeviceMetricsHelper::metricIdxByName(
"bkey", info) == 0);
225 REQUIRE(DeviceMetricsHelper::metricIdxByName(
"key3", info) == 2);
226 REQUIRE(DeviceMetricsHelper::metricIdxByName(
"foo", info) == 3);
229 metric =
"[METRIC] key4,1 some_string 1789372895 hostname=test.cern.ch";
230 result = DeviceMetricsHelper::parseMetric(metric,
match);
232 result = DeviceMetricsHelper::processMetric(
match, info);
234 REQUIRE(info.metricLabels.size() == 4);
235 REQUIRE(info.metricLabelsAlphabeticallySortedIdx.size() == 4);
236 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[0].index == 1);
237 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[1].index == 0);
238 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[2].index == 2);
239 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[3].index == 3);
240 REQUIRE(info.metricPrefixes.size() == 3);
241 REQUIRE(strcmp(info.metricPrefixes[0].prefix,
"b") == 0);
242 REQUIRE(strcmp(info.metricPrefixes[1].prefix,
"a") == 0);
243 REQUIRE(strcmp(info.metricPrefixes[2].prefix,
"k") == 0);
244 REQUIRE(info.metricLabelsPrefixesSortedIdx.size() == 3);
245 REQUIRE(info.metricLabelsPrefixesSortedIdx[0].index == 1);
246 REQUIRE(info.metricLabelsPrefixesSortedIdx[1].index == 0);
247 REQUIRE(info.metricLabelsPrefixesSortedIdx[2].index == 2);
248 REQUIRE(info.metrics.size() == 4);
249 REQUIRE(info.stringMetrics.size() == 1);
250 REQUIRE(info.metrics[3].type == MetricType::String);
251 REQUIRE(info.metrics[3].storeIdx == 0);
252 REQUIRE(info.metrics[3].pos == 1);
256 metric =
"[METRIC] alien-file-name,1 alien:///alice/data/2015/LHC15o/000244918/pass5_lowIR/PWGZZ/Run3_Conversion/96_20201013-1346_child_1/0028/AO2D.root:/,631838549,ALICE::CERN::EOS 1789372895 hostname=test.cern.ch";
257 result = DeviceMetricsHelper::parseMetric(metric,
match);
259 result = DeviceMetricsHelper::processMetric(
match, info);
261 REQUIRE(info.metricLabels.size() == 5);
262 REQUIRE(info.metricLabelsAlphabeticallySortedIdx.size() == 5);
263 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[0].index == 1);
264 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[1].index == 4);
265 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[2].index == 0);
266 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[3].index == 2);
267 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[4].index == 3);
268 REQUIRE(info.metricPrefixes.size() == 3);
269 REQUIRE(strcmp(info.metricPrefixes[0].prefix,
"b") == 0);
270 REQUIRE(strcmp(info.metricPrefixes[1].prefix,
"a") == 0);
271 REQUIRE(strcmp(info.metricPrefixes[2].prefix,
"k") == 0);
272 REQUIRE(info.metricLabelsPrefixesSortedIdx.size() == 3);
273 REQUIRE(info.metricLabelsPrefixesSortedIdx[0].index == 1);
274 REQUIRE(info.metricLabelsPrefixesSortedIdx[1].index == 0);
275 REQUIRE(info.metricLabelsPrefixesSortedIdx[2].index == 2);
276 REQUIRE(info.metrics.size() == 5);
277 REQUIRE(info.stringMetrics.size() == 2);
278 REQUIRE(info.metrics[4].type == MetricType::String);
279 REQUIRE(info.metrics[4].storeIdx == 1);
280 REQUIRE(info.metrics[4].pos == 1);
281 REQUIRE(std::string(info.stringMetrics[1][0].data) == std::string(
"alien:///alice/data/2015/LHC15o/000244918/pass5_lowIR/PWGZZ/Run3_Conversion/96_20201013-1346_child_1/0028/AO2D.root:/,631838549,ALICE::CERN::EOS"));
285 metric =
"[METRIC] array/w,0 2 1789372895 hostname=test.cern.ch";
286 result = DeviceMetricsHelper::parseMetric(metric,
match);
288 result = DeviceMetricsHelper::processMetric(
match, info);
290 REQUIRE(info.metricLabels.size() == 6);
291 REQUIRE(info.metricPrefixes.size() == 4);
292 REQUIRE(strcmp(info.metricPrefixes[0].prefix,
"b") == 0);
293 REQUIRE(strcmp(info.metricPrefixes[1].prefix,
"a") == 0);
294 REQUIRE(strcmp(info.metricPrefixes[2].prefix,
"k") == 0);
295 REQUIRE(strcmp(info.metricPrefixes[3].prefix,
"array") == 0);
296 REQUIRE(info.metricLabelsPrefixesSortedIdx.size() == 4);
297 REQUIRE(info.metricLabelsPrefixesSortedIdx[0].index == 1);
298 REQUIRE(info.metricLabelsPrefixesSortedIdx[1].index == 3);
299 REQUIRE(info.metricLabelsPrefixesSortedIdx[2].index == 0);
300 REQUIRE(info.metricLabelsPrefixesSortedIdx[3].index == 2);
301 REQUIRE(info.metricLabelsAlphabeticallySortedIdx.size() == 6);
302 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[0].index == 1);
303 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[1].index == 4);
304 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[2].index == 5);
305 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[3].index == 0);
306 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[4].index == 2);
307 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[5].index == 3);
308 REQUIRE(info.metrics.size() == 6);
309 REQUIRE(info.intMetrics.size() == 3);
312 metric =
"[METRIC] array/h,0 3 1789372895 hostname=test.cern.ch";
313 result = DeviceMetricsHelper::parseMetric(metric,
match);
315 result = DeviceMetricsHelper::processMetric(
match, info);
317 REQUIRE(info.metricLabels.size() == 7);
318 REQUIRE(info.metricPrefixes.size() == 4);
319 REQUIRE(info.metricLabelsAlphabeticallySortedIdx.size() == 7);
320 REQUIRE(info.metrics.size() == 7);
321 REQUIRE(info.intMetrics.size() == 4);
324 metric =
"[METRIC] array/0,0 0 1789372895 hostname=test.cern.ch";
325 result = DeviceMetricsHelper::parseMetric(metric,
match);
327 result = DeviceMetricsHelper::processMetric(
match, info);
329 REQUIRE(info.metricLabels.size() == 8);
330 REQUIRE(info.metricPrefixes.size() == 4);
333 metric =
"[METRIC] array/1,0 1 1789372895 hostname=test.cern.ch";
334 result = DeviceMetricsHelper::parseMetric(metric,
match);
336 result = DeviceMetricsHelper::processMetric(
match, info);
338 REQUIRE(info.metricLabels.size() == 9);
339 REQUIRE(info.metricPrefixes.size() == 4);
342 metric =
"[METRIC] array/2,0 2 1789372895 hostname=test.cern.ch";
343 result = DeviceMetricsHelper::parseMetric(metric,
match);
345 result = DeviceMetricsHelper::processMetric(
match, info);
347 REQUIRE(info.metricLabels.size() == 10);
348 REQUIRE(info.metricPrefixes.size() == 4);
350 REQUIRE(strcmp(info.metricPrefixes[0].prefix,
"b") == 0);
351 REQUIRE(strcmp(info.metricPrefixes[1].prefix,
"a") == 0);
352 REQUIRE(strcmp(info.metricPrefixes[2].prefix,
"k") == 0);
353 REQUIRE(strcmp(info.metricPrefixes[3].prefix,
"array") == 0);
354 REQUIRE(info.metricLabelsPrefixesSortedIdx.size() == 4);
355 REQUIRE(info.metricLabelsPrefixesSortedIdx[0].index == 1);
356 REQUIRE(info.metricLabelsPrefixesSortedIdx[1].index == 3);
357 REQUIRE(info.metricLabelsPrefixesSortedIdx[2].index == 0);
358 REQUIRE(info.metricLabelsPrefixesSortedIdx[3].index == 2);
360 REQUIRE(info.metricPrefixes[0].begin == 7);
361 REQUIRE(info.metricPrefixes[0].end == 8);
362 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[7].index == 0);
363 REQUIRE(info.metricLabels[info.metricLabelsAlphabeticallySortedIdx[7].index].size == 4);
364 REQUIRE(std::string_view(info.metricLabels[info.metricLabelsAlphabeticallySortedIdx[7].index].label, 4) == std::string_view(
"bkey"));
365 REQUIRE(info.metricPrefixes[1].begin == 0);
366 REQUIRE(info.metricPrefixes[1].end == 2);
367 REQUIRE(info.metricPrefixes[2].begin == 8);
368 REQUIRE(info.metricPrefixes[2].end == 10);
369 REQUIRE(info.metricPrefixes[3].begin == 2);
370 REQUIRE(info.metricPrefixes[3].end == 7);
373 metric =
"[METRIC] array/2,0 2 1789372895 hostname=test.cern.ch";
374 result = DeviceMetricsHelper::parseMetric(metric,
match);
376 result = DeviceMetricsHelper::processMetric(
match, info);
378 REQUIRE(info.metricLabels.size() == 10);
379 REQUIRE(info.metricPrefixes.size() == 4);
381 auto array3 = DeviceMetricsHelper::createNumericMetric<int>(info,
"array/3");
383 REQUIRE(info.metricLabels.size() == 11);
384 REQUIRE(info.metricPrefixes.size() == 4);
386 REQUIRE(strcmp(info.metricPrefixes[0].prefix,
"b") == 0);
387 REQUIRE(strcmp(info.metricPrefixes[1].prefix,
"a") == 0);
388 REQUIRE(strcmp(info.metricPrefixes[2].prefix,
"k") == 0);
389 REQUIRE(strcmp(info.metricPrefixes[3].prefix,
"array") == 0);
390 REQUIRE(info.metricLabelsPrefixesSortedIdx.size() == 4);
391 REQUIRE(info.metricLabelsPrefixesSortedIdx[0].index == 1);
392 REQUIRE(info.metricLabelsPrefixesSortedIdx[1].index == 3);
393 REQUIRE(info.metricLabelsPrefixesSortedIdx[2].index == 0);
394 REQUIRE(info.metricLabelsPrefixesSortedIdx[3].index == 2);
396 REQUIRE(info.metricPrefixes[0].begin == 8);
397 REQUIRE(info.metricPrefixes[0].end == 9);
398 REQUIRE(info.metricLabelsAlphabeticallySortedIdx[8].index == 0);
399 REQUIRE(info.metricLabels[info.metricLabelsAlphabeticallySortedIdx[8].index].size == 4);
400 REQUIRE(std::string_view(info.metricLabels[info.metricLabelsAlphabeticallySortedIdx[8].index].label, 4) == std::string_view(
"bkey"));
401 REQUIRE(info.metricPrefixes[1].begin == 0);
402 REQUIRE(info.metricPrefixes[1].end == 2);
403 REQUIRE(info.metricPrefixes[2].begin == 9);
404 REQUIRE(info.metricPrefixes[2].end == 11);
405 REQUIRE(info.metricPrefixes[3].begin == 2);
406 REQUIRE(info.metricPrefixes[3].end == 8);
409 metric =
"[METRIC] data_relayer/w,0 1 1789372895 hostname=test.cern.ch";
410 result = DeviceMetricsHelper::parseMetric(metric,
match);
412 REQUIRE(
match.type == MetricType::Int);
415 metric =
"[METRIC] data_relayer/h,0 1 1789372895 hostname=test.cern.ch";
416 result = DeviceMetricsHelper::parseMetric(metric,
match);
418 REQUIRE(
match.type == MetricType::Int);
421 metric =
"[METRIC] data_relayer/1,0 8 1789372895 hostname=test.cern.ch";
422 result = DeviceMetricsHelper::parseMetric(metric,
match);
424 REQUIRE(
match.type == MetricType::Enum);
431 auto bkey = DeviceMetricsHelper::createNumericMetric<int>(info,
"bkey");
432 REQUIRE(info.metricLabels.size() == 1);
433 REQUIRE(info.metricPrefixes.size() == 1);
434 auto akey = DeviceMetricsHelper::createNumericMetric<float>(info,
"akey");
435 REQUIRE(info.metricLabels.size() == 2);
436 REQUIRE(info.metricPrefixes.size() == 2);
437 auto ckey = DeviceMetricsHelper::createNumericMetric<uint64_t>(info,
"ckey");
438 REQUIRE(info.metricLabels.size() == 3);
439 REQUIRE(info.metricPrefixes.size() == 3);
440 REQUIRE(DeviceMetricsHelper::metricIdxByName(
"akey", info) == 1);
441 REQUIRE(DeviceMetricsHelper::metricIdxByName(
"bkey", info) == 0);
442 REQUIRE(DeviceMetricsHelper::metricIdxByName(
"ckey", info) == 2);
443 REQUIRE(info.changed.size() == 3);
444 REQUIRE(info.changed.at(0) ==
false);
452 REQUIRE(info.metrics[0].filledMetrics == 6);
453 REQUIRE(info.metrics[1].filledMetrics == 0);
454 REQUIRE(info.metrics[2].filledMetrics == 0);
455 REQUIRE(info.changed[0] ==
true);
456 REQUIRE(info.intMetrics[0][0] == 0);
457 REQUIRE(info.intMetrics[0][1] == 1);
458 REQUIRE(info.intMetrics[0][2] == 2);
459 REQUIRE(info.intMetrics[0][3] == 3);
460 REQUIRE(info.intMetrics[0][4] == 4);
461 REQUIRE(info.intMetrics[0][5] == 5);
462 REQUIRE(info.changed[1] ==
false);
465 REQUIRE(info.changed[0] ==
true);
466 REQUIRE(info.changed[1] ==
false);
471 REQUIRE(info.changed[0] ==
true);
472 REQUIRE(info.changed[1] ==
true);
473 REQUIRE(info.changed[2] ==
false);
474 REQUIRE(info.metrics[0].filledMetrics == 7);
475 REQUIRE(info.metrics[1].filledMetrics == 4);
476 REQUIRE(info.metrics[2].filledMetrics == 0);
477 REQUIRE(info.intMetrics[0][6] == 5);
478 REQUIRE(info.floatMetrics[0][0] == 1.);
479 REQUIRE(info.floatMetrics[0][1] == 2.);
480 REQUIRE(info.floatMetrics[0][2] == 3.);
481 REQUIRE(info.floatMetrics[0][3] == 4.);
482 REQUIRE(info.intTimestamps.size() == 1);
483 REQUIRE(info.floatTimestamps.size() == 1);
484 REQUIRE(info.uint64Timestamps.size() == 1);
485 REQUIRE(info.intTimestamps[0][0] == 1000);
486 REQUIRE(info.intTimestamps[0][1] == 1001);
487 REQUIRE(info.intTimestamps[0][2] == 1002);
488 REQUIRE(info.intTimestamps[0][3] == 1003);
489 REQUIRE(info.intTimestamps[0][4] == 1004);
490 REQUIRE(info.intTimestamps[0][5] == 1005);
491 REQUIRE(info.floatTimestamps[0][0] == 1007);
492 REQUIRE(info.floatTimestamps[0][1] == 1008);
493 REQUIRE(info.floatTimestamps[0][2] == 1009);
494 REQUIRE(info.floatTimestamps[0][3] == 1010);
495 REQUIRE(info.changed.size() == 3);
496 for (
int i = 0;
i < 1026; ++
i) {
499 REQUIRE(info.uint64Metrics[0][0] == 1024);
500 REQUIRE(info.uint64Metrics[0][1] == 1025);
501 REQUIRE(info.uint64Metrics[0][2] == 2);
502 REQUIRE(info.metrics[0].filledMetrics == 7);
503 REQUIRE(info.metrics[1].filledMetrics == 4);
504 REQUIRE(info.metrics[2].filledMetrics == 1026);