Skip to content

Commit b5daf3f

Browse files
authored
Merge branch 'main' into allow_construct_grpc_exporters_with_existed_grpc_client
2 parents 38860d3 + d623bc5 commit b5daf3f

File tree

15 files changed

+59
-365
lines changed

15 files changed

+59
-365
lines changed

ci/do_ci.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -484,8 +484,8 @@ elif [[ "$1" == "bazel.noexcept" ]]; then
484484
# there are some exceptions and error handling code from the Prometheus Client
485485
# as well as Opentracing shim (due to some third party code in its Opentracing dependency)
486486
# that make this test always fail. Ignore these packages in the noexcept test here.
487-
bazel $BAZEL_STARTUP_OPTIONS build --copt=-fno-exceptions $BAZEL_OPTIONS_ASYNC -- //... -//exporters/prometheus/... -//examples/prometheus/... -//sdk/test/metrics:attributes_hashmap_test -//opentracing-shim/...
488-
bazel $BAZEL_STARTUP_OPTIONS test --copt=-fno-exceptions $BAZEL_TEST_OPTIONS_ASYNC -- //... -//exporters/prometheus/... -//examples/prometheus/... -//sdk/test/metrics:attributes_hashmap_test -//opentracing-shim/...
487+
bazel $BAZEL_STARTUP_OPTIONS build --copt=-fno-exceptions $BAZEL_OPTIONS_ASYNC -- //... -//exporters/prometheus/... -//examples/prometheus/... -//opentracing-shim/...
488+
bazel $BAZEL_STARTUP_OPTIONS test --copt=-fno-exceptions $BAZEL_TEST_OPTIONS_ASYNC -- //... -//exporters/prometheus/... -//examples/prometheus/... -//opentracing-shim/...
489489
exit 0
490490
elif [[ "$1" == "bazel.nortti" ]]; then
491491
# there are some exceptions and error handling code from the Prometheus Client

examples/logs_simple/main.cc

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,18 +44,18 @@ void InitTracer()
4444
auto exporter = trace_exporter::OStreamSpanExporterFactory::Create();
4545
auto processor = trace_sdk::SimpleSpanProcessorFactory::Create(std::move(exporter));
4646

47-
std::shared_ptr<opentelemetry::sdk::trace::TracerProvider> provider =
48-
opentelemetry::sdk::trace::TracerProviderFactory::Create(std::move(processor));
47+
std::shared_ptr<opentelemetry::sdk::trace::TracerProvider> sdk_provider =
48+
trace_sdk::TracerProviderFactory::Create(std::move(processor));
4949

5050
// Set the global trace provider
51-
const std::shared_ptr<trace_api::TracerProvider> &api_provider = provider;
51+
const std::shared_ptr<trace_api::TracerProvider> &api_provider = sdk_provider;
5252
trace_api::Provider::SetTracerProvider(api_provider);
5353
}
5454

5555
void CleanupTracer()
5656
{
57-
std::shared_ptr<trace_api::TracerProvider> none;
58-
trace_api::Provider::SetTracerProvider(none);
57+
std::shared_ptr<trace_api::TracerProvider> noop;
58+
trace_api::Provider::SetTracerProvider(noop);
5959
}
6060

6161
void InitLogger()
@@ -65,18 +65,18 @@ void InitLogger()
6565
std::unique_ptr<logs_sdk::LogRecordExporter>(new logs_exporter::OStreamLogRecordExporter);
6666
auto processor = logs_sdk::SimpleLogRecordProcessorFactory::Create(std::move(exporter));
6767

68-
std::shared_ptr<opentelemetry::sdk::logs::LoggerProvider> provider(
69-
opentelemetry::sdk::logs::LoggerProviderFactory::Create(std::move(processor)));
68+
std::shared_ptr<opentelemetry::sdk::logs::LoggerProvider> sdk_provider(
69+
logs_sdk::LoggerProviderFactory::Create(std::move(processor)));
7070

7171
// Set the global logger provider
72-
const std::shared_ptr<logs_api::LoggerProvider> &api_provider = provider;
72+
const std::shared_ptr<logs_api::LoggerProvider> &api_provider = sdk_provider;
7373
logs_api::Provider::SetLoggerProvider(api_provider);
7474
}
7575

7676
void CleanupLogger()
7777
{
78-
std::shared_ptr<logs_api::LoggerProvider> none;
79-
logs_api::Provider::SetLoggerProvider(none);
78+
std::shared_ptr<logs_api::LoggerProvider> noop;
79+
logs_api::Provider::SetLoggerProvider(noop);
8080
}
8181

8282
} // namespace

examples/otlp/opentelemetry-collector-config/config.dev.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
# SPDX-License-Identifier: Apache-2.0
33

44
exporters:
5-
logging:
6-
loglevel: DEBUG
5+
debug:
6+
verbosity: detailed
77
receivers:
88
otlp:
99
protocols:
@@ -17,14 +17,14 @@ service:
1717
receivers:
1818
- otlp
1919
exporters:
20-
- logging
20+
- debug
2121
logs:
2222
receivers:
2323
- otlp
2424
exporters:
25-
- logging
25+
- debug
2626
metrics:
2727
receivers:
2828
- otlp
2929
exporters:
30-
- logging
30+
- debug

examples/simple/main.cc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,18 @@ void InitTracer()
3131
auto exporter = trace_exporter::OStreamSpanExporterFactory::Create();
3232
auto processor = trace_sdk::SimpleSpanProcessorFactory::Create(std::move(exporter));
3333

34-
std::shared_ptr<opentelemetry::sdk::trace::TracerProvider> provider =
35-
opentelemetry::sdk::trace::TracerProviderFactory::Create(std::move(processor));
34+
std::shared_ptr<opentelemetry::sdk::trace::TracerProvider> sdk_provider =
35+
trace_sdk::TracerProviderFactory::Create(std::move(processor));
3636

3737
// Set the global trace provider
38-
const std::shared_ptr<opentelemetry::trace::TracerProvider> &api_provider = provider;
38+
const std::shared_ptr<opentelemetry::trace::TracerProvider> &api_provider = sdk_provider;
3939
trace_api::Provider::SetTracerProvider(api_provider);
4040
}
4141

4242
void CleanupTracer()
4343
{
44-
std::shared_ptr<opentelemetry::trace::TracerProvider> none;
45-
trace_api::Provider::SetTracerProvider(none);
44+
std::shared_ptr<opentelemetry::trace::TracerProvider> noop;
45+
trace_api::Provider::SetTracerProvider(noop);
4646
}
4747
} // namespace
4848

functional/otlp/otel-config-http.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ processors:
2222
check_interval: 5s
2323

2424
exporters:
25-
logging:
26-
loglevel: debug
25+
debug:
26+
verbosity: detailed
2727

2828
service:
2929
pipelines:
3030
traces:
3131
receivers: [otlp]
3232
processors: [memory_limiter, batch]
33-
exporters: [logging]
33+
exporters: [debug]

functional/otlp/otel-config-https.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@ processors:
2929
check_interval: 5s
3030

3131
exporters:
32-
logging:
33-
loglevel: debug
32+
debug:
33+
verbosity: detailed
3434

3535
service:
3636
pipelines:
3737
traces:
3838
receivers: [otlp]
3939
processors: [memory_limiter, batch]
40-
exporters: [logging]
40+
exporters: [debug]

functional/otlp/otel-docker-config-http.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ processors:
2121
check_interval: 5s
2222

2323
exporters:
24-
logging:
25-
loglevel: debug
24+
debug:
25+
verbosity: detailed
2626

2727
service:
2828
pipelines:
2929
traces:
3030
receivers: [otlp]
3131
processors: [memory_limiter, batch]
32-
exporters: [logging]
32+
exporters: [debug]

functional/otlp/otel-docker-config-https.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@ processors:
2828
check_interval: 5s
2929

3030
exporters:
31-
logging:
32-
loglevel: debug
31+
debug:
32+
verbosity: detailed
3333

3434
service:
3535
pipelines:
3636
traces:
3737
receivers: [otlp]
3838
processors: [memory_limiter, batch]
39-
exporters: [logging]
39+
exporters: [debug]

sdk/src/metrics/export/periodic_exporting_metric_reader.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ bool PeriodicExportingMetricReader::OnForceFlush(std::chrono::microseconds timeo
218218
// - If original `timeout` is `zero`, use that in exporter::forceflush
219219
// - Else if remaining `timeout_steady` more than zero, use that in exporter::forceflush
220220
// - Else don't invoke exporter::forceflush ( as remaining time is zero or less)
221-
if (timeout <= std::chrono::steady_clock::duration::zero())
221+
if (timeout <= std::chrono::milliseconds::duration::zero())
222222
{
223223
result =
224224
exporter_->ForceFlush(std::chrono::duration_cast<std::chrono::microseconds>(timeout));

sdk/src/metrics/meter_context.cc

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -168,46 +168,36 @@ bool MeterContext::ForceFlush(std::chrono::microseconds timeout) noexcept
168168
bool result = true;
169169
// Simultaneous flush not allowed.
170170
const std::lock_guard<opentelemetry::common::SpinLockMutex> locked(forceflush_lock_);
171-
// Convert to nanos to prevent overflow
172-
auto timeout_ns = (std::chrono::nanoseconds::max)();
173-
if (std::chrono::duration_cast<std::chrono::microseconds>(timeout_ns) > timeout)
174-
{
175-
timeout_ns = std::chrono::duration_cast<std::chrono::nanoseconds>(timeout);
176-
}
177-
178-
auto current_time = std::chrono::system_clock::now();
179-
std::chrono::system_clock::time_point expire_time;
180-
auto overflow_checker = (std::chrono::system_clock::time_point::max)();
181171

182-
// check if the expected expire time doesn't overflow.
183-
if (overflow_checker - current_time > timeout_ns)
172+
auto time_remaining = (std::chrono::steady_clock::duration::max)();
173+
if (std::chrono::duration_cast<std::chrono::microseconds>(time_remaining) > timeout)
184174
{
185-
expire_time =
186-
current_time + std::chrono::duration_cast<std::chrono::system_clock::duration>(timeout_ns);
175+
time_remaining = timeout;
187176
}
188-
else
177+
178+
auto current_time = std::chrono::steady_clock::now();
179+
auto expire_time = (std::chrono::steady_clock::time_point::max)();
180+
if (expire_time - current_time > time_remaining)
189181
{
190-
// overflow happens, reset expire time to max.
191-
expire_time = overflow_checker;
182+
expire_time = current_time + time_remaining;
192183
}
193184

194185
for (auto &collector : collectors_)
195186
{
196187
if (!std::static_pointer_cast<MetricCollector>(collector)->ForceFlush(
197-
std::chrono::duration_cast<std::chrono::microseconds>(timeout_ns)))
188+
std::chrono::duration_cast<std::chrono::microseconds>(time_remaining)))
198189
{
199190
result = false;
200191
}
201192

202-
current_time = std::chrono::system_clock::now();
203-
193+
current_time = std::chrono::steady_clock::now();
204194
if (expire_time >= current_time)
205195
{
206-
timeout_ns = std::chrono::duration_cast<std::chrono::nanoseconds>(expire_time - current_time);
196+
time_remaining = expire_time - current_time;
207197
}
208198
else
209199
{
210-
timeout_ns = std::chrono::nanoseconds::zero();
200+
time_remaining = std::chrono::steady_clock::duration::zero();
211201
}
212202
}
213203
if (!result)

0 commit comments

Comments
 (0)