Skip to content

Commit 8ada4c8

Browse files
committed
format
Signed-off-by: Xuyang Tao <[email protected]>
1 parent ce5974b commit 8ada4c8

File tree

3 files changed

+21
-21
lines changed

3 files changed

+21
-21
lines changed

source/extensions/stat_sinks/open_telemetry/config.cc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,9 @@ OpenTelemetrySinkFactory::createStatsSink(const Protobuf::Message& config,
4141
std::make_shared<OpenTelemetryGrpcMetricsExporterImpl>(otlp_options,
4242
client_or_error.value());
4343

44-
return std::make_unique<OpenTelemetryGrpcSink>(otlp_metrics_flusher, grpc_metrics_exporter);
44+
return std::make_unique<OpenTelemetryGrpcSink>(
45+
otlp_metrics_flusher, grpc_metrics_exporter,
46+
server.timeSource().systemTime().time_since_epoch().count());
4547
}
4648

4749
default:

source/extensions/stat_sinks/open_telemetry/open_telemetry_impl.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,9 +261,11 @@ using OpenTelemetryGrpcMetricsExporterImplPtr =
261261
class OpenTelemetryGrpcSink : public Stats::Sink {
262262
public:
263263
OpenTelemetryGrpcSink(const OtlpMetricsFlusherSharedPtr& otlp_metrics_flusher,
264-
const OpenTelemetryGrpcMetricsExporterSharedPtr& grpc_metrics_exporter)
264+
const OpenTelemetryGrpcMetricsExporterSharedPtr& grpc_metrics_exporter,
265+
int64_t create_time_ns)
265266
: metrics_flusher_(otlp_metrics_flusher), metrics_exporter_(grpc_metrics_exporter),
266-
last_flush_time_ns_(0) {}
267+
// Use the time when the sink is created as the last flush time.
268+
last_flush_time_ns_(create_time_ns) {}
267269

268270
// Stats::Sink
269271
void flush(Stats::MetricSnapshot& snapshot) override {

test/extensions/stats_sinks/open_telemetry/open_telemetry_impl_test.cc

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "envoy/grpc/async_client.h"
22

3+
#include "source/common/protobuf/protobuf.h"
34
#include "source/common/tracing/null_span_impl.h"
45
#include "source/extensions/stat_sinks/open_telemetry/open_telemetry_impl.h"
56

@@ -9,7 +10,6 @@
910
#include "test/mocks/stats/mocks.h"
1011
#include "test/test_common/simulated_time_system.h"
1112

12-
#include "google/protobuf/text_format.h"
1313
#include "gtest/gtest.h"
1414

1515
using testing::_;
@@ -914,32 +914,28 @@ class OpenTelemetryGrpcSinkTests : public OpenTelemetryStatsSinkTests {
914914
public:
915915
OpenTelemetryGrpcSinkTests()
916916
: flusher_(std::make_shared<MockOtlpMetricsFlusher>()),
917-
exporter_(std::make_shared<MockOpenTelemetryGrpcMetricsExporter>()) {
918-
time_t expected_time_2 = 1213;
919-
expected_time_ns_2_ = expected_time_2 * 1000000000;
920-
SystemTime time_2 = std::chrono::system_clock::from_time_t(expected_time_2);
921-
EXPECT_CALL(snapshot2_, snapshotTime()).WillRepeatedly(Return(time_2));
922-
}
917+
exporter_(std::make_shared<MockOpenTelemetryGrpcMetricsExporter>()) {}
923918

924-
long long int expected_time_ns_2_;
925-
NiceMock<Stats::MockMetricSnapshot> snapshot2_;
926-
const std::shared_ptr<MockOtlpMetricsFlusher> flusher_;
927-
const std::shared_ptr<MockOpenTelemetryGrpcMetricsExporter> exporter_;
919+
std::shared_ptr<MockOtlpMetricsFlusher> flusher_;
920+
std::shared_ptr<MockOpenTelemetryGrpcMetricsExporter> exporter_;
928921
};
929922

930923
TEST_F(OpenTelemetryGrpcSinkTests, BasicFlow) {
931-
// First flush: last_flush_time_ns should be 0.
932-
MetricsExportRequestPtr request1 = std::make_unique<MetricsExportRequest>();
933-
EXPECT_CALL(*flusher_, flush(_, 0)).WillOnce(Return(ByMove(std::move(request1))));
934-
EXPECT_CALL(*exporter_, send(_)).Times(2);
924+
// Initialize the sink with a created_at time of 1000.
925+
OpenTelemetryGrpcSink sink(flusher_, exporter_, 1000);
935926

936-
OpenTelemetryGrpcSink sink(flusher_, exporter_);
927+
// First flush: last_flush_time_ns should be the created_at value (1000).
928+
MetricsExportRequestPtr request1 = std::make_unique<MetricsExportRequest>();
929+
EXPECT_CALL(*flusher_, flush(_, 1000)).WillOnce(Return(ByMove(std::move(request1))));
930+
EXPECT_CALL(*exporter_, send(_));
937931
sink.flush(snapshot_);
938932

939-
// Second flush: last_flush_time_ns should be the time of the first snapshot.
933+
// Second flush: last_flush_time_ns should be the snapshotTime() of the
934+
// snapshot used in the first flush, which is expected_time_ns_.
940935
MetricsExportRequestPtr request2 = std::make_unique<MetricsExportRequest>();
941936
EXPECT_CALL(*flusher_, flush(_, expected_time_ns_)).WillOnce(Return(ByMove(std::move(request2))));
942-
sink.flush(snapshot2_);
937+
EXPECT_CALL(*exporter_, send(_));
938+
sink.flush(snapshot_);
943939
}
944940

945941
} // namespace

0 commit comments

Comments
 (0)