-
Notifications
You must be signed in to change notification settings - Fork 437
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added feature flag for asynchronous export #1295
Added feature flag for asynchronous export #1295
Conversation
LGTM in general, @owent may want to have a look into this, specifically the batch span/log processor part. Also, we should add a CI action to test the async feature ( e.g, add another test similar to bazel_test which builds using ENABLE_ASYNC_EXPORT macro). |
Agree, I think we can just add |
@@ -87,6 +87,7 @@ class OtlpHttpExporter final : public opentelemetry::sdk::trace::SpanExporter | |||
const nostd::span<std::unique_ptr<opentelemetry::sdk::trace::Recordable>> &spans) noexcept | |||
override; | |||
|
|||
#ifdef ENABLE_ASYNC_EXPORT |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you please also put max_concurrent_requests
in OtlpHttpExporterOptions
into ENABLE_ASYNC_EXPORT
? It's useless when async exporting is disabled.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
@@ -88,6 +88,7 @@ class OtlpHttpLogExporter final : public opentelemetry::sdk::logs::LogExporter | |||
const nostd::span<std::unique_ptr<opentelemetry::sdk::logs::Recordable>> &records) noexcept | |||
override; | |||
|
|||
# ifdef ENABLE_ASYNC_EXPORT |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you please also remove max_concurrent_requests
in OtlpHttpExporterOptions
and OtlpHttpLogExporterOptions
when we do not decalre ENABLE_ASYNC_EXPORT
? It's useless when async exporting is disabled.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
@@ -226,6 +226,12 @@ if(WITH_LOGS_PREVIEW) | |||
add_definitions(-DENABLE_LOGS_PREVIEW) | |||
endif() | |||
|
|||
option(WITH_ASYNC_EXPORT_PREVIEW "Whether enable async export" OFF) | |||
|
|||
if(WITH_ASYNC_EXPORT_PREVIEW) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should also add INTERFACE definitions into api/CMakeLists.txt.
if(WITH_LOGS_PREVIEW)
target_compile_definitions(opentelemetry_api INTERFACE ENABLE_ASYNC_EXPORT)
endif()
So that when we use optentelemetry-cpp as a cmake module(find_package(opentelemetry-cpp CONFIG)
) , this definition can be auto added into all targets that direct or indirectly depend on opentelemetry-cpp
.
I find there are severval missing definitions in api/CMakeLists.txt and be add by add_definitions()
. All definitions should be added by target_compile_definitions(opentelemetry_api INTERFACE ...)
to be expoted by cmake.
We should avoid to use add_definitions(...)
unless the definitions is only used by unit tests, should I create another issue to fix it? @lalitb @ThomsonTan
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added.
@@ -57,6 +62,7 @@ class SimpleSpanProcessor : public SpanProcessor | |||
* logged in this case. */ | |||
} | |||
} | |||
#ifdef ENABLE_ASYNC_EXPORT |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should if (is_export_async_ == false)
only be checked when ENABLE_ASYNC_EXPORT
is defined?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
@@ -33,7 +33,12 @@ class SimpleSpanProcessor : public SpanProcessor | |||
*/ | |||
explicit SimpleSpanProcessor(std::unique_ptr<SpanExporter> &&exporter, | |||
bool is_export_async = false) noexcept | |||
: exporter_(std::move(exporter)), is_export_async_(is_export_async) | |||
: exporter_(std::move(exporter)), | |||
#ifdef ENABLE_ASYNC_EXPORT |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is_export_async
will not be declared without ENABLE_ASYNC_EXPORT
in BatchSpanProcessorOptions
. I think we should keep the same behaviour with SimpleSpanProcessor
and just remove is_export_async_
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
@@ -23,7 +23,11 @@ BatchLogProcessor::BatchLogProcessor(std::unique_ptr<LogExporter> &&exporter, | |||
max_queue_size_(max_queue_size), | |||
scheduled_delay_millis_(scheduled_delay_millis), | |||
max_export_batch_size_(max_export_batch_size), | |||
# ifdef ENABLE_ASYNC_EXPORT |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is_export_async
will not be declared without ENABLE_ASYNC_EXPORT
in BatchSpanProcessorOptions
. I think we should also remove is_export_async_
here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
@@ -41,11 +41,13 @@ struct BatchLogProcessorOptions | |||
*/ | |||
size_t max_export_batch_size = 512; | |||
|
|||
# ifdef ENABLE_ASYNC_EXPORT | |||
/** | |||
* Determines whether the export happens asynchronously. | |||
* Default implementation is synchronous. | |||
*/ | |||
bool is_export_async = false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we also remove is_export_async_
in BatchLogProcessor
and BatchSpanProcessor
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
@@ -43,6 +50,7 @@ void SimpleLogProcessor::OnReceive(std::unique_ptr<Recordable> &&record) noexcep | |||
/* Alert user of the failed export */ | |||
} | |||
} | |||
# ifdef ENABLE_ASYNC_EXPORT |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just like in SimpleSpanProcessor
, if (is_export_async_ == false)
should only be checked when ENABLE_ASYNC_EXPORT
is defined, or we should always call sync Export.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
@@ -214,6 +218,7 @@ void BatchSpanProcessor::Export() | |||
nostd::span<std::unique_ptr<Recordable>>(spans_arr.data(), spans_arr.size())); | |||
NotifyCompletion(notify_force_flush, synchronization_data_); | |||
} | |||
#ifdef ENABLE_ASYNC_EXPORT |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just like in SimpleSpanProcessor
, if (is_export_async_ == false)
should only be checked when ENABLE_ASYNC_EXPORT
is defined, or we should always call sync Export.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
@@ -227,6 +235,7 @@ void BatchLogProcessor::Export() | |||
nostd::span<std::unique_ptr<Recordable>>(records_arr.data(), records_arr.size())); | |||
NotifyCompletion(notify_force_flush, synchronization_data_); | |||
} | |||
# ifdef ENABLE_ASYNC_EXPORT |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just like in SimpleSpanProcessor
, if (is_export_async_ == false)
should only be checked when ENABLE_ASYNC_EXPORT
is defined, or we should always call sync Export.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
The rest of the things is adding CI actions to test the async feature.(with and without)
Could this PR be merged? I would add max export changes once this is merged. |
@lalitb I think this PR can be merged right now. I'm not in @open-telemetry/cpp-approvers right now, my approval can not let the process continue. |
Good point. Yes please create a issue to fix it @owent |
Thanks, Have added you to approvers now. Seems got missed somehow. |
@DebajitDas - Merging this, the CI test and max_export can be added in separate PR. |
commit c484d16 Merge: 0abf162 7e90dae Author: WenTao Ou <[email protected]> Date: Tue Jun 7 10:57:25 2022 +0800 Merge remote-tracking branch 'opentelemetry/main' into async-changes Signed-off-by: WenTao Ou <[email protected]> # Conflicts: # CHANGELOG.md commit 0abf162 Merge: cd3655f 5c8f476 Author: WenTao Ou <[email protected]> Date: Wed May 25 12:11:04 2022 +0800 Merge remote-tracking branch 'opentelemetry/main' into merge_main_into_async-changes commit cd3655f Merge: d7b03e8 63803d1 Author: owent <[email protected]> Date: Fri May 20 14:28:31 2022 +0800 Merge branch 'merge_async-changes_into_main' into merge_main_into_async-changes Signed-off-by: owent <[email protected]> # Conflicts: # CHANGELOG.md # CMakeLists.txt # api/CMakeLists.txt # api/include/opentelemetry/common/spin_lock_mutex.h # ci/do_ci.ps1 # ci/do_ci.sh # examples/common/metrics_foo_library/foo_library.cc # examples/prometheus/prometheus.yml # exporters/otlp/test/otlp_http_log_exporter_test.cc # ext/src/http/client/curl/CMakeLists.txt commit d7b03e8 Author: WenTao Ou <[email protected]> Date: Fri May 20 13:25:24 2022 +0800 Merge main into async changes (open-telemetry#1411) commit 0aebd6e Author: WenTao Ou <[email protected]> Date: Mon May 16 23:26:41 2022 +0800 Merge main into async changes (open-telemetry#1395) commit 08a12b5 Author: WenTao Ou <[email protected]> Date: Thu May 12 00:51:48 2022 +0800 Cocurrency otlp http session (open-telemetry#1317) commit c614258 Author: DEBAJIT DAS <[email protected]> Date: Wed May 4 22:55:20 2022 +0530 Added max async export support using separate AsyncBatchSpan/LogProcessor (open-telemetry#1306) commit 465158c Author: WenTao Ou <[email protected]> Date: Mon Apr 25 23:48:02 2022 +0800 Merge `main` into `async-changes` (open-telemetry#1348) * install sdk config (open-telemetry#1273) * Bump actions/cache from 2 to 3 (open-telemetry#1277) * Add owent as an Approver (open-telemetry#1276) * add owent as reviewer * fix order * Disable benchmark action failure (open-telemetry#1284) * metrics exemplar round 1 (open-telemetry#1264) * [Metrics SDK] - fix spelling (AggregationTemporarily to AggregationTemporality) (open-telemetry#1288) * fix compilation error with protobuf 3.5 (open-telemetry#1289) * Fix span SetAttribute crash (open-telemetry#1283) * Synchronous Metric collection (Delta , Cumulative) (open-telemetry#1265) * Rename `http_client_curl` to `opentelemetry_http_client_curl` (open-telemetry#1301) Signed-off-by: owent <[email protected]> * Don't show coverage annotation for pull requests (open-telemetry#1304) * Implement periodic exporting metric reader (open-telemetry#1286) * Add `async-changes` branch to pull_request of github action (open-telemetry#1309) Signed-off-by: owent <[email protected]> * Add InstrumentationInfo and Resource to the metrics data to be exported. (open-telemetry#1299) * Excempt should be applied on issue instead of PR (open-telemetry#1316) * Bump codecov/codecov-action from 2.1.0 to 3 (open-telemetry#1318) * Move public definitions into `opentelemetry_api`. (open-telemetry#1314) Signed-off-by: owent <[email protected]> * Add building test without RTTI (open-telemetry#1294) * Remove implicitly deleted default constructor (open-telemetry#1267) Co-authored-by: Tom Tan <[email protected]> Co-authored-by: Lalit Kumar Bhasin <[email protected]> * [ETW Exporter] - ETW provider handle cleanup (open-telemetry#1322) * Bump actions/stale from 4 to 5 (open-telemetry#1323) * ostream metrics example (open-telemetry#1312) * Prepare v1.3.0 release (open-telemetry#1324) * Update yield logic for ARM processor (open-telemetry#1325) * Fix for open-telemetry#1292 (open-telemetry#1326) * Implement Merge and Diff operation for Histogram Aggregation (open-telemetry#1303) * fix metrics compiler warnings (open-telemetry#1328) * Replace deprecated googletest API (open-telemetry#1327) * Remove redundant tail / in CMake install (open-telemetry#1329) * dependencies image as artifact (open-telemetry#1333) Co-authored-by: Lalit Kumar Bhasin <[email protected]> * metrics histogram example (open-telemetry#1330) * Link `opentelemetry_ext` with `opentelemetry_api` (open-telemetry#1336) * ostream metrics cmake (open-telemetry#1344) * Fix conflicts Signed-off-by: owent <[email protected]> * Using clang-format-10 to format codes(clang-format-14 has a different output) Signed-off-by: owent <[email protected]> Co-authored-by: Ehsan Saei <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Lalit Kumar Bhasin <[email protected]> Co-authored-by: Tom Tan <[email protected]> Co-authored-by: Ben Landrum <[email protected]> Co-authored-by: jmanjon <[email protected]> commit 73f3515 Author: WenTao Ou <[email protected]> Date: Wed Apr 6 15:41:42 2022 +0800 Merge main into async changes (open-telemetry#1321) commit ad3bdfe Author: DEBAJIT DAS <[email protected]> Date: Thu Mar 31 09:56:24 2022 +0530 Added feature flag for asynchronous export (open-telemetry#1295) commit 15e7725 Author: WenTao Ou <[email protected]> Date: Tue Mar 29 13:09:11 2022 +0800 Cocurrency otlp http session (open-telemetry#1281) commit 729c2f8 Author: DEBAJIT DAS <[email protected]> Date: Tue Mar 22 23:47:14 2022 +0530 Changing the type of callback function in Export function to std::function (open-telemetry#1278) commit 6f53da3 Author: DEBAJIT DAS <[email protected]> Date: Mon Mar 21 19:31:51 2022 +0530 Async callback Exporter to Processor changes (open-telemetry#1275) commit c3eaa9d Author: WenTao Ou <[email protected]> Date: Mon Mar 21 14:41:51 2022 +0800 Cocurrency otlp http session (open-telemetry#1274)
commit f357102 Author: WenTao Ou <[email protected]> Date: Wed Jun 15 22:40:39 2022 +0800 Merge main into async changes (open-telemetry#1451) * install sdk config (open-telemetry#1273) * Bump actions/cache from 2 to 3 (open-telemetry#1277) * Add owent as an Approver (open-telemetry#1276) * add owent as reviewer * fix order * Disable benchmark action failure (open-telemetry#1284) * metrics exemplar round 1 (open-telemetry#1264) * [Metrics SDK] - fix spelling (AggregationTemporarily to AggregationTemporality) (open-telemetry#1288) * fix compilation error with protobuf 3.5 (open-telemetry#1289) * Fix span SetAttribute crash (open-telemetry#1283) * Synchronous Metric collection (Delta , Cumulative) (open-telemetry#1265) * Rename `http_client_curl` to `opentelemetry_http_client_curl` (open-telemetry#1301) Signed-off-by: owent <[email protected]> * Don't show coverage annotation for pull requests (open-telemetry#1304) * Implement periodic exporting metric reader (open-telemetry#1286) * Add `async-changes` branch to pull_request of github action (open-telemetry#1309) Signed-off-by: owent <[email protected]> * Add InstrumentationInfo and Resource to the metrics data to be exported. (open-telemetry#1299) * Excempt should be applied on issue instead of PR (open-telemetry#1316) * Bump codecov/codecov-action from 2.1.0 to 3 (open-telemetry#1318) * Move public definitions into `opentelemetry_api`. (open-telemetry#1314) Signed-off-by: owent <[email protected]> * Add building test without RTTI (open-telemetry#1294) * Remove implicitly deleted default constructor (open-telemetry#1267) Co-authored-by: Tom Tan <[email protected]> Co-authored-by: Lalit Kumar Bhasin <[email protected]> * [ETW Exporter] - ETW provider handle cleanup (open-telemetry#1322) * Bump actions/stale from 4 to 5 (open-telemetry#1323) * ostream metrics example (open-telemetry#1312) * Prepare v1.3.0 release (open-telemetry#1324) * Update yield logic for ARM processor (open-telemetry#1325) * Fix for open-telemetry#1292 (open-telemetry#1326) * Implement Merge and Diff operation for Histogram Aggregation (open-telemetry#1303) * fix metrics compiler warnings (open-telemetry#1328) * Replace deprecated googletest API (open-telemetry#1327) * Remove redundant tail / in CMake install (open-telemetry#1329) * dependencies image as artifact (open-telemetry#1333) Co-authored-by: Lalit Kumar Bhasin <[email protected]> * metrics histogram example (open-telemetry#1330) * Link `opentelemetry_ext` with `opentelemetry_api` (open-telemetry#1336) * ostream metrics cmake (open-telemetry#1344) * prometheus exporter (open-telemetry#1331) * remove exporter registration to meter provider (open-telemetry#1350) * Bump github/codeql-action from 1 to 2 (open-telemetry#1351) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add explicit type cast in baggage UrlDecode (open-telemetry#1353) * Fix scalar delete against array (open-telemetry#1356) * conditional include for codecvt header (open-telemetry#1355) * Add missing include guard (open-telemetry#1357) * Use latest TraceLoggingDynamic.h (open-telemetry#1354) * prometheus example (open-telemetry#1332) * Fix output time in metrics OStream exporter (open-telemetry#1346) * Simplify SDK Configuration: Use View with default aggregation if no matching View is configured (open-telemetry#1358) * Fix class member initialization order (open-telemetry#1360) * codecov ignore (open-telemetry#1364) * export opentelemetry_otlp_recordable (open-telemetry#1365) * Disable test on prometheus-cpp which not need (open-telemetry#1363) * Enable metric collection for Async Instruments - Delta and Cumulative (open-telemetry#1334) * fix baggage propagation for empty/invalid baggage context (open-telemetry#1367) * Fix empty tracestate header propagation (open-telemetry#1373) * Bump docker/setup-qemu-action from 1 to 2 (open-telemetry#1375) * Add noexcept/const qualifier at missing places for Trace API. (open-telemetry#1374) * fix noxcept * fix etw * Bump docker/build-push-action from 2 to 3 (open-telemetry#1377) * Bump docker/setup-buildx-action from 1 to 2 (open-telemetry#1376) * [Metrics SDK] Remove un-necessary files. (open-telemetry#1379) * reuse temporal metric storage for sync storage (open-telemetry#1369) * Prometheus exporter meters and instrument name (open-telemetry#1378) * Fix sharing resource in batched exported spans (open-telemetry#1386) Co-authored-by: Lalit Kumar Bhasin <[email protected]> * fix: missing link to nlohmann_json (open-telemetry#1390) * Getting started document using ostream exporter (open-telemetry#1394) Co-authored-by: Reiley Yang <[email protected]> * Connect async storage with async instruments (open-telemetry#1388) * get span_id from context when Logger::Log received invalid span_id (open-telemetry#1398) * Alpine image (open-telemetry#1382) * Upgrade proto to v0.17.0, update log data model (open-telemetry#1383) * Prepare v1.4.0 release (open-telemetry#1404) * Fix vcpkg package name in doc (open-telemetry#1392) * Document Getting Started with Prometheus and Grafana (open-telemetry#1396) Co-authored-by: Lalit Kumar Bhasin <[email protected]> * fix OTEL_INTERNAL_LOG_INFO (open-telemetry#1407) * fix: WaitOnSocket select error when sockfd above FD_SETSIZE (open-telemetry#1410) * [BUILD] fix nlohmann_json's (third party) include dir (open-telemetry#1415) * [Metrics API/SDK] - Pass state to async callback function. (open-telemetry#1408) * Copy string_view passed to ETW exporter in PropertyVariant (open-telemetry#1425) * Fix ETW log exporter header inclusion (open-telemetry#1426) * [Metrics SDK] Only record non-negative / finite / Non-NAN histogram values (open-telemetry#1427) * validate histogram value * handle Nan * add changelog * divide by 0 error on windows * fix markdown lint * Fix global log handle symbols when using dlopen (open-telemetry#1420) * Add attributes/dimensions to metrics ostream exporter (open-telemetry#1400) * Log current timestamp instead of epoch time (open-telemetry#1434) * install sdk-config.h (open-telemetry#1419) * Fix GettingStarted documentation for Jaeger HTTP exporter (open-telemetry#1347) (open-telemetry#1439) * fix histogram (open-telemetry#1440) * Upgrade nlohmann_json to 3.10.5 (open-telemetry#1438) (open-telemetry#1441) * Fixed broken link to OpenTelemetry.io (open-telemetry#1445) (open-telemetry#1446) Co-authored-by: Ehsan Saei <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Lalit Kumar Bhasin <[email protected]> Co-authored-by: Tom Tan <[email protected]> Co-authored-by: Ben Landrum <[email protected]> Co-authored-by: jmanjon <[email protected]> Co-authored-by: Zsolt Bölöny <[email protected]> Co-authored-by: Leo Di Donato <[email protected]> Co-authored-by: Reiley Yang <[email protected]> Co-authored-by: Lalit Kumar Bhasin <[email protected]> Co-authored-by: Hamed Mansouri <[email protected]> Co-authored-by: ztao <[email protected]> Co-authored-by: Flier Lu <[email protected]> Co-authored-by: Marc Alff <[email protected]> Co-authored-by: Marc Alff <[email protected]> commit d7b03e8 Author: WenTao Ou <[email protected]> Date: Fri May 20 13:25:24 2022 +0800 Merge main into async changes (open-telemetry#1411) commit 0aebd6e Author: WenTao Ou <[email protected]> Date: Mon May 16 23:26:41 2022 +0800 Merge main into async changes (open-telemetry#1395) commit 08a12b5 Author: WenTao Ou <[email protected]> Date: Thu May 12 00:51:48 2022 +0800 Cocurrency otlp http session (open-telemetry#1317) commit c614258 Author: DEBAJIT DAS <[email protected]> Date: Wed May 4 22:55:20 2022 +0530 Added max async export support using separate AsyncBatchSpan/LogProcessor (open-telemetry#1306) commit 465158c Author: WenTao Ou <[email protected]> Date: Mon Apr 25 23:48:02 2022 +0800 Merge `main` into `async-changes` (open-telemetry#1348) * install sdk config (open-telemetry#1273) * Bump actions/cache from 2 to 3 (open-telemetry#1277) * Add owent as an Approver (open-telemetry#1276) * add owent as reviewer * fix order * Disable benchmark action failure (open-telemetry#1284) * metrics exemplar round 1 (open-telemetry#1264) * [Metrics SDK] - fix spelling (AggregationTemporarily to AggregationTemporality) (open-telemetry#1288) * fix compilation error with protobuf 3.5 (open-telemetry#1289) * Fix span SetAttribute crash (open-telemetry#1283) * Synchronous Metric collection (Delta , Cumulative) (open-telemetry#1265) * Rename `http_client_curl` to `opentelemetry_http_client_curl` (open-telemetry#1301) Signed-off-by: owent <[email protected]> * Don't show coverage annotation for pull requests (open-telemetry#1304) * Implement periodic exporting metric reader (open-telemetry#1286) * Add `async-changes` branch to pull_request of github action (open-telemetry#1309) Signed-off-by: owent <[email protected]> * Add InstrumentationInfo and Resource to the metrics data to be exported. (open-telemetry#1299) * Excempt should be applied on issue instead of PR (open-telemetry#1316) * Bump codecov/codecov-action from 2.1.0 to 3 (open-telemetry#1318) * Move public definitions into `opentelemetry_api`. (open-telemetry#1314) Signed-off-by: owent <[email protected]> * Add building test without RTTI (open-telemetry#1294) * Remove implicitly deleted default constructor (open-telemetry#1267) Co-authored-by: Tom Tan <[email protected]> Co-authored-by: Lalit Kumar Bhasin <[email protected]> * [ETW Exporter] - ETW provider handle cleanup (open-telemetry#1322) * Bump actions/stale from 4 to 5 (open-telemetry#1323) * ostream metrics example (open-telemetry#1312) * Prepare v1.3.0 release (open-telemetry#1324) * Update yield logic for ARM processor (open-telemetry#1325) * Fix for open-telemetry#1292 (open-telemetry#1326) * Implement Merge and Diff operation for Histogram Aggregation (open-telemetry#1303) * fix metrics compiler warnings (open-telemetry#1328) * Replace deprecated googletest API (open-telemetry#1327) * Remove redundant tail / in CMake install (open-telemetry#1329) * dependencies image as artifact (open-telemetry#1333) Co-authored-by: Lalit Kumar Bhasin <[email protected]> * metrics histogram example (open-telemetry#1330) * Link `opentelemetry_ext` with `opentelemetry_api` (open-telemetry#1336) * ostream metrics cmake (open-telemetry#1344) * Fix conflicts Signed-off-by: owent <[email protected]> * Using clang-format-10 to format codes(clang-format-14 has a different output) Signed-off-by: owent <[email protected]> Co-authored-by: Ehsan Saei <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Lalit Kumar Bhasin <[email protected]> Co-authored-by: Tom Tan <[email protected]> Co-authored-by: Ben Landrum <[email protected]> Co-authored-by: jmanjon <[email protected]> commit 73f3515 Author: WenTao Ou <[email protected]> Date: Wed Apr 6 15:41:42 2022 +0800 Merge main into async changes (open-telemetry#1321) commit ad3bdfe Author: DEBAJIT DAS <[email protected]> Date: Thu Mar 31 09:56:24 2022 +0530 Added feature flag for asynchronous export (open-telemetry#1295) commit 15e7725 Author: WenTao Ou <[email protected]> Date: Tue Mar 29 13:09:11 2022 +0800 Cocurrency otlp http session (open-telemetry#1281) commit 729c2f8 Author: DEBAJIT DAS <[email protected]> Date: Tue Mar 22 23:47:14 2022 +0530 Changing the type of callback function in Export function to std::function (open-telemetry#1278) commit 6f53da3 Author: DEBAJIT DAS <[email protected]> Date: Mon Mar 21 19:31:51 2022 +0530 Async callback Exporter to Processor changes (open-telemetry#1275) commit c3eaa9d Author: WenTao Ou <[email protected]> Date: Mon Mar 21 14:41:51 2022 +0800 Cocurrency otlp http session (open-telemetry#1274)
commit daf5091 Author: WenTao Ou <[email protected]> Date: Fri Jun 17 14:49:27 2022 +0800 Implement open-telemetry/opentelemetry-specification#2452 (open-telemetry#1456) * install sdk config (open-telemetry#1273) * Bump actions/cache from 2 to 3 (open-telemetry#1277) * Add owent as an Approver (open-telemetry#1276) * add owent as reviewer * fix order * Disable benchmark action failure (open-telemetry#1284) * metrics exemplar round 1 (open-telemetry#1264) * [Metrics SDK] - fix spelling (AggregationTemporarily to AggregationTemporality) (open-telemetry#1288) * fix compilation error with protobuf 3.5 (open-telemetry#1289) * Fix span SetAttribute crash (open-telemetry#1283) * Synchronous Metric collection (Delta , Cumulative) (open-telemetry#1265) * Rename `http_client_curl` to `opentelemetry_http_client_curl` (open-telemetry#1301) Signed-off-by: owent <[email protected]> * Don't show coverage annotation for pull requests (open-telemetry#1304) * Implement periodic exporting metric reader (open-telemetry#1286) * Add `async-changes` branch to pull_request of github action (open-telemetry#1309) Signed-off-by: owent <[email protected]> * Add InstrumentationInfo and Resource to the metrics data to be exported. (open-telemetry#1299) * Excempt should be applied on issue instead of PR (open-telemetry#1316) * Bump codecov/codecov-action from 2.1.0 to 3 (open-telemetry#1318) * Move public definitions into `opentelemetry_api`. (open-telemetry#1314) Signed-off-by: owent <[email protected]> * Add building test without RTTI (open-telemetry#1294) * Remove implicitly deleted default constructor (open-telemetry#1267) Co-authored-by: Tom Tan <[email protected]> Co-authored-by: Lalit Kumar Bhasin <[email protected]> * [ETW Exporter] - ETW provider handle cleanup (open-telemetry#1322) * Bump actions/stale from 4 to 5 (open-telemetry#1323) * ostream metrics example (open-telemetry#1312) * Prepare v1.3.0 release (open-telemetry#1324) * Update yield logic for ARM processor (open-telemetry#1325) * Fix for open-telemetry#1292 (open-telemetry#1326) * Implement Merge and Diff operation for Histogram Aggregation (open-telemetry#1303) * fix metrics compiler warnings (open-telemetry#1328) * Replace deprecated googletest API (open-telemetry#1327) * Remove redundant tail / in CMake install (open-telemetry#1329) * dependencies image as artifact (open-telemetry#1333) Co-authored-by: Lalit Kumar Bhasin <[email protected]> * metrics histogram example (open-telemetry#1330) * Link `opentelemetry_ext` with `opentelemetry_api` (open-telemetry#1336) * ostream metrics cmake (open-telemetry#1344) * prometheus exporter (open-telemetry#1331) * remove exporter registration to meter provider (open-telemetry#1350) * Bump github/codeql-action from 1 to 2 (open-telemetry#1351) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add explicit type cast in baggage UrlDecode (open-telemetry#1353) * Fix scalar delete against array (open-telemetry#1356) * conditional include for codecvt header (open-telemetry#1355) * Add missing include guard (open-telemetry#1357) * Use latest TraceLoggingDynamic.h (open-telemetry#1354) * prometheus example (open-telemetry#1332) * Fix output time in metrics OStream exporter (open-telemetry#1346) * Simplify SDK Configuration: Use View with default aggregation if no matching View is configured (open-telemetry#1358) * Fix class member initialization order (open-telemetry#1360) * codecov ignore (open-telemetry#1364) * export opentelemetry_otlp_recordable (open-telemetry#1365) * Disable test on prometheus-cpp which not need (open-telemetry#1363) * Enable metric collection for Async Instruments - Delta and Cumulative (open-telemetry#1334) * fix baggage propagation for empty/invalid baggage context (open-telemetry#1367) * Fix empty tracestate header propagation (open-telemetry#1373) * Bump docker/setup-qemu-action from 1 to 2 (open-telemetry#1375) * Add noexcept/const qualifier at missing places for Trace API. (open-telemetry#1374) * fix noxcept * fix etw * Bump docker/build-push-action from 2 to 3 (open-telemetry#1377) * Bump docker/setup-buildx-action from 1 to 2 (open-telemetry#1376) * [Metrics SDK] Remove un-necessary files. (open-telemetry#1379) * reuse temporal metric storage for sync storage (open-telemetry#1369) * Prometheus exporter meters and instrument name (open-telemetry#1378) * Fix sharing resource in batched exported spans (open-telemetry#1386) Co-authored-by: Lalit Kumar Bhasin <[email protected]> * fix: missing link to nlohmann_json (open-telemetry#1390) * Getting started document using ostream exporter (open-telemetry#1394) Co-authored-by: Reiley Yang <[email protected]> * Connect async storage with async instruments (open-telemetry#1388) * get span_id from context when Logger::Log received invalid span_id (open-telemetry#1398) * Alpine image (open-telemetry#1382) * Upgrade proto to v0.17.0, update log data model (open-telemetry#1383) * Prepare v1.4.0 release (open-telemetry#1404) * Fix vcpkg package name in doc (open-telemetry#1392) * Document Getting Started with Prometheus and Grafana (open-telemetry#1396) Co-authored-by: Lalit Kumar Bhasin <[email protected]> * fix OTEL_INTERNAL_LOG_INFO (open-telemetry#1407) * fix: WaitOnSocket select error when sockfd above FD_SETSIZE (open-telemetry#1410) * [BUILD] fix nlohmann_json's (third party) include dir (open-telemetry#1415) * [Metrics API/SDK] - Pass state to async callback function. (open-telemetry#1408) * Copy string_view passed to ETW exporter in PropertyVariant (open-telemetry#1425) * Fix ETW log exporter header inclusion (open-telemetry#1426) * [Metrics SDK] Only record non-negative / finite / Non-NAN histogram values (open-telemetry#1427) * validate histogram value * handle Nan * add changelog * divide by 0 error on windows * fix markdown lint * Fix global log handle symbols when using dlopen (open-telemetry#1420) * Add attributes/dimensions to metrics ostream exporter (open-telemetry#1400) * Log current timestamp instead of epoch time (open-telemetry#1434) * install sdk-config.h (open-telemetry#1419) * Fix GettingStarted documentation for Jaeger HTTP exporter (open-telemetry#1347) (open-telemetry#1439) * fix histogram (open-telemetry#1440) * Upgrade nlohmann_json to 3.10.5 (open-telemetry#1438) (open-telemetry#1441) * Fixed broken link to OpenTelemetry.io (open-telemetry#1445) (open-telemetry#1446) * Fix variables inizialization (open-telemetry#1430) * Remove `AsyncBatch*Processor`, implement [opentelemetry-specification#2452](open-telemetry/opentelemetry-specification#2452) Signed-off-by: WenTao Ou <[email protected]> * Remove invalid changelog Signed-off-by: WenTao Ou <[email protected]> * Fix compiling problems without `ENABLE_ASYNC_EXPORT` Signed-off-by: WenTao Ou <[email protected]> * Always return `ExportResult::kSuccess` Signed-off-by: WenTao Ou <[email protected]> Co-authored-by: Ehsan Saei <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Lalit Kumar Bhasin <[email protected]> Co-authored-by: Tom Tan <[email protected]> Co-authored-by: Ben Landrum <[email protected]> Co-authored-by: jmanjon <[email protected]> Co-authored-by: Zsolt Bölöny <[email protected]> Co-authored-by: Leo Di Donato <[email protected]> Co-authored-by: Reiley Yang <[email protected]> Co-authored-by: Lalit Kumar Bhasin <[email protected]> Co-authored-by: Hamed Mansouri <[email protected]> Co-authored-by: ztao <[email protected]> Co-authored-by: Flier Lu <[email protected]> Co-authored-by: Marc Alff <[email protected]> Co-authored-by: Marc Alff <[email protected]> Co-authored-by: univisionsrl <[email protected]> commit f357102 Author: WenTao Ou <[email protected]> Date: Wed Jun 15 22:40:39 2022 +0800 Merge main into async changes (open-telemetry#1451) * install sdk config (open-telemetry#1273) * Bump actions/cache from 2 to 3 (open-telemetry#1277) * Add owent as an Approver (open-telemetry#1276) * add owent as reviewer * fix order * Disable benchmark action failure (open-telemetry#1284) * metrics exemplar round 1 (open-telemetry#1264) * [Metrics SDK] - fix spelling (AggregationTemporarily to AggregationTemporality) (open-telemetry#1288) * fix compilation error with protobuf 3.5 (open-telemetry#1289) * Fix span SetAttribute crash (open-telemetry#1283) * Synchronous Metric collection (Delta , Cumulative) (open-telemetry#1265) * Rename `http_client_curl` to `opentelemetry_http_client_curl` (open-telemetry#1301) Signed-off-by: owent <[email protected]> * Don't show coverage annotation for pull requests (open-telemetry#1304) * Implement periodic exporting metric reader (open-telemetry#1286) * Add `async-changes` branch to pull_request of github action (open-telemetry#1309) Signed-off-by: owent <[email protected]> * Add InstrumentationInfo and Resource to the metrics data to be exported. (open-telemetry#1299) * Excempt should be applied on issue instead of PR (open-telemetry#1316) * Bump codecov/codecov-action from 2.1.0 to 3 (open-telemetry#1318) * Move public definitions into `opentelemetry_api`. (open-telemetry#1314) Signed-off-by: owent <[email protected]> * Add building test without RTTI (open-telemetry#1294) * Remove implicitly deleted default constructor (open-telemetry#1267) Co-authored-by: Tom Tan <[email protected]> Co-authored-by: Lalit Kumar Bhasin <[email protected]> * [ETW Exporter] - ETW provider handle cleanup (open-telemetry#1322) * Bump actions/stale from 4 to 5 (open-telemetry#1323) * ostream metrics example (open-telemetry#1312) * Prepare v1.3.0 release (open-telemetry#1324) * Update yield logic for ARM processor (open-telemetry#1325) * Fix for open-telemetry#1292 (open-telemetry#1326) * Implement Merge and Diff operation for Histogram Aggregation (open-telemetry#1303) * fix metrics compiler warnings (open-telemetry#1328) * Replace deprecated googletest API (open-telemetry#1327) * Remove redundant tail / in CMake install (open-telemetry#1329) * dependencies image as artifact (open-telemetry#1333) Co-authored-by: Lalit Kumar Bhasin <[email protected]> * metrics histogram example (open-telemetry#1330) * Link `opentelemetry_ext` with `opentelemetry_api` (open-telemetry#1336) * ostream metrics cmake (open-telemetry#1344) * prometheus exporter (open-telemetry#1331) * remove exporter registration to meter provider (open-telemetry#1350) * Bump github/codeql-action from 1 to 2 (open-telemetry#1351) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add explicit type cast in baggage UrlDecode (open-telemetry#1353) * Fix scalar delete against array (open-telemetry#1356) * conditional include for codecvt header (open-telemetry#1355) * Add missing include guard (open-telemetry#1357) * Use latest TraceLoggingDynamic.h (open-telemetry#1354) * prometheus example (open-telemetry#1332) * Fix output time in metrics OStream exporter (open-telemetry#1346) * Simplify SDK Configuration: Use View with default aggregation if no matching View is configured (open-telemetry#1358) * Fix class member initialization order (open-telemetry#1360) * codecov ignore (open-telemetry#1364) * export opentelemetry_otlp_recordable (open-telemetry#1365) * Disable test on prometheus-cpp which not need (open-telemetry#1363) * Enable metric collection for Async Instruments - Delta and Cumulative (open-telemetry#1334) * fix baggage propagation for empty/invalid baggage context (open-telemetry#1367) * Fix empty tracestate header propagation (open-telemetry#1373) * Bump docker/setup-qemu-action from 1 to 2 (open-telemetry#1375) * Add noexcept/const qualifier at missing places for Trace API. (open-telemetry#1374) * fix noxcept * fix etw * Bump docker/build-push-action from 2 to 3 (open-telemetry#1377) * Bump docker/setup-buildx-action from 1 to 2 (open-telemetry#1376) * [Metrics SDK] Remove un-necessary files. (open-telemetry#1379) * reuse temporal metric storage for sync storage (open-telemetry#1369) * Prometheus exporter meters and instrument name (open-telemetry#1378) * Fix sharing resource in batched exported spans (open-telemetry#1386) Co-authored-by: Lalit Kumar Bhasin <[email protected]> * fix: missing link to nlohmann_json (open-telemetry#1390) * Getting started document using ostream exporter (open-telemetry#1394) Co-authored-by: Reiley Yang <[email protected]> * Connect async storage with async instruments (open-telemetry#1388) * get span_id from context when Logger::Log received invalid span_id (open-telemetry#1398) * Alpine image (open-telemetry#1382) * Upgrade proto to v0.17.0, update log data model (open-telemetry#1383) * Prepare v1.4.0 release (open-telemetry#1404) * Fix vcpkg package name in doc (open-telemetry#1392) * Document Getting Started with Prometheus and Grafana (open-telemetry#1396) Co-authored-by: Lalit Kumar Bhasin <[email protected]> * fix OTEL_INTERNAL_LOG_INFO (open-telemetry#1407) * fix: WaitOnSocket select error when sockfd above FD_SETSIZE (open-telemetry#1410) * [BUILD] fix nlohmann_json's (third party) include dir (open-telemetry#1415) * [Metrics API/SDK] - Pass state to async callback function. (open-telemetry#1408) * Copy string_view passed to ETW exporter in PropertyVariant (open-telemetry#1425) * Fix ETW log exporter header inclusion (open-telemetry#1426) * [Metrics SDK] Only record non-negative / finite / Non-NAN histogram values (open-telemetry#1427) * validate histogram value * handle Nan * add changelog * divide by 0 error on windows * fix markdown lint * Fix global log handle symbols when using dlopen (open-telemetry#1420) * Add attributes/dimensions to metrics ostream exporter (open-telemetry#1400) * Log current timestamp instead of epoch time (open-telemetry#1434) * install sdk-config.h (open-telemetry#1419) * Fix GettingStarted documentation for Jaeger HTTP exporter (open-telemetry#1347) (open-telemetry#1439) * fix histogram (open-telemetry#1440) * Upgrade nlohmann_json to 3.10.5 (open-telemetry#1438) (open-telemetry#1441) * Fixed broken link to OpenTelemetry.io (open-telemetry#1445) (open-telemetry#1446) Co-authored-by: Ehsan Saei <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Lalit Kumar Bhasin <[email protected]> Co-authored-by: Tom Tan <[email protected]> Co-authored-by: Ben Landrum <[email protected]> Co-authored-by: jmanjon <[email protected]> Co-authored-by: Zsolt Bölöny <[email protected]> Co-authored-by: Leo Di Donato <[email protected]> Co-authored-by: Reiley Yang <[email protected]> Co-authored-by: Lalit Kumar Bhasin <[email protected]> Co-authored-by: Hamed Mansouri <[email protected]> Co-authored-by: ztao <[email protected]> Co-authored-by: Flier Lu <[email protected]> Co-authored-by: Marc Alff <[email protected]> Co-authored-by: Marc Alff <[email protected]> commit d7b03e8 Author: WenTao Ou <[email protected]> Date: Fri May 20 13:25:24 2022 +0800 Merge main into async changes (open-telemetry#1411) commit 0aebd6e Author: WenTao Ou <[email protected]> Date: Mon May 16 23:26:41 2022 +0800 Merge main into async changes (open-telemetry#1395) commit 08a12b5 Author: WenTao Ou <[email protected]> Date: Thu May 12 00:51:48 2022 +0800 Cocurrency otlp http session (open-telemetry#1317) commit c614258 Author: DEBAJIT DAS <[email protected]> Date: Wed May 4 22:55:20 2022 +0530 Added max async export support using separate AsyncBatchSpan/LogProcessor (open-telemetry#1306) commit 465158c Author: WenTao Ou <[email protected]> Date: Mon Apr 25 23:48:02 2022 +0800 Merge `main` into `async-changes` (open-telemetry#1348) * install sdk config (open-telemetry#1273) * Bump actions/cache from 2 to 3 (open-telemetry#1277) * Add owent as an Approver (open-telemetry#1276) * add owent as reviewer * fix order * Disable benchmark action failure (open-telemetry#1284) * metrics exemplar round 1 (open-telemetry#1264) * [Metrics SDK] - fix spelling (AggregationTemporarily to AggregationTemporality) (open-telemetry#1288) * fix compilation error with protobuf 3.5 (open-telemetry#1289) * Fix span SetAttribute crash (open-telemetry#1283) * Synchronous Metric collection (Delta , Cumulative) (open-telemetry#1265) * Rename `http_client_curl` to `opentelemetry_http_client_curl` (open-telemetry#1301) Signed-off-by: owent <[email protected]> * Don't show coverage annotation for pull requests (open-telemetry#1304) * Implement periodic exporting metric reader (open-telemetry#1286) * Add `async-changes` branch to pull_request of github action (open-telemetry#1309) Signed-off-by: owent <[email protected]> * Add InstrumentationInfo and Resource to the metrics data to be exported. (open-telemetry#1299) * Excempt should be applied on issue instead of PR (open-telemetry#1316) * Bump codecov/codecov-action from 2.1.0 to 3 (open-telemetry#1318) * Move public definitions into `opentelemetry_api`. (open-telemetry#1314) Signed-off-by: owent <[email protected]> * Add building test without RTTI (open-telemetry#1294) * Remove implicitly deleted default constructor (open-telemetry#1267) Co-authored-by: Tom Tan <[email protected]> Co-authored-by: Lalit Kumar Bhasin <[email protected]> * [ETW Exporter] - ETW provider handle cleanup (open-telemetry#1322) * Bump actions/stale from 4 to 5 (open-telemetry#1323) * ostream metrics example (open-telemetry#1312) * Prepare v1.3.0 release (open-telemetry#1324) * Update yield logic for ARM processor (open-telemetry#1325) * Fix for open-telemetry#1292 (open-telemetry#1326) * Implement Merge and Diff operation for Histogram Aggregation (open-telemetry#1303) * fix metrics compiler warnings (open-telemetry#1328) * Replace deprecated googletest API (open-telemetry#1327) * Remove redundant tail / in CMake install (open-telemetry#1329) * dependencies image as artifact (open-telemetry#1333) Co-authored-by: Lalit Kumar Bhasin <[email protected]> * metrics histogram example (open-telemetry#1330) * Link `opentelemetry_ext` with `opentelemetry_api` (open-telemetry#1336) * ostream metrics cmake (open-telemetry#1344) * Fix conflicts Signed-off-by: owent <[email protected]> * Using clang-format-10 to format codes(clang-format-14 has a different output) Signed-off-by: owent <[email protected]> Co-authored-by: Ehsan Saei <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Lalit Kumar Bhasin <[email protected]> Co-authored-by: Tom Tan <[email protected]> Co-authored-by: Ben Landrum <[email protected]> Co-authored-by: jmanjon <[email protected]> commit 73f3515 Author: WenTao Ou <[email protected]> Date: Wed Apr 6 15:41:42 2022 +0800 Merge main into async changes (open-telemetry#1321) commit ad3bdfe Author: DEBAJIT DAS <[email protected]> Date: Thu Mar 31 09:56:24 2022 +0530 Added feature flag for asynchronous export (open-telemetry#1295) commit 15e7725 Author: WenTao Ou <[email protected]> Date: Tue Mar 29 13:09:11 2022 +0800 Cocurrency otlp http session (open-telemetry#1281) commit 729c2f8 Author: DEBAJIT DAS <[email protected]> Date: Tue Mar 22 23:47:14 2022 +0530 Changing the type of callback function in Export function to std::function (open-telemetry#1278) commit 6f53da3 Author: DEBAJIT DAS <[email protected]> Date: Mon Mar 21 19:31:51 2022 +0530 Async callback Exporter to Processor changes (open-telemetry#1275) commit c3eaa9d Author: WenTao Ou <[email protected]> Date: Mon Mar 21 14:41:51 2022 +0800 Cocurrency otlp http session (open-telemetry#1274)
Fixes # Adds feature flag for asynchronous export.
Changes for max export and wait on async export not triggered by shutdown/force-flush are pending
Changes
Please provide a brief description of the changes here.
For significant contributions please make sure you have completed the following items:
CHANGELOG.md
updated for non-trivial changes