Commit d9a95af1 authored by tby's avatar tby Committed by Chromium LUCI CQ

[Structured metrics] Use new proto field

We've changed the proto field used to record structured metrics, this
CL changes the metrics provider from using deprecated_structured_event
to using structured_data.events.

Bug: 1148168
Change-Id: I9b987c2e24886ee72b2f404dcd713981674cc194
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2636079Reviewed-by: default avatarRachel Wong <wrong@chromium.org>
Commit-Queue: Tony Yeoman <tby@chromium.org>
Cr-Commit-Position: refs/heads/master@{#844657}
parent 54df2438
...@@ -47,8 +47,9 @@ base::Optional<uint64_t> StringValueToUint(const base::Value* string_value) { ...@@ -47,8 +47,9 @@ base::Optional<uint64_t> StringValueToUint(const base::Value* string_value) {
void PopulateUmaProto(const base::Value* events, void PopulateUmaProto(const base::Value* events,
ChromeUserMetricsExtension* uma_proto) { ChromeUserMetricsExtension* uma_proto) {
DCHECK(events->is_list()); DCHECK(events->is_list());
auto* data_proto = uma_proto->mutable_structured_data();
for (const auto& event : events->GetList()) { for (const auto& event : events->GetList()) {
auto* event_proto = uma_proto->add_deprecated_structured_event(); auto* event_proto = data_proto->add_events();
const auto event_name_hash = StringValueToUint(event.FindKey("name")); const auto event_name_hash = StringValueToUint(event.FindKey("name"));
if (!event_name_hash) if (!event_name_hash)
......
...@@ -140,10 +140,10 @@ class StructuredMetricsProviderTest : public testing::Test { ...@@ -140,10 +140,10 @@ class StructuredMetricsProviderTest : public testing::Test {
Wait(); Wait();
} }
ChromeUserMetricsExtension GetProvidedEvents() { StructuredDataProto GetStructuredData() {
ChromeUserMetricsExtension uma_proto; ChromeUserMetricsExtension uma_proto;
provider_->ProvideCurrentSessionData(&uma_proto); provider_->ProvideCurrentSessionData(&uma_proto);
return uma_proto; return uma_proto.structured_data();
} }
// Most tests start without an existing structured_metrics.json storage file // Most tests start without an existing structured_metrics.json storage file
...@@ -183,7 +183,7 @@ TEST_F(StructuredMetricsProviderTest, EventsNotReportedWhenRecordingDisabled) { ...@@ -183,7 +183,7 @@ TEST_F(StructuredMetricsProviderTest, EventsNotReportedWhenRecordingDisabled) {
Init(); Init();
OnRecordingDisabled(); OnRecordingDisabled();
events::test_project_one::TestEventOne().SetTestMetricTwo(1).Record(); events::test_project_one::TestEventOne().SetTestMetricTwo(1).Record();
EXPECT_EQ(GetProvidedEvents().deprecated_structured_event_size(), 0); EXPECT_EQ(GetStructuredData().events_size(), 0);
ExpectOnlyFileReadError(); ExpectOnlyFileReadError();
} }
...@@ -237,7 +237,7 @@ TEST_F(StructuredMetricsProviderTest, RecordedEventAppearsInReport) { ...@@ -237,7 +237,7 @@ TEST_F(StructuredMetricsProviderTest, RecordedEventAppearsInReport) {
.SetTestMetricTwo(12345) .SetTestMetricTwo(12345)
.Record(); .Record();
EXPECT_EQ(GetProvidedEvents().deprecated_structured_event_size(), 3); EXPECT_EQ(GetStructuredData().events_size(), 3);
ExpectOnlyFileReadError(); ExpectOnlyFileReadError();
} }
...@@ -253,11 +253,11 @@ TEST_F(StructuredMetricsProviderTest, EventsReportedCorrectly) { ...@@ -253,11 +253,11 @@ TEST_F(StructuredMetricsProviderTest, EventsReportedCorrectly) {
.SetTestMetricThree(kValueTwo) .SetTestMetricThree(kValueTwo)
.Record(); .Record();
const auto uma = GetProvidedEvents(); const auto data = GetStructuredData();
ASSERT_EQ(uma.deprecated_structured_event_size(), 2); ASSERT_EQ(data.events_size(), 2);
{ // First event { // First event
const auto& event = uma.deprecated_structured_event(0); const auto& event = data.events(0);
EXPECT_EQ(event.event_name_hash(), kEventOneHash); EXPECT_EQ(event.event_name_hash(), kEventOneHash);
EXPECT_EQ(HashToHex(event.profile_event_id()), kProjectOneId); EXPECT_EQ(HashToHex(event.profile_event_id()), kProjectOneId);
ASSERT_EQ(event.metrics_size(), 2); ASSERT_EQ(event.metrics_size(), 2);
...@@ -279,7 +279,7 @@ TEST_F(StructuredMetricsProviderTest, EventsReportedCorrectly) { ...@@ -279,7 +279,7 @@ TEST_F(StructuredMetricsProviderTest, EventsReportedCorrectly) {
} }
{ // Second event { // Second event
const auto& event = uma.deprecated_structured_event(1); const auto& event = data.events(1);
EXPECT_EQ(event.event_name_hash(), kEventTwoHash); EXPECT_EQ(event.event_name_hash(), kEventTwoHash);
EXPECT_EQ(HashToHex(event.profile_event_id()), kProjectTwoId); EXPECT_EQ(HashToHex(event.profile_event_id()), kProjectTwoId);
ASSERT_EQ(event.metrics_size(), 1); ASSERT_EQ(event.metrics_size(), 1);
...@@ -306,12 +306,12 @@ TEST_F(StructuredMetricsProviderTest, EventsWithinProjectReportedWithSameID) { ...@@ -306,12 +306,12 @@ TEST_F(StructuredMetricsProviderTest, EventsWithinProjectReportedWithSameID) {
events::test_project_two::TestEventTwo().Record(); events::test_project_two::TestEventTwo().Record();
events::test_project_two::TestEventThree().Record(); events::test_project_two::TestEventThree().Record();
const auto uma = GetProvidedEvents(); const auto data = GetStructuredData();
ASSERT_EQ(uma.deprecated_structured_event_size(), 3); ASSERT_EQ(data.events_size(), 3);
const auto& event_one = uma.deprecated_structured_event(0); const auto& event_one = data.events(0);
const auto& event_two = uma.deprecated_structured_event(1); const auto& event_two = data.events(1);
const auto& event_three = uma.deprecated_structured_event(2); const auto& event_three = data.events(2);
// Check events are in the right order. // Check events are in the right order.
EXPECT_EQ(event_one.event_name_hash(), kEventOneHash); EXPECT_EQ(event_one.event_name_hash(), kEventOneHash);
...@@ -336,14 +336,14 @@ TEST_F(StructuredMetricsProviderTest, EventsClearedAfterReport) { ...@@ -336,14 +336,14 @@ TEST_F(StructuredMetricsProviderTest, EventsClearedAfterReport) {
events::test_project_one::TestEventOne().SetTestMetricTwo(1).Record(); events::test_project_one::TestEventOne().SetTestMetricTwo(1).Record();
events::test_project_one::TestEventOne().SetTestMetricTwo(2).Record(); events::test_project_one::TestEventOne().SetTestMetricTwo(2).Record();
// Should provide both the previous events. // Should provide both the previous events.
EXPECT_EQ(GetProvidedEvents().deprecated_structured_event_size(), 2); EXPECT_EQ(GetStructuredData().events_size(), 2);
// But the previous events shouldn't appear in the second report. // But the previous events shouldn't appear in the second report.
EXPECT_EQ(GetProvidedEvents().deprecated_structured_event_size(), 0); EXPECT_EQ(GetStructuredData().events_size(), 0);
events::test_project_one::TestEventOne().SetTestMetricTwo(3).Record(); events::test_project_one::TestEventOne().SetTestMetricTwo(3).Record();
// The third request should only contain the third event. // The third request should only contain the third event.
EXPECT_EQ(GetProvidedEvents().deprecated_structured_event_size(), 1); EXPECT_EQ(GetStructuredData().events_size(), 1);
ExpectOnlyFileReadError(); ExpectOnlyFileReadError();
} }
...@@ -361,10 +361,10 @@ TEST_F(StructuredMetricsProviderTest, EventsFromPreviousSessionAreReported) { ...@@ -361,10 +361,10 @@ TEST_F(StructuredMetricsProviderTest, EventsFromPreviousSessionAreReported) {
// Start a second session and ensure the event is reported. // Start a second session and ensure the event is reported.
Init(); Init();
const auto uma = GetProvidedEvents(); const auto data = GetStructuredData();
ASSERT_EQ(uma.deprecated_structured_event_size(), 1); ASSERT_EQ(data.events_size(), 1);
ASSERT_EQ(uma.deprecated_structured_event(0).metrics_size(), 1); ASSERT_EQ(data.events(0).metrics_size(), 1);
EXPECT_EQ(uma.deprecated_structured_event(0).metrics(0).value_int64(), 1234); EXPECT_EQ(data.events(0).metrics(0).value_int64(), 1234);
ExpectOnlyFileReadError(); ExpectOnlyFileReadError();
} }
...@@ -384,7 +384,7 @@ TEST_F(StructuredMetricsProviderTest, EventsNotRecordedBeforeInitialization) { ...@@ -384,7 +384,7 @@ TEST_F(StructuredMetricsProviderTest, EventsNotRecordedBeforeInitialization) {
// done, because the provider hasn't finished loading the keys from disk. // done, because the provider hasn't finished loading the keys from disk.
events::test_project_one::TestEventOne().SetTestMetricTwo(1).Record(); events::test_project_one::TestEventOne().SetTestMetricTwo(1).Record();
Wait(); Wait();
EXPECT_EQ(GetProvidedEvents().deprecated_structured_event_size(), 0); EXPECT_EQ(GetStructuredData().events_size(), 0);
ExpectOnlyFileReadError(); ExpectOnlyFileReadError();
} }
...@@ -399,7 +399,7 @@ TEST_F(StructuredMetricsProviderTest, ...@@ -399,7 +399,7 @@ TEST_F(StructuredMetricsProviderTest,
events::test_project_one::TestEventOne().SetTestMetricTwo(1).Record(); events::test_project_one::TestEventOne().SetTestMetricTwo(1).Record();
OnRecordingDisabled(); OnRecordingDisabled();
events::test_project_one::TestEventOne().SetTestMetricTwo(1).Record(); events::test_project_one::TestEventOne().SetTestMetricTwo(1).Record();
EXPECT_EQ(GetProvidedEvents().deprecated_structured_event_size(), 0); EXPECT_EQ(GetStructuredData().events_size(), 0);
ExpectOnlyFileReadError(); ExpectOnlyFileReadError();
} }
...@@ -416,7 +416,7 @@ TEST_F(StructuredMetricsProviderTest, ReportingResumesWhenEnabled) { ...@@ -416,7 +416,7 @@ TEST_F(StructuredMetricsProviderTest, ReportingResumesWhenEnabled) {
OnRecordingEnabled(); OnRecordingEnabled();
events::test_project_one::TestEventOne().SetTestMetricTwo(1).Record(); events::test_project_one::TestEventOne().SetTestMetricTwo(1).Record();
events::test_project_one::TestEventOne().SetTestMetricTwo(1).Record(); events::test_project_one::TestEventOne().SetTestMetricTwo(1).Record();
EXPECT_EQ(GetProvidedEvents().deprecated_structured_event_size(), 2); EXPECT_EQ(GetStructuredData().events_size(), 2);
ExpectOnlyFileReadError(); ExpectOnlyFileReadError();
} }
...@@ -426,11 +426,11 @@ TEST_F(StructuredMetricsProviderTest, ReportingResumesWhenEnabled) { ...@@ -426,11 +426,11 @@ TEST_F(StructuredMetricsProviderTest, ReportingResumesWhenEnabled) {
TEST_F(StructuredMetricsProviderTest, TEST_F(StructuredMetricsProviderTest,
ReportsNothingBeforeInitializationComplete) { ReportsNothingBeforeInitializationComplete) {
provider_ = std::make_unique<StructuredMetricsProvider>(); provider_ = std::make_unique<StructuredMetricsProvider>();
EXPECT_EQ(GetProvidedEvents().deprecated_structured_event_size(), 0); EXPECT_EQ(GetStructuredData().events_size(), 0);
OnRecordingEnabled(); OnRecordingEnabled();
EXPECT_EQ(GetProvidedEvents().deprecated_structured_event_size(), 0); EXPECT_EQ(GetStructuredData().events_size(), 0);
OnProfileAdded(TempDirPath()); OnProfileAdded(TempDirPath());
EXPECT_EQ(GetProvidedEvents().deprecated_structured_event_size(), 0); EXPECT_EQ(GetStructuredData().events_size(), 0);
} }
// Ensure an old structured_metrics.json file correctly migrates to the new // Ensure an old structured_metrics.json file correctly migrates to the new
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment