[TeX] Introduced config properties for Histogram metric

- Added Histogram metric config samples

Bug: 262791652
Test: m libexpressconfig_proto_host
Change-Id: Ic8e4c77309a28bcce371c46cc790a4789c0b1c01
diff --git a/stats/express/catalog/tex_test.cfg b/stats/express/catalog/tex_test.cfg
index ede6cf2..25fa72a 100644
--- a/stats/express/catalog/tex_test.cfg
+++ b/stats/express/catalog/tex_test.cfg
@@ -12,3 +12,40 @@
     owner_email: "yanmin@google.com"
     unit: UNIT_COUNT
 }
+
+express_metric {
+    # hash for reference -8323169799906496731
+    id: "tex_test.value_telemetry_express_fixed_range_histogram"
+    type: HISTOGRAM
+    display_name: "Test express fixed_range counter histogram metric"
+    description: "Longer test express counter histogram metric description"
+    owner_email: "sharaienko@google.com"
+    owner_email: "yanmin@google.com"
+    unit: UNIT_COUNT
+    histogram_options {
+        uniform_bins {
+            count: 50
+            min: 1
+            max: 1000000
+        }
+    }
+}
+
+express_metric {
+    # hash for reference 3864259057208837246
+    id: "tex_test.value_telemetry_express_scaled_factor_histogram"
+    type: HISTOGRAM
+    display_name: "Test express scaled_factor counter histogram metric"
+    description: "Longer test express counter histogram metric description"
+    owner_email: "sharaienko@google.com"
+    owner_email: "yanmin@google.com"
+    unit: UNIT_COUNT
+    histogram_options {
+        scaled_bins {
+            count: 50
+            min: 1
+            first_bin_width: 10
+            scale: 1.6
+        }
+    }
+}
diff --git a/stats/express/express_config.proto b/stats/express/express_config.proto
index b7564c2..6c2c8b7 100644
--- a/stats/express/express_config.proto
+++ b/stats/express/express_config.proto
@@ -30,6 +30,28 @@
 enum MetricType {
     METRIC_TYPE_UNKNOWN = 0;
     COUNTER = 1;
+    HISTOGRAM = 2;
+}
+
+message HistogramOptions {
+
+    message UniformBinningOptions {
+        optional int32 count = 1;
+        optional float min = 2;
+        optional float max = 3;
+    }
+
+    message ScaledBinningOptions  {
+        optional int32 count = 1;
+        optional float min = 2;
+        optional float first_bin_width = 3;
+        optional float scale = 4;
+    }
+
+    oneof options {
+        UniformBinningOptions uniform_bins = 1;
+        ScaledBinningOptions scaled_bins = 2;
+    }
 }
 
 message ExpressMetric {
@@ -44,6 +66,10 @@
     repeated string owner_email = 5;
 
     optional MetricUnit unit = 6;
+
+    oneof options {
+        HistogramOptions histogram_options = 7;
+    }
 }
 
 message ExpressMetricConfigFile {