@@ -157,6 +157,78 @@ TEST(SetMetricFamilyTest, SumInt) {
157157 )" );
158158}
159159
160+ TEST (SetMetricFamilyTest, LastValueDouble) {
161+ const auto measure = opencensus::stats::MeasureDouble::Register (
162+ " measure_last_value_double" , " " , " units" );
163+ const std::string task = " test_task" ;
164+ const std::string view_name = " test_descriptor" ;
165+ const auto tag_key_1 = opencensus::stats::TagKey::Register (" foo" );
166+ const auto tag_key_2 = opencensus::stats::TagKey::Register (" bar" );
167+ const auto view_descriptor =
168+ opencensus::stats::ViewDescriptor ()
169+ .set_name (view_name)
170+ .set_measure (measure.GetDescriptor ().name ())
171+ .set_aggregation (opencensus::stats::Aggregation::LastValue ())
172+ .add_column (tag_key_1)
173+ .add_column (tag_key_2);
174+ const opencensus::stats::ViewData data = TestUtils::MakeViewData (
175+ view_descriptor,
176+ {{{" v1" , " v1" }, 1.0 }, {{" v1" , " v1" }, 3.0 }, {{" v1" , " v2" }, 2.0 }});
177+ io::prometheus::client::MetricFamily actual;
178+ SetMetricFamily (view_descriptor, data, &actual);
179+
180+ CompareMetricFamilies (actual, R"(
181+ name: "test_descriptor_units"
182+ type: GAUGE
183+ metric {
184+ label { name: "foo" value: "v1" }
185+ label { name: "bar" value: "v1" }
186+ gauge { value: 3.0 }
187+ }
188+ metric {
189+ label { name: "foo" value: "v1" }
190+ label { name: "bar" value: "v2" }
191+ gauge { value: 2.0 }
192+ }
193+ )" );
194+ }
195+
196+ TEST (SetMetricFamilyTest, LastValueInt64) {
197+ const auto measure = opencensus::stats::MeasureInt64::Register (
198+ " measure_last_value_int" , " " , " units" );
199+ const std::string task = " test_task" ;
200+ const std::string view_name = " test_descriptor" ;
201+ const auto tag_key_1 = opencensus::stats::TagKey::Register (" foo" );
202+ const auto tag_key_2 = opencensus::stats::TagKey::Register (" bar" );
203+ const auto view_descriptor =
204+ opencensus::stats::ViewDescriptor ()
205+ .set_name (view_name)
206+ .set_measure (measure.GetDescriptor ().name ())
207+ .set_aggregation (opencensus::stats::Aggregation::LastValue ())
208+ .add_column (tag_key_1)
209+ .add_column (tag_key_2);
210+ const opencensus::stats::ViewData data = TestUtils::MakeViewData (
211+ view_descriptor,
212+ {{{" v1" , " v1" }, 1 }, {{" v1" , " v1" }, 3 }, {{" v1" , " v2" }, 2 }});
213+ io::prometheus::client::MetricFamily actual;
214+ SetMetricFamily (view_descriptor, data, &actual);
215+
216+ CompareMetricFamilies (actual, R"(
217+ name: "test_descriptor_units"
218+ type: GAUGE
219+ metric {
220+ label { name: "foo" value: "v1" }
221+ label { name: "bar" value: "v1" }
222+ gauge { value: 3 }
223+ }
224+ metric {
225+ label { name: "foo" value: "v1" }
226+ label { name: "bar" value: "v2" }
227+ gauge { value: 2 }
228+ }
229+ )" );
230+ }
231+
160232TEST (StackdriverUtilsTest, MakeTimeSeriesDistributionDouble) {
161233 const auto measure = opencensus::stats::MeasureDouble::Register (
162234 " measure_distribution_double" , " " , " units" );
0 commit comments