Skip to content

Commit 0a8bc82

Browse files
committed
Code review feedback
1 parent a4b0978 commit 0a8bc82

File tree

5 files changed

+415
-38
lines changed

5 files changed

+415
-38
lines changed

exporters/otlp/src/otlp_environment.cc

Lines changed: 114 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -80,32 +80,36 @@ static bool GetStringDualEnvVar(const char *signal_name,
8080
return exists;
8181
}
8282

83-
static std::uint32_t GetUintEnvVarOrDefault(opentelemetry::nostd::string_view signal_env,
84-
opentelemetry::nostd::string_view generic_env,
85-
std::uint32_t default_value)
83+
static bool GetUintDualEnvVar(const char *signal_name,
84+
const char *generic_name,
85+
std::uint32_t &value)
8686
{
87-
std::string value;
87+
bool exists;
8888

89-
if (GetStringDualEnvVar(signal_env.data(), generic_env.data(), value))
89+
exists = sdk_common::GetUintEnvironmentVariable(signal_name, value);
90+
if (exists)
9091
{
91-
return static_cast<std::uint32_t>(std::strtoul(value.c_str(), nullptr, 10));
92+
return true;
9293
}
9394

94-
return default_value;
95+
exists = sdk_common::GetUintEnvironmentVariable(generic_name, value);
96+
97+
return exists;
9598
}
9699

97-
static float GetFloatEnvVarOrDefault(opentelemetry::nostd::string_view signal_env,
98-
opentelemetry::nostd::string_view generic_env,
99-
float default_value)
100+
static float GetFloatDualEnvVar(const char *signal_name, const char *generic_name, float &value)
100101
{
101-
std::string value;
102+
bool exists;
102103

103-
if (GetStringDualEnvVar(signal_env.data(), generic_env.data(), value))
104+
exists = sdk_common::GetFloatEnvironmentVariable(signal_name, value);
105+
if (exists)
104106
{
105-
return std::strtof(value.c_str(), nullptr);
107+
return true;
106108
}
107109

108-
return default_value;
110+
exists = sdk_common::GetFloatEnvironmentVariable(generic_name, value);
111+
112+
return exists;
109113
}
110114

111115
std::string GetOtlpDefaultGrpcTracesEndpoint()
@@ -1157,84 +1161,168 @@ std::uint32_t GetOtlpDefaultTracesRetryMaxAttempts()
11571161
{
11581162
constexpr char kSignalEnv[] = "OTEL_EXPORTER_OTLP_TRACES_RETRY_MAX_ATTEMPTS";
11591163
constexpr char kGenericEnv[] = "OTEL_EXPORTER_OTLP_RETRY_MAX_ATTEMPTS";
1160-
return GetUintEnvVarOrDefault(kSignalEnv, kGenericEnv, 5U);
1164+
std::uint32_t value;
1165+
1166+
if (!GetUintDualEnvVar(kSignalEnv, kGenericEnv, value))
1167+
{
1168+
return 5U;
1169+
}
1170+
1171+
return value;
11611172
}
11621173

11631174
std::uint32_t GetOtlpDefaultMetricsRetryMaxAttempts()
11641175
{
11651176
constexpr char kSignalEnv[] = "OTEL_EXPORTER_OTLP_METRICS_RETRY_MAX_ATTEMPTS";
11661177
constexpr char kGenericEnv[] = "OTEL_EXPORTER_OTLP_RETRY_MAX_ATTEMPTS";
1167-
return GetUintEnvVarOrDefault(kSignalEnv, kGenericEnv, 5U);
1178+
std::uint32_t value;
1179+
1180+
if (!GetUintDualEnvVar(kSignalEnv, kGenericEnv, value))
1181+
{
1182+
return 5U;
1183+
}
1184+
1185+
return value;
11681186
}
11691187

11701188
std::uint32_t GetOtlpDefaultLogsRetryMaxAttempts()
11711189
{
11721190
constexpr char kSignalEnv[] = "OTEL_EXPORTER_OTLP_LOGS_RETRY_MAX_ATTEMPTS";
11731191
constexpr char kGenericEnv[] = "OTEL_EXPORTER_OTLP_RETRY_MAX_ATTEMPTS";
1174-
return GetUintEnvVarOrDefault(kSignalEnv, kGenericEnv, 5U);
1192+
std::uint32_t value;
1193+
1194+
if (!GetUintDualEnvVar(kSignalEnv, kGenericEnv, value))
1195+
{
1196+
return 5U;
1197+
}
1198+
1199+
return value;
11751200
}
11761201

11771202
float GetOtlpDefaultTracesRetryInitialBackoff()
11781203
{
11791204
constexpr char kSignalEnv[] = "OTEL_EXPORTER_OTLP_TRACES_RETRY_INITIAL_BACKOFF";
11801205
constexpr char kGenericEnv[] = "OTEL_EXPORTER_OTLP_RETRY_INITIAL_BACKOFF";
1181-
return GetFloatEnvVarOrDefault(kSignalEnv, kGenericEnv, 1.0);
1206+
float value;
1207+
1208+
if (!GetFloatDualEnvVar(kSignalEnv, kGenericEnv, value))
1209+
{
1210+
return 1.0f;
1211+
}
1212+
1213+
return value;
11821214
}
11831215

11841216
float GetOtlpDefaultMetricsRetryInitialBackoff()
11851217
{
11861218
constexpr char kSignalEnv[] = "OTEL_EXPORTER_OTLP_METRICS_RETRY_INITIAL_BACKOFF";
11871219
constexpr char kGenericEnv[] = "OTEL_EXPORTER_OTLP_RETRY_INITIAL_BACKOFF";
1188-
return GetFloatEnvVarOrDefault(kSignalEnv, kGenericEnv, 1.0);
1220+
float value;
1221+
1222+
if (!GetFloatDualEnvVar(kSignalEnv, kGenericEnv, value))
1223+
{
1224+
return 1.0f;
1225+
}
1226+
1227+
return value;
11891228
}
11901229

11911230
float GetOtlpDefaultLogsRetryInitialBackoff()
11921231
{
11931232
constexpr char kSignalEnv[] = "OTEL_EXPORTER_OTLP_LOGS_RETRY_INITIAL_BACKOFF";
11941233
constexpr char kGenericEnv[] = "OTEL_EXPORTER_OTLP_RETRY_INITIAL_BACKOFF";
1195-
return GetFloatEnvVarOrDefault(kSignalEnv, kGenericEnv, 1.0);
1234+
float value;
1235+
1236+
if (!GetFloatDualEnvVar(kSignalEnv, kGenericEnv, value))
1237+
{
1238+
return 1.0f;
1239+
}
1240+
1241+
return value;
11961242
}
11971243

11981244
float GetOtlpDefaultTracesRetryMaxBackoff()
11991245
{
12001246
constexpr char kSignalEnv[] = "OTEL_EXPORTER_OTLP_TRACES_RETRY_MAX_BACKOFF";
12011247
constexpr char kGenericEnv[] = "OTEL_EXPORTER_OTLP_RETRY_MAX_BACKOFF";
1202-
return GetFloatEnvVarOrDefault(kSignalEnv, kGenericEnv, 5.0);
1248+
float value;
1249+
1250+
if (!GetFloatDualEnvVar(kSignalEnv, kGenericEnv, value))
1251+
{
1252+
return 5.0f;
1253+
}
1254+
1255+
return value;
12031256
}
12041257

12051258
float GetOtlpDefaultMetricsRetryMaxBackoff()
12061259
{
12071260
constexpr char kSignalEnv[] = "OTEL_EXPORTER_OTLP_METRICS_RETRY_MAX_BACKOFF";
12081261
constexpr char kGenericEnv[] = "OTEL_EXPORTER_OTLP_RETRY_MAX_BACKOFF";
1209-
return GetFloatEnvVarOrDefault(kSignalEnv, kGenericEnv, 5.0);
1262+
float value;
1263+
1264+
if (!GetFloatDualEnvVar(kSignalEnv, kGenericEnv, value))
1265+
{
1266+
return 5.0f;
1267+
}
1268+
1269+
return value;
12101270
}
12111271

12121272
float GetOtlpDefaultLogsRetryMaxBackoff()
12131273
{
12141274
constexpr char kSignalEnv[] = "OTEL_EXPORTER_OTLP_LOGS_RETRY_MAX_BACKOFF";
12151275
constexpr char kGenericEnv[] = "OTEL_EXPORTER_OTLP_RETRY_MAX_BACKOFF";
1216-
return GetFloatEnvVarOrDefault(kSignalEnv, kGenericEnv, 5.0);
1276+
float value;
1277+
1278+
if (!GetFloatDualEnvVar(kSignalEnv, kGenericEnv, value))
1279+
{
1280+
return 5.0f;
1281+
}
1282+
1283+
return value;
12171284
}
12181285

12191286
float GetOtlpDefaultTracesRetryBackoffMultiplier()
12201287
{
12211288
constexpr char kSignalEnv[] = "OTEL_EXPORTER_OTLP_TRACES_RETRY_BACKOFF_MULTIPLIER";
12221289
constexpr char kGenericEnv[] = "OTEL_EXPORTER_OTLP_RETRY_BACKOFF_MULTIPLIER";
1223-
return GetFloatEnvVarOrDefault(kSignalEnv, kGenericEnv, 1.5f);
1290+
float value;
1291+
1292+
if (!GetFloatDualEnvVar(kSignalEnv, kGenericEnv, value))
1293+
{
1294+
return 1.5f;
1295+
}
1296+
1297+
return value;
12241298
}
12251299

12261300
float GetOtlpDefaultMetricsRetryBackoffMultiplier()
12271301
{
12281302
constexpr char kSignalEnv[] = "OTEL_EXPORTER_OTLP_METRICS_RETRY_BACKOFF_MULTIPLIER";
12291303
constexpr char kGenericEnv[] = "OTEL_EXPORTER_OTLP_RETRY_BACKOFF_MULTIPLIER";
1230-
return GetFloatEnvVarOrDefault(kSignalEnv, kGenericEnv, 1.5f);
1304+
float value;
1305+
1306+
if (!GetFloatDualEnvVar(kSignalEnv, kGenericEnv, value))
1307+
{
1308+
return 1.5f;
1309+
}
1310+
1311+
return value;
12311312
}
12321313

12331314
float GetOtlpDefaultLogsRetryBackoffMultiplier()
12341315
{
12351316
constexpr char kSignalEnv[] = "OTEL_EXPORTER_OTLP_LOGS_RETRY_BACKOFF_MULTIPLIER";
12361317
constexpr char kGenericEnv[] = "OTEL_EXPORTER_OTLP_RETRY_BACKOFF_MULTIPLIER";
1237-
return GetFloatEnvVarOrDefault(kSignalEnv, kGenericEnv, 1.5f);
1318+
float value;
1319+
1320+
if (!GetFloatDualEnvVar(kSignalEnv, kGenericEnv, value))
1321+
{
1322+
return 1.5f;
1323+
}
1324+
1325+
return value;
12381326
}
12391327

12401328
} // namespace otlp

exporters/otlp/test/otlp_grpc_exporter_test.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
# include "opentelemetry/exporters/otlp/otlp_grpc_exporter.h"
2020
# include "opentelemetry/exporters/otlp/otlp_grpc_exporter_factory.h"
2121
# include "opentelemetry/exporters/otlp/protobuf_include_prefix.h"
22-
# include "opentelemetry/nostd/shared_ptr.h"
2322

2423
// Problematic code that pulls in Gmock and breaks with vs2019/c++latest :
2524
# include "opentelemetry/proto/collector/trace/v1/trace_service_mock.grpc.pb.h"
@@ -28,6 +27,7 @@
2827

2928
# include "opentelemetry/exporters/otlp/protobuf_include_suffix.h"
3029

30+
# include "opentelemetry/nostd/shared_ptr.h"
3131
# include "opentelemetry/sdk/trace/simple_processor.h"
3232
# include "opentelemetry/sdk/trace/simple_processor_factory.h"
3333
# include "opentelemetry/sdk/trace/tracer_provider.h"

sdk/include/opentelemetry/sdk/common/env_variables.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#pragma once
55

66
#include <chrono>
7+
#include <cstdint>
78
#include <string>
89

910
#include "opentelemetry/version.h"
@@ -39,6 +40,22 @@ bool GetDurationEnvironmentVariable(const char *env_var_name,
3940
*/
4041
bool GetStringEnvironmentVariable(const char *env_var_name, std::string &value);
4142

43+
/**
44+
Read a uint32_t environment variable.
45+
@param env_var_name Environment variable name
46+
@param [out] value Variable value, if it exists
47+
@return true if the variable exists
48+
*/
49+
bool GetUintEnvironmentVariable(const char *env_var_name, std::uint32_t &value);
50+
51+
/**
52+
Read a float environment variable.
53+
@param env_var_name Environment variable name
54+
@param [out] value Variable value, if it exists
55+
@return true if the variable exists
56+
*/
57+
bool GetFloatEnvironmentVariable(const char *env_var_name, float &value);
58+
4259
#if defined(_MSC_VER)
4360
inline int setenv(const char *name, const char *value, int)
4461
{

0 commit comments

Comments
 (0)