|
|
@ -311,36 +311,27 @@ MATCHER_P5(RecordCatEq, category, count, total, min, max, "")
|
|
|
|
TEST(MetricsCore, RepoBasic)
|
|
|
|
TEST(MetricsCore, RepoBasic)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Registry registry;
|
|
|
|
Registry registry;
|
|
|
|
CollectorRepo repo(®istry);
|
|
|
|
CollectorRepo< double > repo(®istry);
|
|
|
|
|
|
|
|
|
|
|
|
DoubleCollector *collector1 = repo.defaultDoubleCollector("Test", "C1");
|
|
|
|
DoubleCollector *collector1 = repo.defaultCollector("Test", "C1");
|
|
|
|
DoubleCollector *collector2 = repo.defaultDoubleCollector("Test", "C2");
|
|
|
|
DoubleCollector *collector2 = repo.defaultCollector("Test", "C2");
|
|
|
|
IntCollector *intCollector1 = repo.defaultIntCollector("Test", "C3");
|
|
|
|
|
|
|
|
IntCollector *intCollector2 = repo.defaultIntCollector("Test", "C4");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ASSERT_NE(collector1, collector2);
|
|
|
|
ASSERT_NE(collector1, collector2);
|
|
|
|
ASSERT_EQ(collector1, repo.defaultDoubleCollector("Test", "C1"));
|
|
|
|
ASSERT_EQ(collector1, repo.defaultCollector("Test", "C1"));
|
|
|
|
ASSERT_NE(intCollector1, intCollector2);
|
|
|
|
|
|
|
|
ASSERT_EQ(intCollector1, repo.defaultIntCollector("Test", "C3"));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
collector1->tick(1.0);
|
|
|
|
collector1->tick(1.0);
|
|
|
|
collector1->tick(2.0);
|
|
|
|
collector1->tick(2.0);
|
|
|
|
collector2->tick(4.0);
|
|
|
|
collector2->tick(4.0);
|
|
|
|
|
|
|
|
|
|
|
|
intCollector1->tick(5);
|
|
|
|
|
|
|
|
intCollector2->tick(6);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
std::vector< Record< double > > records =
|
|
|
|
std::vector< Record< double > > records =
|
|
|
|
repo.collectAndClear(registry.get("Test"));
|
|
|
|
repo.collectAndClear(registry.get("Test"));
|
|
|
|
ASSERT_THAT(records, SizeIs(4));
|
|
|
|
EXPECT_THAT(records, SizeIs(2));
|
|
|
|
// clang-format off
|
|
|
|
// clang-format off
|
|
|
|
ASSERT_THAT(
|
|
|
|
EXPECT_THAT(
|
|
|
|
records,
|
|
|
|
records,
|
|
|
|
ElementsAre(
|
|
|
|
ElementsAre(
|
|
|
|
RecordEq("Test", "C1", 2u, 3, 1, 2),
|
|
|
|
RecordEq("Test", "C1", 2u, 3, 1, 2),
|
|
|
|
RecordEq("Test", "C2", 1u, 4, 4, 4),
|
|
|
|
RecordEq("Test", "C2", 1u, 4, 4, 4)
|
|
|
|
RecordEq("Test", "C3", 1u, 5, 5, 5),
|
|
|
|
|
|
|
|
RecordEq("Test", "C4", 1u, 6, 6, 6)
|
|
|
|
|
|
|
|
)
|
|
|
|
)
|
|
|
|
);
|
|
|
|
);
|
|
|
|
// clang-format on
|
|
|
|
// clang-format on
|
|
|
@ -360,7 +351,7 @@ TEST(MetricsCore, RepoCollect)
|
|
|
|
|
|
|
|
|
|
|
|
for(int i = 0; i < static_cast< int >(CATEGORIES.size()); ++i)
|
|
|
|
for(int i = 0; i < static_cast< int >(CATEGORIES.size()); ++i)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
CollectorRepo repo(®istry);
|
|
|
|
CollectorRepo< int > repo(®istry);
|
|
|
|
|
|
|
|
|
|
|
|
for(int j = 0; j < static_cast< int >(CATEGORIES.size()); ++j)
|
|
|
|
for(int j = 0; j < static_cast< int >(CATEGORIES.size()); ++j)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -370,16 +361,13 @@ TEST(MetricsCore, RepoCollect)
|
|
|
|
Id metric = registry.get(CATEGORY, METRICS[k]);
|
|
|
|
Id metric = registry.get(CATEGORY, METRICS[k]);
|
|
|
|
for(int l = 0; l < NUM_COLS; ++l)
|
|
|
|
for(int l = 0; l < NUM_COLS; ++l)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
DoubleCollector *dCol = repo.addDoubleCollector(metric).get();
|
|
|
|
IntCollector *iCol = repo.addCollector(metric).get();
|
|
|
|
IntCollector *iCol = repo.addIntCollector(metric).get();
|
|
|
|
|
|
|
|
if(i == j)
|
|
|
|
if(i == j)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
dCol->set(k, 2 * k, -k, k);
|
|
|
|
|
|
|
|
iCol->set(k, 2 * k, -k, k);
|
|
|
|
iCol->set(k, 2 * k, -k, k);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
|
dCol->set(100, 100, 100, 100);
|
|
|
|
|
|
|
|
iCol->set(100, 100, 100, 100);
|
|
|
|
iCol->set(100, 100, 100, 100);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -391,7 +379,7 @@ TEST(MetricsCore, RepoCollect)
|
|
|
|
const char *CATEGORY = CATEGORIES[i];
|
|
|
|
const char *CATEGORY = CATEGORIES[i];
|
|
|
|
const Category *category = registry.get(CATEGORY);
|
|
|
|
const Category *category = registry.get(CATEGORY);
|
|
|
|
|
|
|
|
|
|
|
|
std::vector< Record< double > > records = repo.collect(category);
|
|
|
|
std::vector< Record< int > > records = repo.collect(category);
|
|
|
|
|
|
|
|
|
|
|
|
ASSERT_THAT(records, SizeIs(static_cast< int >(METRICS.size())));
|
|
|
|
ASSERT_THAT(records, SizeIs(static_cast< int >(METRICS.size())));
|
|
|
|
// clang-format off
|
|
|
|
// clang-format off
|
|
|
@ -399,8 +387,8 @@ TEST(MetricsCore, RepoCollect)
|
|
|
|
records,
|
|
|
|
records,
|
|
|
|
UnorderedElementsAre(
|
|
|
|
UnorderedElementsAre(
|
|
|
|
RecordEq(CATEGORY, "A", 0u, 0, 0, 0),
|
|
|
|
RecordEq(CATEGORY, "A", 0u, 0, 0, 0),
|
|
|
|
RecordEq(CATEGORY, "B", 6u, 12, -1, 1),
|
|
|
|
RecordEq(CATEGORY, "B", 3u, 6, -1, 1),
|
|
|
|
RecordEq(CATEGORY, "C", 12u, 24, -2, 2)
|
|
|
|
RecordEq(CATEGORY, "C", 6u, 12, -2, 2)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
);
|
|
|
|
);
|
|
|
|
// clang-format on
|
|
|
|
// clang-format on
|
|
|
@ -411,16 +399,11 @@ TEST(MetricsCore, RepoCollect)
|
|
|
|
Id metric = registry.get(CATEGORY, METRICS[j]);
|
|
|
|
Id metric = registry.get(CATEGORY, METRICS[j]);
|
|
|
|
|
|
|
|
|
|
|
|
auto collectors = repo.allCollectors(metric);
|
|
|
|
auto collectors = repo.allCollectors(metric);
|
|
|
|
const auto &doubleCols = collectors.first;
|
|
|
|
for(int k = 0; k < static_cast< int >(collectors.size()); ++k)
|
|
|
|
const auto &intCols = collectors.second;
|
|
|
|
|
|
|
|
for(int k = 0; k < static_cast< int >(doubleCols.size()); ++k)
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Record< double > ED(metric, j, 2 * j, -j, j);
|
|
|
|
|
|
|
|
Record< int > EI(metric, j, 2 * j, -j, j);
|
|
|
|
Record< int > EI(metric, j, 2 * j, -j, j);
|
|
|
|
Record< double > record1 = doubleCols[k]->load();
|
|
|
|
Record< int > record = collectors[k]->load();
|
|
|
|
Record< int > record2 = intCols[k]->load();
|
|
|
|
ASSERT_EQ(record, EI);
|
|
|
|
ASSERT_EQ(record1, ED);
|
|
|
|
|
|
|
|
ASSERT_EQ(record2, EI);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -438,15 +421,11 @@ TEST(MetricsCore, RepoCollect)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Id metric = registry.get(CATEGORY, METRICS[j]);
|
|
|
|
Id metric = registry.get(CATEGORY, METRICS[j]);
|
|
|
|
auto collectors = repo.allCollectors(metric);
|
|
|
|
auto collectors = repo.allCollectors(metric);
|
|
|
|
const auto &doubleCols = collectors.first;
|
|
|
|
|
|
|
|
const auto &intCols = collectors.second;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(int l = 0; l < static_cast< int >(doubleCols.size()); ++l)
|
|
|
|
for(int l = 0; l < static_cast< int >(collectors.size()); ++l)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Record< double > record1 = doubleCols[k]->load();
|
|
|
|
Record< int > record = collectors[k]->load();
|
|
|
|
ASSERT_THAT(record1, RecordEq(metric, 100u, 100, 100, 100));
|
|
|
|
ASSERT_THAT(record, RecordEq(metric, 100u, 100, 100, 100));
|
|
|
|
Record< int > record2 = intCols[k]->load();
|
|
|
|
|
|
|
|
ASSERT_THAT(record2, RecordEq(metric, 100u, 100, 100, 100));
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -483,32 +462,33 @@ TEST(MetricsCore, ManagerCollectSample1)
|
|
|
|
const int NUM_METRICS = sizeof(METRICS) / sizeof(*METRICS);
|
|
|
|
const int NUM_METRICS = sizeof(METRICS) / sizeof(*METRICS);
|
|
|
|
|
|
|
|
|
|
|
|
Manager manager;
|
|
|
|
Manager manager;
|
|
|
|
CollectorRepo &rep = manager.collectorRepo();
|
|
|
|
CollectorRepo< double > &rep = manager.doubleCollectorRepo();
|
|
|
|
|
|
|
|
|
|
|
|
for(int i = 0; i < NUM_CATEGORIES; ++i)
|
|
|
|
for(int i = 0; i < NUM_CATEGORIES; ++i)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
for(int j = 0; j < NUM_METRICS; ++j)
|
|
|
|
for(int j = 0; j < NUM_METRICS; ++j)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
rep.defaultDoubleCollector(CATEGORIES[i], METRICS[j])->tick(1);
|
|
|
|
rep.defaultCollector(CATEGORIES[i], METRICS[j])->tick(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
absl::Time start = absl::Now();
|
|
|
|
absl::Time start = absl::Now();
|
|
|
|
std::this_thread::sleep_for(std::chrono::microseconds(100000));
|
|
|
|
std::this_thread::sleep_for(std::chrono::microseconds(100000));
|
|
|
|
|
|
|
|
|
|
|
|
std::vector< Record< double > > records;
|
|
|
|
Records records;
|
|
|
|
Sample< double > sample = manager.collectSample(records, false);
|
|
|
|
Samples sample = manager.collectSample(records, false);
|
|
|
|
|
|
|
|
|
|
|
|
absl::Duration window = absl::Now() - start;
|
|
|
|
absl::Duration window = absl::Now() - start;
|
|
|
|
absl::Time now = absl::Now();
|
|
|
|
absl::Time now = absl::Now();
|
|
|
|
ASSERT_EQ(NUM_CATEGORIES * NUM_METRICS, records.size());
|
|
|
|
ASSERT_EQ(NUM_CATEGORIES * NUM_METRICS, records.doubleRecords.size());
|
|
|
|
ASSERT_EQ(NUM_CATEGORIES * NUM_METRICS, sample.recordCount());
|
|
|
|
ASSERT_EQ(NUM_CATEGORIES * NUM_METRICS, sample.doubleSample.recordCount());
|
|
|
|
ASSERT_EQ(NUM_CATEGORIES, sample.groupCount());
|
|
|
|
ASSERT_EQ(NUM_CATEGORIES, sample.doubleSample.groupCount());
|
|
|
|
ASSERT_THAT(sample.sampleTime(), WithinWindow(now, absl::Milliseconds(10)));
|
|
|
|
ASSERT_THAT(sample.doubleSample.sampleTime(),
|
|
|
|
|
|
|
|
WithinWindow(now, absl::Milliseconds(10)));
|
|
|
|
|
|
|
|
|
|
|
|
for(size_t i = 0; i < sample.groupCount(); ++i)
|
|
|
|
for(size_t i = 0; i < sample.doubleSample.groupCount(); ++i)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
const SampleGroup< double > &group = sample.group(i);
|
|
|
|
const SampleGroup< double > &group = sample.doubleSample.group(i);
|
|
|
|
ASSERT_EQ(NUM_METRICS, group.size());
|
|
|
|
ASSERT_EQ(NUM_METRICS, group.size());
|
|
|
|
ASSERT_THAT(group.samplePeriod(),
|
|
|
|
ASSERT_THAT(group.samplePeriod(),
|
|
|
|
WithinWindow(window, absl::Milliseconds(10)))
|
|
|
|
WithinWindow(window, absl::Milliseconds(10)))
|
|
|
@ -524,26 +504,25 @@ TEST(MetricsCore, ManagerCollectSample1)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
for(size_t j = 0; j < NUM_METRICS; ++j)
|
|
|
|
for(size_t j = 0; j < NUM_METRICS; ++j)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
DoubleCollector *col =
|
|
|
|
DoubleCollector *col = rep.defaultCollector(CATEGORIES[i], METRICS[j]);
|
|
|
|
rep.defaultDoubleCollector(CATEGORIES[i], METRICS[j]);
|
|
|
|
|
|
|
|
Record< double > record = col->load();
|
|
|
|
Record< double > record = col->load();
|
|
|
|
ASSERT_THAT(record, RecordEq(1u, 1, 1, 1));
|
|
|
|
ASSERT_THAT(record, RecordEq(1u, 1, 1, 1));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
records.clear();
|
|
|
|
records.doubleRecords.clear();
|
|
|
|
|
|
|
|
records.intRecords.clear();
|
|
|
|
sample = manager.collectSample(records, true);
|
|
|
|
sample = manager.collectSample(records, true);
|
|
|
|
|
|
|
|
|
|
|
|
ASSERT_EQ(NUM_CATEGORIES * NUM_METRICS, records.size());
|
|
|
|
ASSERT_EQ(NUM_CATEGORIES * NUM_METRICS, records.doubleRecords.size());
|
|
|
|
ASSERT_EQ(NUM_CATEGORIES * NUM_METRICS, sample.recordCount());
|
|
|
|
ASSERT_EQ(NUM_CATEGORIES * NUM_METRICS, sample.doubleSample.recordCount());
|
|
|
|
ASSERT_EQ(NUM_CATEGORIES, sample.groupCount());
|
|
|
|
ASSERT_EQ(NUM_CATEGORIES, sample.doubleSample.groupCount());
|
|
|
|
|
|
|
|
|
|
|
|
for(size_t i = 0; i < NUM_CATEGORIES; ++i)
|
|
|
|
for(size_t i = 0; i < NUM_CATEGORIES; ++i)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
for(size_t j = 0; j < NUM_METRICS; ++j)
|
|
|
|
for(size_t j = 0; j < NUM_METRICS; ++j)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
DoubleCollector *col =
|
|
|
|
DoubleCollector *col = rep.defaultCollector(CATEGORIES[i], METRICS[j]);
|
|
|
|
rep.defaultDoubleCollector(CATEGORIES[i], METRICS[j]);
|
|
|
|
|
|
|
|
Record< double > record = col->load();
|
|
|
|
Record< double > record = col->load();
|
|
|
|
ASSERT_EQ(Record< double >(record.id()), record);
|
|
|
|
ASSERT_EQ(Record< double >(record.id()), record);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -561,7 +540,7 @@ TEST(MetricsCore, ManagerCollectSample2)
|
|
|
|
Manager manager;
|
|
|
|
Manager manager;
|
|
|
|
std::vector< const Category * > allCategories;
|
|
|
|
std::vector< const Category * > allCategories;
|
|
|
|
|
|
|
|
|
|
|
|
CollectorRepo &rep = manager.collectorRepo();
|
|
|
|
CollectorRepo< double > &rep = manager.doubleCollectorRepo();
|
|
|
|
Registry ® = manager.registry();
|
|
|
|
Registry ® = manager.registry();
|
|
|
|
for(size_t i = 0; i < NUM_CATEGORIES; ++i)
|
|
|
|
for(size_t i = 0; i < NUM_CATEGORIES; ++i)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -577,8 +556,7 @@ TEST(MetricsCore, ManagerCollectSample2)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
for(size_t j = 0; j < NUM_METRICS; ++j)
|
|
|
|
for(size_t j = 0; j < NUM_METRICS; ++j)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
DoubleCollector *col =
|
|
|
|
DoubleCollector *col = rep.defaultCollector(CATEGORIES[i], METRICS[j]);
|
|
|
|
rep.defaultDoubleCollector(CATEGORIES[i], METRICS[j]);
|
|
|
|
|
|
|
|
col->clear();
|
|
|
|
col->clear();
|
|
|
|
col->tick(1);
|
|
|
|
col->tick(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -586,20 +564,20 @@ TEST(MetricsCore, ManagerCollectSample2)
|
|
|
|
|
|
|
|
|
|
|
|
// Test without a reset.
|
|
|
|
// Test without a reset.
|
|
|
|
std::vector< const Category * > cats = combIt.currentCombo;
|
|
|
|
std::vector< const Category * > cats = combIt.currentCombo;
|
|
|
|
std::vector< Record< double > > records;
|
|
|
|
Records records;
|
|
|
|
Sample< double > sample = manager.collectSample(
|
|
|
|
Samples sample = manager.collectSample(
|
|
|
|
records, absl::Span< const Category * >{cats}, false);
|
|
|
|
records, absl::Span< const Category * >{cats}, false);
|
|
|
|
|
|
|
|
|
|
|
|
ASSERT_EQ(NUM_METRICS * cats.size(), sample.recordCount());
|
|
|
|
ASSERT_EQ(NUM_METRICS * cats.size(), sample.doubleSample.recordCount());
|
|
|
|
ASSERT_EQ(cats.size(), sample.groupCount());
|
|
|
|
ASSERT_EQ(cats.size(), sample.doubleSample.groupCount());
|
|
|
|
for(size_t i = 0; i < NUM_CATEGORIES; ++i)
|
|
|
|
for(size_t i = 0; i < NUM_CATEGORIES; ++i)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// Verify the correct categories are in the sample (once)
|
|
|
|
// Verify the correct categories are in the sample (once)
|
|
|
|
const Category *CATEGORY = allCategories[i];
|
|
|
|
const Category *CATEGORY = allCategories[i];
|
|
|
|
bool found = false;
|
|
|
|
bool found = false;
|
|
|
|
for(size_t j = 0; j < sample.groupCount(); ++j)
|
|
|
|
for(size_t j = 0; j < sample.doubleSample.groupCount(); ++j)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if(CATEGORY == firstCategory(sample.group(j)))
|
|
|
|
if(CATEGORY == firstCategory(sample.doubleSample.group(j)))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
found = true;
|
|
|
|
found = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -610,29 +588,28 @@ TEST(MetricsCore, ManagerCollectSample2)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
for(size_t j = 0; j < NUM_METRICS; ++j)
|
|
|
|
for(size_t j = 0; j < NUM_METRICS; ++j)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
DoubleCollector *col =
|
|
|
|
DoubleCollector *col = rep.defaultCollector(CATEGORIES[i], METRICS[j]);
|
|
|
|
rep.defaultDoubleCollector(CATEGORIES[i], METRICS[j]);
|
|
|
|
|
|
|
|
Record< double > record = col->load();
|
|
|
|
Record< double > record = col->load();
|
|
|
|
ASSERT_THAT(record, RecordEq(1u, 1, 1, 1));
|
|
|
|
ASSERT_THAT(record, RecordEq(1u, 1, 1, 1));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
std::vector< Record< double > > records2;
|
|
|
|
Records records2;
|
|
|
|
|
|
|
|
|
|
|
|
// Test with a reset.
|
|
|
|
// Test with a reset.
|
|
|
|
sample = manager.collectSample(records2,
|
|
|
|
sample = manager.collectSample(records2,
|
|
|
|
absl::Span< const Category * >{cats}, true);
|
|
|
|
absl::Span< const Category * >{cats}, true);
|
|
|
|
|
|
|
|
|
|
|
|
ASSERT_EQ(NUM_METRICS * cats.size(), sample.recordCount());
|
|
|
|
ASSERT_EQ(NUM_METRICS * cats.size(), sample.doubleSample.recordCount());
|
|
|
|
ASSERT_EQ(cats.size(), sample.groupCount());
|
|
|
|
ASSERT_EQ(cats.size(), sample.doubleSample.groupCount());
|
|
|
|
ASSERT_EQ(records, records2);
|
|
|
|
ASSERT_EQ(records, records2);
|
|
|
|
for(size_t i = 0; i < NUM_CATEGORIES; ++i)
|
|
|
|
for(size_t i = 0; i < NUM_CATEGORIES; ++i)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// Verify the correct categories are in the sample
|
|
|
|
// Verify the correct categories are in the sample
|
|
|
|
const Category *CATEGORY = allCategories[i];
|
|
|
|
const Category *CATEGORY = allCategories[i];
|
|
|
|
bool found = false;
|
|
|
|
bool found = false;
|
|
|
|
for(size_t j = 0; j < sample.groupCount(); ++j)
|
|
|
|
for(size_t j = 0; j < sample.doubleSample.groupCount(); ++j)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if(CATEGORY == firstCategory(sample.group(j)))
|
|
|
|
if(CATEGORY == firstCategory(sample.doubleSample.group(j)))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
found = true;
|
|
|
|
found = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -643,8 +620,7 @@ TEST(MetricsCore, ManagerCollectSample2)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
for(size_t j = 0; j < NUM_METRICS; ++j)
|
|
|
|
for(size_t j = 0; j < NUM_METRICS; ++j)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
DoubleCollector *col =
|
|
|
|
DoubleCollector *col = rep.defaultCollector(CATEGORIES[i], METRICS[j]);
|
|
|
|
rep.defaultDoubleCollector(CATEGORIES[i], METRICS[j]);
|
|
|
|
|
|
|
|
Record< double > record = col->load();
|
|
|
|
Record< double > record = col->load();
|
|
|
|
if(combIt.includesElement(i))
|
|
|
|
if(combIt.includesElement(i))
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -670,7 +646,7 @@ struct MockPublisher : public Publisher
|
|
|
|
std::set< absl::Duration > times;
|
|
|
|
std::set< absl::Duration > times;
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
void
|
|
|
|
publish(const Sample< double > &sample) override
|
|
|
|
publish(const Sample< double > &sample, const Sample< int > &) override
|
|
|
|
{
|
|
|
|
{
|
|
|
|
invocations++;
|
|
|
|
invocations++;
|
|
|
|
|
|
|
|
|
|
|
@ -823,7 +799,7 @@ TEST(MetricsCore, PublishAll)
|
|
|
|
|
|
|
|
|
|
|
|
Manager manager;
|
|
|
|
Manager manager;
|
|
|
|
Registry ®istry = manager.registry();
|
|
|
|
Registry ®istry = manager.registry();
|
|
|
|
CollectorRepo &repository = manager.collectorRepo();
|
|
|
|
CollectorRepo< double > &repository = manager.doubleCollectorRepo();
|
|
|
|
|
|
|
|
|
|
|
|
auto globalPub = std::make_shared< MockPublisher >();
|
|
|
|
auto globalPub = std::make_shared< MockPublisher >();
|
|
|
|
|
|
|
|
|
|
|
@ -846,7 +822,7 @@ TEST(MetricsCore, PublishAll)
|
|
|
|
for(int j = 0; j < NUM_METRICS; ++j)
|
|
|
|
for(int j = 0; j < NUM_METRICS; ++j)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
DoubleCollector *col =
|
|
|
|
DoubleCollector *col =
|
|
|
|
repository.defaultDoubleCollector(CATEGORIES[i], METRICS[j]);
|
|
|
|
repository.defaultCollector(CATEGORIES[i], METRICS[j]);
|
|
|
|
col->clear();
|
|
|
|
col->clear();
|
|
|
|
col->tick(1);
|
|
|
|
col->tick(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|