[Config Parser] Move Definition of string_buffer_max
Move the definition of string_buffer_max from metric definitions to
report definitions.
These changes are for the Config Parser to recognize the
string_buffer_max is defined under the report definition.
Bug: 79464
Change-Id: I27c82b430502b7410e6a6be6f0e38ac1fc98bf09
Reviewed-on: https://fuchsia-review.googlesource.com/c/cobalt/+/669684
Reviewed-by: Laura Peskin <pesk@google.com>
Commit-Queue: Andrew Hwang <anhwang@google.com>
diff --git a/src/bin/config_parser/src/config_parser/populate_privacy_params_test.go b/src/bin/config_parser/src/config_parser/populate_privacy_params_test.go
index 822de78..af5aaa9 100644
--- a/src/bin/config_parser/src/config_parser/populate_privacy_params_test.go
+++ b/src/bin/config_parser/src/config_parser/populate_privacy_params_test.go
@@ -43,9 +43,8 @@
MetricType: config.MetricDefinition_OCCURRENCE,
}
stringMetric := config.MetricDefinition{
- MetricName: "StringMetric",
- MetricType: config.MetricDefinition_STRING,
- StringBufferMax: stringBufferMax,
+ MetricName: "StringMetric",
+ MetricType: config.MetricDefinition_STRING,
}
highPrivacyFleetwideOccurrenceCountsReport := config.ReportDefinition{
ReportName: "HighPrivacyFleetwideOccurrenceCounts",
@@ -82,11 +81,13 @@
PrivacyLevel: config.ReportDefinition_HIGH_PRIVACY,
MaxCount: maxCount,
EventVectorBufferMax: smallEventVectorBufferMax,
+ StringBufferMax: stringBufferMax,
}
noAddedPrivacyStringCountsReport := config.ReportDefinition{
- ReportName: "NoAddedPrivacyStringCounts",
- ReportType: config.ReportDefinition_STRING_COUNTS,
- PrivacyLevel: config.ReportDefinition_NO_ADDED_PRIVACY,
+ ReportName: "NoAddedPrivacyStringCounts",
+ ReportType: config.ReportDefinition_STRING_COUNTS,
+ PrivacyLevel: config.ReportDefinition_NO_ADDED_PRIVACY,
+ StringBufferMax: stringBufferMax,
}
unsetPrivacyLevelReport := config.ReportDefinition{
ReportName: "UnsetPrivacyFleetwideOccurrenceCounts",
@@ -173,9 +174,8 @@
MetricType: config.MetricDefinition_INTEGER,
}
stringMetric := config.MetricDefinition{
- MetricName: "StringMetric",
- MetricType: config.MetricDefinition_STRING,
- StringBufferMax: stringBufferMax,
+ MetricName: "StringMetric",
+ MetricType: config.MetricDefinition_STRING,
}
highPrivacyFleetwideOccurrenceCountsReport := config.ReportDefinition{
@@ -199,6 +199,7 @@
ReportType: config.ReportDefinition_UNIQUE_DEVICE_STRING_COUNTS,
PrivacyLevel: config.ReportDefinition_HIGH_PRIVACY,
EventVectorBufferMax: smallEventVectorBufferMax,
+ StringBufferMax: stringBufferMax,
}
calc, err := privacy.NewPrivacyEncodingParamsCalculatorForTesting(testParamRecords)
@@ -259,9 +260,8 @@
var maxCount uint64 = 100
stringMetric := config.MetricDefinition{
- MetricName: "StringMetric",
- MetricType: config.MetricDefinition_STRING,
- StringBufferMax: stringBufferMax,
+ MetricName: "StringMetric",
+ MetricType: config.MetricDefinition_STRING,
}
highPrivacyStringCountsReport := config.ReportDefinition{
ReportName: "HighPrivacyStringCounts",
@@ -269,22 +269,26 @@
PrivacyLevel: config.ReportDefinition_HIGH_PRIVACY,
MaxCount: maxCount,
EventVectorBufferMax: smallEventVectorBufferMax,
+ StringBufferMax: stringBufferMax,
}
noAddedPrivacyStringCountsReport := config.ReportDefinition{
- ReportName: "NoAddedPrivacyStringCounts",
- ReportType: config.ReportDefinition_STRING_COUNTS,
- PrivacyLevel: config.ReportDefinition_NO_ADDED_PRIVACY,
+ ReportName: "NoAddedPrivacyStringCounts",
+ ReportType: config.ReportDefinition_STRING_COUNTS,
+ PrivacyLevel: config.ReportDefinition_NO_ADDED_PRIVACY,
+ StringBufferMax: stringBufferMax,
}
highPrivacyUniqueDeviceStringCountsReport := config.ReportDefinition{
ReportName: "HighPrivacyUniqueDeviceStringCounts",
ReportType: config.ReportDefinition_UNIQUE_DEVICE_STRING_COUNTS,
PrivacyLevel: config.ReportDefinition_HIGH_PRIVACY,
EventVectorBufferMax: smallEventVectorBufferMax,
+ StringBufferMax: stringBufferMax,
}
noAddedPrivacyUniqueDeviceStringCountsReport := config.ReportDefinition{
- ReportName: "NoAddedPrivacyUniqueDeviceStringCounts",
- ReportType: config.ReportDefinition_UNIQUE_DEVICE_STRING_COUNTS,
- PrivacyLevel: config.ReportDefinition_NO_ADDED_PRIVACY,
+ ReportName: "NoAddedPrivacyUniqueDeviceStringCounts",
+ ReportType: config.ReportDefinition_UNIQUE_DEVICE_STRING_COUNTS,
+ PrivacyLevel: config.ReportDefinition_NO_ADDED_PRIVACY,
+ StringBufferMax: stringBufferMax,
}
calc, err := privacy.NewPrivacyEncodingParamsCalculatorForTesting(testParamRecords)
diff --git a/src/bin/config_parser/src/privacy/privacy_encoding_params.go b/src/bin/config_parser/src/privacy/privacy_encoding_params.go
index 9a34e0f..3d5211a 100644
--- a/src/bin/config_parser/src/privacy/privacy_encoding_params.go
+++ b/src/bin/config_parser/src/privacy/privacy_encoding_params.go
@@ -417,8 +417,8 @@
if err != nil {
return numBuckets, err
}
- if metric.StringBufferMax != 0 && int32(metric.StringBufferMax) < numCellsPerHash {
- numBuckets, err = uint64(metric.StringBufferMax)*uint64(numHashes), nil
+ if report.StringBufferMax != 0 && int32(report.StringBufferMax) < numCellsPerHash {
+ numBuckets, err = uint64(report.StringBufferMax)*uint64(numHashes), nil
} else {
numBuckets, err = uint64(numCellsPerHash*numHashes), nil
}
diff --git a/src/bin/config_parser/src/privacy/privacy_encoding_params_test.go b/src/bin/config_parser/src/privacy/privacy_encoding_params_test.go
index d439bba..9cf300f 100644
--- a/src/bin/config_parser/src/privacy/privacy_encoding_params_test.go
+++ b/src/bin/config_parser/src/privacy/privacy_encoding_params_test.go
@@ -267,15 +267,10 @@
MetricType: config.MetricDefinition_INTEGER_HISTOGRAM,
IntBuckets: &buckets,
}
- stringMetricNoStringBufferMax := config.MetricDefinition{
- MetricName: "StringMetricNoStringBufferMax",
+ stringMetric := config.MetricDefinition{
+ MetricName: "StringMetric",
MetricType: config.MetricDefinition_STRING,
}
- stringMetricWithStringBufferMax := config.MetricDefinition{
- MetricName: "StringMetricWithStringBufferMax",
- MetricType: config.MetricDefinition_STRING,
- StringBufferMax: stringBufferMax,
- }
// Reports
fleetwideOccurrenceCountsReport := config.ReportDefinition{
@@ -350,11 +345,23 @@
ReportName: "StringCounts",
ReportType: config.ReportDefinition_STRING_COUNTS,
EventVectorBufferMax: eventVectorBufferMax,
+ StringBufferMax: stringBufferMax,
+ }
+ stringCountsReportWithNoStringBufferMax := config.ReportDefinition{
+ ReportName: "StringCountsWithNoStringBufferMax",
+ ReportType: config.ReportDefinition_STRING_COUNTS,
+ EventVectorBufferMax: eventVectorBufferMax,
}
uniqueDeviceStringCountsReport := config.ReportDefinition{
ReportName: "UniqueDeviceStringCounts",
ReportType: config.ReportDefinition_UNIQUE_DEVICE_STRING_COUNTS,
EventVectorBufferMax: eventVectorBufferMax,
+ StringBufferMax: stringBufferMax,
+ }
+ uniqueDeviceStringCountsReportWithNoStringBufferMax := config.ReportDefinition{
+ ReportName: "UniqueDeviceStringCountsWithNoStringBufferMax",
+ ReportType: config.ReportDefinition_UNIQUE_DEVICE_STRING_COUNTS,
+ EventVectorBufferMax: eventVectorBufferMax,
}
unsetReportTypeReport := config.ReportDefinition{
ReportName: "UnsetReportType",
@@ -392,10 +399,10 @@
{args{&integerHistogramMetric, &fleetwideHistogramsForIntHistogramReport}, true,
eventVectorBufferMax * uint64(numLinearBuckets)},
- {args{&stringMetricNoStringBufferMax, &stringCountsReport}, true, eventVectorBufferMax * numCellsPerHash * numHashes},
- {args{&stringMetricWithStringBufferMax, &stringCountsReport}, true, eventVectorBufferMax * uint64(stringBufferMax) * numHashes},
- {args{&stringMetricNoStringBufferMax, &uniqueDeviceStringCountsReport}, true, eventVectorBufferMax * numCellsPerHash * numHashes},
- {args{&stringMetricWithStringBufferMax, &uniqueDeviceStringCountsReport}, true, eventVectorBufferMax * uint64(stringBufferMax) * numHashes},
+ {args{&stringMetric, &stringCountsReportWithNoStringBufferMax}, true, eventVectorBufferMax * numCellsPerHash * numHashes},
+ {args{&stringMetric, &stringCountsReport}, true, eventVectorBufferMax * uint64(stringBufferMax) * numHashes},
+ {args{&stringMetric, &uniqueDeviceStringCountsReportWithNoStringBufferMax}, true, eventVectorBufferMax * numCellsPerHash * numHashes},
+ {args{&stringMetric, &uniqueDeviceStringCountsReport}, true, eventVectorBufferMax * uint64(stringBufferMax) * numHashes},
// Invalid input:
// This report does not have a report type set.