@@ -350,6 +350,47 @@ TEST(StackdriverUtilsTest, MakeTimeSeriesDistributionDouble) {
350350 distribution2)));
351351}
352352
353+ TEST (StackdriverUtilsTest, MakeTimeSeriesLastValueInt) {
354+ const auto measure = opencensus::stats::MeasureInt64::Register (
355+ " measure_last_value_int" , " " , " " );
356+ const std::string task = " test_task" ;
357+ const std::string view_name = " test_descriptor" ;
358+ const auto tag_key_1 = opencensus::tags::TagKey::Register (" foo" );
359+ const auto tag_key_2 = opencensus::tags::TagKey::Register (" bar" );
360+ const auto view_descriptor =
361+ opencensus::stats::ViewDescriptor ()
362+ .set_name (view_name)
363+ .set_measure (measure.GetDescriptor ().name ())
364+ .set_aggregation (opencensus::stats::Aggregation::LastValue ())
365+ .add_column (tag_key_1)
366+ .add_column (tag_key_2);
367+ const opencensus::stats::ViewData data = TestUtils::MakeViewData (
368+ view_descriptor, {{{" v1" , " v1" }, 1.0 }, {{" v1" , " v2" }, 2.0 }});
369+ const std::vector<google::monitoring::v3::TimeSeries> time_series =
370+ MakeTimeSeries (view_descriptor, data, task);
371+
372+ for (const auto & ts : time_series) {
373+ EXPECT_EQ (absl::StrCat (" custom.googleapis.com/opencensus/" , view_name),
374+ ts.metric ().type ());
375+ EXPECT_EQ (" global" , ts.resource ().type ());
376+ ASSERT_EQ (1 , ts.points_size ());
377+ EXPECT_FALSE (ts.points (0 ).interval ().has_start_time ());
378+ EXPECT_EQ (absl::ToUnixSeconds (data.end_time ()),
379+ ts.points (0 ).interval ().end_time ().seconds ());
380+ }
381+
382+ EXPECT_THAT (time_series,
383+ ::testing::UnorderedElementsAre (
384+ testing::TimeSeriesInt ({{" opencensus_task" , task},
385+ {tag_key_1.name (), " v1" },
386+ {tag_key_2.name (), " v1" }},
387+ 1 ),
388+ testing::TimeSeriesInt({{" opencensus_task" , task},
389+ {tag_key_1.name (), " v1" },
390+ {tag_key_2.name (), " v2" }},
391+ 2 )));
392+ }
393+
353394} // namespace
354395} // namespace stats
355396} // namespace exporters
0 commit comments