Skip to content

Commit 9a3fcc9

Browse files
committed
Address feedback from code assistant
1 parent 2ce610a commit 9a3fcc9

2 files changed

Lines changed: 39 additions & 40 deletions

File tree

google/cloud/storage/internal/async/reader_connection_telemetry.cc

Lines changed: 25 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -28,48 +28,35 @@ namespace storage_internal {
2828
GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN
2929

3030
#ifdef GOOGLE_CLOUD_CPP_STORAGE_WITH_OTEL_METRICS
31-
namespace {
32-
struct ReadLatencyMetrics {
33-
opentelemetry::nostd::shared_ptr<opentelemetry::metrics::Histogram<double>>
34-
queue_hist;
35-
opentelemetry::nostd::shared_ptr<opentelemetry::metrics::Histogram<double>>
36-
network_hist;
37-
opentelemetry::nostd::shared_ptr<opentelemetry::metrics::Histogram<double>>
38-
output_hist;
39-
40-
static ReadLatencyMetrics const& Instance() {
41-
static ReadLatencyMetrics const metrics = [] {
42-
opentelemetry::nostd::shared_ptr<opentelemetry::metrics::Meter> meter =
43-
opentelemetry::metrics::Provider::GetMeterProvider()->GetMeter(
44-
"google-cloud-cpp", version::version_string());
45-
return ReadLatencyMetrics{
46-
meter->CreateDoubleHistogram("gl-cpp.latency.bidi_read.queue",
47-
"Read Range Queue Latency", "us"),
48-
meter->CreateDoubleHistogram("gl-cpp.latency.bidi_read.network",
49-
"Read Range Network Latency", "us"),
50-
meter->CreateDoubleHistogram("gl-cpp.latency.bidi_read.internal",
51-
"Read Range Internal Overhead", "us"),
52-
};
53-
}();
54-
return metrics;
55-
}
56-
};
57-
} // namespace
31+
ReaderConnectionTelemetry::ReaderConnectionTelemetry() {
32+
opentelemetry::nostd::shared_ptr<opentelemetry::metrics::Meter> meter =
33+
opentelemetry::metrics::Provider::GetMeterProvider()->GetMeter(
34+
"google-cloud-cpp", version::version_string());
35+
metrics_ = {
36+
meter->CreateDoubleHistogram("gl-cpp.latency.bidi_read.queue",
37+
"Read Range Queue Latency", "us"),
38+
meter->CreateDoubleHistogram("gl-cpp.latency.bidi_read.network",
39+
"Read Range Network Latency", "us"),
40+
meter->CreateDoubleHistogram("gl-cpp.latency.bidi_read.internal",
41+
"Read Range Internal Overhead", "us"),
42+
};
43+
}
5844

5945
void ReaderConnectionTelemetry::RecordMetrics(std::string const& bucket_name,
6046
double p1, double p2,
6147
double p3) const {
62-
auto const& metrics = ReadLatencyMetrics::Instance();
63-
if (metrics.queue_hist)
64-
metrics.queue_hist->Record(p1, {{"gcp.storage.bucket", bucket_name}},
65-
opentelemetry::context::Context{});
66-
if (metrics.network_hist)
67-
metrics.network_hist->Record(p2, {{"gcp.storage.bucket", bucket_name}},
68-
opentelemetry::context::Context{});
69-
if (metrics.output_hist)
70-
metrics.output_hist->Record(p3, {{"gcp.storage.bucket", bucket_name}},
48+
if (metrics_.queue_hist)
49+
metrics_.queue_hist->Record(p1, {{"gcp.storage.bucket", bucket_name}},
7150
opentelemetry::context::Context{});
51+
if (metrics_.network_hist)
52+
metrics_.network_hist->Record(p2, {{"gcp.storage.bucket", bucket_name}},
53+
opentelemetry::context::Context{});
54+
if (metrics_.output_hist)
55+
metrics_.output_hist->Record(p3, {{"gcp.storage.bucket", bucket_name}},
56+
opentelemetry::context::Context{});
7257
}
58+
#else
59+
ReaderConnectionTelemetry::ReaderConnectionTelemetry() = default;
7360
#endif
7461

7562
void ReaderConnectionTelemetry::RecordRead(
@@ -81,9 +68,8 @@ void ReaderConnectionTelemetry::RecordRead(
8168
std::chrono::steady_clock::time_point t5 = ReadPayloadImpl::GetT5(payload);
8269
std::chrono::steady_clock::time_point t6 = ReadPayloadImpl::GetT6(payload);
8370

84-
if (t4 != std::chrono::steady_clock::time_point{} &&
85-
t5 != std::chrono::steady_clock::time_point{} &&
86-
t6 != std::chrono::steady_clock::time_point{}) {
71+
if (t4 != std::chrono::steady_clock::time_point{} && t4 <= t5 && t5 <= t6 &&
72+
t6 <= t7) {
8773
double p1 = std::chrono::duration<double, std::micro>(t5 - t4).count();
8874
double p2 = std::chrono::duration<double, std::micro>(t6 - t5).count();
8975
double p3 = std::chrono::duration<double, std::micro>(t7 - t6).count();

google/cloud/storage/internal/async/reader_connection_telemetry.h

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
#include "google/cloud/storage/async/reader_connection.h"
1919
#include "google/cloud/internal/opentelemetry.h"
2020
#include "google/cloud/version.h"
21+
#ifdef GOOGLE_CLOUD_CPP_STORAGE_WITH_OTEL_METRICS
22+
#include <opentelemetry/metrics/meter.h>
23+
#endif
2124
#include <chrono>
2225
#include <string>
2326
#include <string_view>
@@ -29,7 +32,7 @@ GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN
2932

3033
class ReaderConnectionTelemetry {
3134
public:
32-
ReaderConnectionTelemetry() = default;
35+
ReaderConnectionTelemetry();
3336

3437
void RecordRead(
3538
storage::ReadPayload const& payload,
@@ -41,6 +44,16 @@ class ReaderConnectionTelemetry {
4144
#ifdef GOOGLE_CLOUD_CPP_STORAGE_WITH_OTEL_METRICS
4245
void RecordMetrics(std::string const& bucket_name, double p1, double p2,
4346
double p3) const;
47+
48+
struct ReadLatencyMetrics {
49+
opentelemetry::nostd::shared_ptr<opentelemetry::metrics::Histogram<double>>
50+
queue_hist;
51+
opentelemetry::nostd::shared_ptr<opentelemetry::metrics::Histogram<double>>
52+
network_hist;
53+
opentelemetry::nostd::shared_ptr<opentelemetry::metrics::Histogram<double>>
54+
output_hist;
55+
};
56+
ReadLatencyMetrics metrics_;
4457
#endif
4558
};
4659

0 commit comments

Comments
 (0)