-
Notifications
You must be signed in to change notification settings - Fork 417
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 max async export support using separate AsyncBatchSpan/LogProcessor #1306
Added max async export support using separate AsyncBatchSpan/LogProcessor #1306
Conversation
std::move(exporter), 5, std::chrono::milliseconds(256), 5, is_async))); | ||
provider->AddProcessor(std::unique_ptr<sdk::logs::LogProcessor>( | ||
new sdk::logs::BatchLogProcessor(std::move(exporter), 5, std::chrono::milliseconds(256), 5 | ||
# 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 we add a CI build for 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.
Yes, I will add on this PR
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.
There are same problems between log processor and span processor.
Could you please add timeout mechanism for these two proccesors in case of the exporter miss the callback and add some tests about it to ensure the processors will not wait for ever?
sdk/src/logs/batch_log_processor.cc
Outdated
@@ -236,45 +243,61 @@ void BatchLogProcessor::Export() | |||
} | |||
else | |||
{ | |||
std::unique_ptr<AsyncExportData> export_data(new AsyncExportData()); | |||
export_data->recordables = |
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.
I think we shouldn't save span of recordables here, it will be invalid after this function return.Also the std::unique_ptr<Recordable>
in spans_arr
may be moved into exporter after calling exporter_->Export
and left all elements nullptr in it.
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.
ok, should we save any state for async export? If not, will atomic counter suffice to keep track of all running exports?
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.
I think we can't check which callback is missing or timeout, so we can't recover it if we only has the atomic counter.
According to open-telemetry/opentelemetry-specification#2434 (comment)_ and open-telemetry/opentelemetry-specification#2434, it's the responsibility of exporters to do the retry logic. I think we can just save a sequence or a id related to the callback , but not every recordable.
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.
I have one more query:
Lets assume max_async_export is set to 8. Now, no callbacks are received on all 8 async export calls. Now, what should we do before we make the 9th async export - Should we discard the recordables and do not make any export call ? What is your suggestion?
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.
I think we can just drop it, just like the sync mode.
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 to be clear of the question, if the max number of async requests is ongoing, and the circular queue is full, we should drop the incoming recordable ( as in sync mode).
if (is_export_async_) | ||
{ | ||
std::unique_lock<std::mutex> lk(synchronization_data_->async_shutdown_m); | ||
while (true) |
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 still need a indefinite loop to wait all running exports to finish in destructor? Or we may start to destroy a exporter when it's still running.
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.
Waiting logic to wait on all running exports to finish is added in Shutdown function.
@@ -292,13 +315,6 @@ void BatchLogProcessor::NotifyCompletion( | |||
synchronization_data->is_force_flush_notified.store(true, std::memory_order_release); | |||
synchronization_data->force_flush_cv.notify_one(); | |||
} | |||
|
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 need to call async_export_waker.notify_all()
here, or all threads call Export and Shutdown will be blocked util timeout.
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.
Yeah will do this.
sdk/src/logs/batch_log_processor.cc
Outdated
return export_data_storage_->running_async_exports.size() <= 0; | ||
}); | ||
|
||
while (CleanUpGarbageAsyncData() == 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 use async_export_waker to wait a event instead of busy wait 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.
Are you talking about async_export_waker.notify_all() to be called in other areas?
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.
I mean while (CleanUpGarbageAsyncData() == false);
is a busy wait. CleanUpGarbageAsyncData
only lock async_export_data_m
, and this lock has a very small critial section, it's almost busy wait when worker thread is exited when exporter is still exporting data in other thread.
|
||
for (int i = 0; i < num_logs; ++i) | ||
{ | ||
if (i % 20 == 0) | ||
{ | ||
std::this_thread::sleep_for(std::chrono::milliseconds(1)); |
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.
Why do we need sleep here?I think it's better to use a condition_variable to get notify if we want to know when jobs are done and it's ready to send next round datas.
Sometimes the CI runner is slow and can not finish this job in 1 millisecond.
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.
ok will take care this.
@lalitb Could we add
|
Yes, we should add it, and can be removed once the feature branch is merged to main. |
void WaitForShutdownCompletion(); | ||
struct AsyncExportData | ||
{ | ||
nostd::span<std::unique_ptr<Recordable>> recordables; |
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.
Why do we need a span of recordable here? It is just a reference and may get invalidated.
sudo ./ci/setup_ci_environment.sh | ||
sudo ./ci/install_bazelisk.sh | ||
- name: run tests | ||
run: ./ci/do_ci.sh bazel.with_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 enable -DENABLE_ASYNC_EXPORT_PREVIEW
for all jobs but left one without it?I think we also need benchmark,address sanitizer, thread sanitizer and so on for this.
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 point me to some examples to refer to for benchmark, address sanitizer and thread sanitizer for this?
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.
Sorry, I missed something, bazel.asan
, bazel.tsan
and bazel.valgrind
already enable async APIs now, but benchmark
still use $BAZEL_OPTIONS
, I think we should also use $BAZEL_OPTIONS_ASYNC
.
And we should also add --copt=-DENABLE_ASYNC_EXPORT_PREVIEW
or -DWITH_ASYNC_EXPORT_PREVIEW=ON
into all actions in ci/do_ci.ps1, it's used on Windows.
On my suggestion, we can use a LRU map to replace We can use |
If we force call callback for all timed-out exports, we would free up the ids to be re-used by new exports. This way we would be allowing number of running exports > max_export_async. Do you have any thoughts on this? |
Maybe we can add a interface to notify exporter to abort timeout exporting? What your thought about it ? |
If there are |
Just to confirm, I am re-iterating what the behaviour is now in this PR
|
Thanks for summarising - 1 and 3 look good to me. I need to check the force-flush code once again, but can't we make it return/fail (without changing the exporter interface) if exports don't return within the timeout. It should definitely not block indefinitely. |
@owent I am not clear if there is any specific reason to keep ForceFlush blocking (even though there is timeout)? wait_result never becomes true even if timeout expires, without callback being called. |
Even in the initial sync implementation for BatchSpanProcessor, force-flush block indefinitely, though specs clearly states it should abort/complete within the timeout. So seems we were never specs compliant :) |
In that case, let me not touch ForceFlush for now in this PR. We can take up in separate PR to fix that. Do you agree? |
Agree. some exporters implement the timeout/abort while some do not, Ithink we can finish it in the future. |
Agree. |
Codecov Report
@@ Coverage Diff @@
## async-changes #1306 +/- ##
================================================
Coverage ? 91.46%
================================================
Files ? 220
Lines ? 8164
Branches ? 0
================================================
Hits ? 7466
Misses ? 698
Partials ? 0 |
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
@owent There was a discussing with @DebajitDas on this PR in today's community meeting. We felt it would be better from maintainability prospective to introduce a separate AsyncBatchSpanProcessor / AsyncBatchLogProcessor and have the async changes for processor confined there. We can still have feature flag to enable/disable these two components. Let us know if that would be fine? We can afterwards see if similar thing can be done for Exporter. |
That's fine. I think we need think about how to share codes with aync and async exporter by this way. |
…ionality from sync processors
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.
There a a lot similar code between async and sync processors and tests. Could we add some classes to maintain these codes instead of jusy copy them?
, | ||
is_async | ||
provider->AddProcessor( | ||
std::unique_ptr<sdk::logs::LogProcessor>(new sdk::logs::AsyncBatchLogProcessor( |
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 create one test for AddProcessor
and another for AsyncBatchLogProcessor
, just like exporters/otlp/test/otlp_http_exporter_test.cc
?
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.
Thanks, done in the next PR
{ | ||
namespace logs | ||
{ | ||
AsyncBatchLogProcessor::AsyncBatchLogProcessor( |
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.
I think we can only remove this and only keep the constructor using const AsyncBatchLogProcessorOptions &options
, just like AsyncBatchSpanProcessor
. The similar constructor in BatchLogProcessor
is just for compatibility.
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.
Thanks, added in the PR
Can we make AsyncBatchSpanProcessor derived from BatchSpanProcessor ? This way we can reduce lots of duplicate code. What do you think? |
I think it's fine right now. |
It looks me good idea to derive Async if that allows us to eliminate lots of duplicate code. Unless @owent you see any issue in this, will leave it to you to decide :) |
@@ -77,21 +77,21 @@ class BatchLogProcessor : public LogProcessor | |||
const BatchLogProcessorOptions &options); | |||
|
|||
/** Makes a new recordable **/ | |||
std::unique_ptr<Recordable> MakeRecordable() noexcept override; | |||
virtual std::unique_ptr<Recordable> MakeRecordable() noexcept override; |
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 not add virtual
keyword for overried methods. Clang will warning this.
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.
ok, will make the change.
* equal to max_queue_size. | ||
*/ | ||
size_t max_export_batch_size = 512; | ||
BatchSpanProcessorOptions options; |
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 want to discuss, is it simpiler to declare struct AsyncBatchSpanProcessorOptions : public BatchSpanProcessorOptions
?
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.
Thanks, this is much better.
Shutdown(); | ||
} | ||
} | ||
AsyncBatchLogProcessor::~AsyncBatchLogProcessor() {} |
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 shutdown here.If it's shutdown in destructor of base class. the AsyncBatchLogProcessor::Shutdown
will not be called.
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.
Agreed
@@ -362,8 +145,8 @@ bool AsyncBatchLogProcessor::Shutdown(std::chrono::microseconds timeout) noexcep | |||
GetWaitAdjustedTime(timeout, start_time); | |||
// wait for all async exports to complete and return if timeout reached. | |||
{ | |||
std::unique_lock<std::mutex> lock(synchronization_data_->async_export_data_m); | |||
synchronization_data_->async_export_waker.wait_for(lock, timeout, [this] { | |||
std::unique_lock<std::mutex> lock(export_data_storage_->async_export_data_m); |
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.
I think we should loop wair_for scheduled_delay_millis_
in a loop until timeout is reached.When async_export_waker.notify_all()
is called between predicate callback and the real lock operation.This may wait for ever.
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.
I am not clear on this. Could you please elaborate on how this might wait forever or share some sample code which fixes this?
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 BatchLogProcessor::ForceFlush
at https://github.com/DebajitDas/opentelemetry-cpp/blob/export-changes/sdk/src/logs/batch_log_processor.cc#L112.
The condition_variable::wait_for(...)
implementation calls predicate callback and then lock API(pthread_mutex_lock
for example). If condition_variable::notify_one()
or condition_variable::notify_all()
is call between callback and then lock API. Then this condition_variable will wait for timeout
without notify any more, and timeout
may be very large.
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.
Thanks, for the clarification. I understood your concern here.
I re-looked into the BatchLogProcessor::ForceFlush at https://github.com/DebajitDas/opentelemetry-cpp/blob/export-changes/sdk/src/logs/batch_log_processor.cc#L112. So it handles this case as follows:
- when the timeout is set as std::chrono::duration<Rep, Period>::max() or too large, we are waiting on conditiion variable for scheduled_delay_millis_ in loop untill the predicate is true.
- When the timeout is set as some finite value, we wait till timeout.
Now, if we introduce the above concept in Shutdown, then the predicate in case 1 above would never be true if no callback is called and hence it would block indefinitely. Is this valid then?
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.
The problem is the predicate counld be true, but the condition_variable may not be notified any more when shutdown.
Let's looks into the implement of wait_for
in libstdc++ (GCC 11.2.0).
template<typename _Clock, typename _Duration, typename _Predicate>
bool wait_until(unique_lock<mutex>& __lock, const chrono::time_point<_Clock, _Duration>& __atime, _Predicate __p) {
while (!__p())
if (wait_until(__lock, __atime) == cv_status::timeout) // The real lock operation
return __p();
return true;
}
template<typename _Rep, typename _Period>
cv_status wait_for(unique_lock<mutex>& __lock, const chrono::duration<_Rep, _Period>& __rtime) {
using __dur = typename steady_clock::duration;
return wait_until(__lock, steady_clock::now() + chrono::__detail::ceil<__dur>(__rtime));
}
And the threads run as below:
The thread call Shutdown() |
Background woker thread | |
---|---|---|
while (!__p()) |
- | __p() returns false |
- | export_data->export_ids.push(id); |
|
- | export_data->export_ids_flag[id - 1] = true; |
__p() should return true now |
- | export_data_storage->async_export_waker.notify_all(); |
notify_all() is just ignored because it not locked yet. |
if (wait_until(__lock, __atime) == cv_status::timeout) |
- | async_export_waker is locked now, and wait until __atime |
What I mean is just let async_export_waker
have a change to run __p()
again and break this loop in this situation.
And this happened several times in CI jobswhen I pushed my first async version of OtlpHttpClient
before.
BTW: if(WITH_METRICS_PREVIEW)
add_definitions(-DENABLE_METRICS_PREVIEW)
endif() These scripts in if(WITH_METRICS_PREVIEW)
target_compile_definitions(opentelemetry_api INTERFACE ENABLE_METRICS_PREVIEW)
endif() Other options are already be moved in |
You must be talking about moving WITH_ASYNC_EXPORT_PREVIEW instead. |
Yes, sorry for my mistake. |
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 now.
commit c484d16 Merge: 0abf162 7e90dae Author: WenTao Ou <admin@owent.net> Date: Tue Jun 7 10:57:25 2022 +0800 Merge remote-tracking branch 'opentelemetry/main' into async-changes Signed-off-by: WenTao Ou <admin@owent.net> # Conflicts: # CHANGELOG.md commit 0abf162 Merge: cd3655f 5c8f476 Author: WenTao Ou <admin@owent.net> 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 <admin@owent.net> 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 <admin@owent.net> # 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 <admin@owent.net> Date: Fri May 20 13:25:24 2022 +0800 Merge main into async changes (open-telemetry#1411) commit 0aebd6e Author: WenTao Ou <admin@owent.net> Date: Mon May 16 23:26:41 2022 +0800 Merge main into async changes (open-telemetry#1395) commit 08a12b5 Author: WenTao Ou <admin@owent.net> Date: Thu May 12 00:51:48 2022 +0800 Cocurrency otlp http session (open-telemetry#1317) commit c614258 Author: DEBAJIT DAS <85024550+DebajitDas@users.noreply.github.com> 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 <admin@owent.net> 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 <admin@owent.net> * 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 <admin@owent.net> * 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 <admin@owent.net> * Add building test without RTTI (open-telemetry#1294) * Remove implicitly deleted default constructor (open-telemetry#1267) Co-authored-by: Tom Tan <Tom.Tan@microsoft.com> Co-authored-by: Lalit Kumar Bhasin <lalit_fin@yahoo.com> * [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 <lalit_fin@yahoo.com> * 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 <admin@owent.net> * Using clang-format-10 to format codes(clang-format-14 has a different output) Signed-off-by: owent <admin@owent.net> Co-authored-by: Ehsan Saei <71217171+esigo@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Lalit Kumar Bhasin <lalit_fin@yahoo.com> Co-authored-by: Tom Tan <Tom.Tan@microsoft.com> Co-authored-by: Ben Landrum <71329856+benlandrum@users.noreply.github.com> Co-authored-by: jmanjon <67091862+juandemanjon@users.noreply.github.com> commit 73f3515 Author: WenTao Ou <admin@owent.net> Date: Wed Apr 6 15:41:42 2022 +0800 Merge main into async changes (open-telemetry#1321) commit ad3bdfe Author: DEBAJIT DAS <85024550+DebajitDas@users.noreply.github.com> Date: Thu Mar 31 09:56:24 2022 +0530 Added feature flag for asynchronous export (open-telemetry#1295) commit 15e7725 Author: WenTao Ou <admin@owent.net> Date: Tue Mar 29 13:09:11 2022 +0800 Cocurrency otlp http session (open-telemetry#1281) commit 729c2f8 Author: DEBAJIT DAS <85024550+DebajitDas@users.noreply.github.com> 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 <85024550+DebajitDas@users.noreply.github.com> Date: Mon Mar 21 19:31:51 2022 +0530 Async callback Exporter to Processor changes (open-telemetry#1275) commit c3eaa9d Author: WenTao Ou <owentou@tencent.com> Date: Mon Mar 21 14:41:51 2022 +0800 Cocurrency otlp http session (open-telemetry#1274)
commit f357102 Author: WenTao Ou <admin@owent.net> 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 <admin@owent.net> * 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 <admin@owent.net> * 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 <admin@owent.net> * Add building test without RTTI (open-telemetry#1294) * Remove implicitly deleted default constructor (open-telemetry#1267) Co-authored-by: Tom Tan <Tom.Tan@microsoft.com> Co-authored-by: Lalit Kumar Bhasin <lalit_fin@yahoo.com> * [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 <lalit_fin@yahoo.com> * 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 <lalit_fin@yahoo.com> * fix: missing link to nlohmann_json (open-telemetry#1390) * Getting started document using ostream exporter (open-telemetry#1394) Co-authored-by: Reiley Yang <reyang@microsoft.com> * 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 <lalit_fin@yahoo.com> * 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 <71217171+esigo@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Lalit Kumar Bhasin <lalit_fin@yahoo.com> Co-authored-by: Tom Tan <Tom.Tan@microsoft.com> Co-authored-by: Ben Landrum <71329856+benlandrum@users.noreply.github.com> Co-authored-by: jmanjon <67091862+juandemanjon@users.noreply.github.com> Co-authored-by: Zsolt Bölöny <bolony.zsolt@gmail.com> Co-authored-by: Leo Di Donato <leodidonato@gmail.com> Co-authored-by: Reiley Yang <reyang@microsoft.com> Co-authored-by: Lalit Kumar Bhasin <labhas@microsoft.com> Co-authored-by: Hamed Mansouri <hamed0381@gmail.com> Co-authored-by: ztao <t@taozj.org> Co-authored-by: Flier Lu <flier@users.noreply.github.com> Co-authored-by: Marc Alff <marc.alff@free.fr> Co-authored-by: Marc Alff <marc.alff@oracle.com> commit d7b03e8 Author: WenTao Ou <admin@owent.net> Date: Fri May 20 13:25:24 2022 +0800 Merge main into async changes (open-telemetry#1411) commit 0aebd6e Author: WenTao Ou <admin@owent.net> Date: Mon May 16 23:26:41 2022 +0800 Merge main into async changes (open-telemetry#1395) commit 08a12b5 Author: WenTao Ou <admin@owent.net> Date: Thu May 12 00:51:48 2022 +0800 Cocurrency otlp http session (open-telemetry#1317) commit c614258 Author: DEBAJIT DAS <85024550+DebajitDas@users.noreply.github.com> 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 <admin@owent.net> 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 <admin@owent.net> * 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 <admin@owent.net> * 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 <admin@owent.net> * Add building test without RTTI (open-telemetry#1294) * Remove implicitly deleted default constructor (open-telemetry#1267) Co-authored-by: Tom Tan <Tom.Tan@microsoft.com> Co-authored-by: Lalit Kumar Bhasin <lalit_fin@yahoo.com> * [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 <lalit_fin@yahoo.com> * 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 <admin@owent.net> * Using clang-format-10 to format codes(clang-format-14 has a different output) Signed-off-by: owent <admin@owent.net> Co-authored-by: Ehsan Saei <71217171+esigo@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Lalit Kumar Bhasin <lalit_fin@yahoo.com> Co-authored-by: Tom Tan <Tom.Tan@microsoft.com> Co-authored-by: Ben Landrum <71329856+benlandrum@users.noreply.github.com> Co-authored-by: jmanjon <67091862+juandemanjon@users.noreply.github.com> commit 73f3515 Author: WenTao Ou <admin@owent.net> Date: Wed Apr 6 15:41:42 2022 +0800 Merge main into async changes (open-telemetry#1321) commit ad3bdfe Author: DEBAJIT DAS <85024550+DebajitDas@users.noreply.github.com> Date: Thu Mar 31 09:56:24 2022 +0530 Added feature flag for asynchronous export (open-telemetry#1295) commit 15e7725 Author: WenTao Ou <admin@owent.net> Date: Tue Mar 29 13:09:11 2022 +0800 Cocurrency otlp http session (open-telemetry#1281) commit 729c2f8 Author: DEBAJIT DAS <85024550+DebajitDas@users.noreply.github.com> 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 <85024550+DebajitDas@users.noreply.github.com> Date: Mon Mar 21 19:31:51 2022 +0530 Async callback Exporter to Processor changes (open-telemetry#1275) commit c3eaa9d Author: WenTao Ou <owentou@tencent.com> Date: Mon Mar 21 14:41:51 2022 +0800 Cocurrency otlp http session (open-telemetry#1274)
commit daf5091 Author: WenTao Ou <admin@owent.net> 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 <admin@owent.net> * 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 <admin@owent.net> * 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 <admin@owent.net> * Add building test without RTTI (open-telemetry#1294) * Remove implicitly deleted default constructor (open-telemetry#1267) Co-authored-by: Tom Tan <Tom.Tan@microsoft.com> Co-authored-by: Lalit Kumar Bhasin <lalit_fin@yahoo.com> * [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 <lalit_fin@yahoo.com> * 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 <lalit_fin@yahoo.com> * fix: missing link to nlohmann_json (open-telemetry#1390) * Getting started document using ostream exporter (open-telemetry#1394) Co-authored-by: Reiley Yang <reyang@microsoft.com> * 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 <lalit_fin@yahoo.com> * 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 <admin@owent.net> * Remove invalid changelog Signed-off-by: WenTao Ou <admin@owent.net> * Fix compiling problems without `ENABLE_ASYNC_EXPORT` Signed-off-by: WenTao Ou <admin@owent.net> * Always return `ExportResult::kSuccess` Signed-off-by: WenTao Ou <admin@owent.net> Co-authored-by: Ehsan Saei <71217171+esigo@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Lalit Kumar Bhasin <lalit_fin@yahoo.com> Co-authored-by: Tom Tan <Tom.Tan@microsoft.com> Co-authored-by: Ben Landrum <71329856+benlandrum@users.noreply.github.com> Co-authored-by: jmanjon <67091862+juandemanjon@users.noreply.github.com> Co-authored-by: Zsolt Bölöny <bolony.zsolt@gmail.com> Co-authored-by: Leo Di Donato <leodidonato@gmail.com> Co-authored-by: Reiley Yang <reyang@microsoft.com> Co-authored-by: Lalit Kumar Bhasin <labhas@microsoft.com> Co-authored-by: Hamed Mansouri <hamed0381@gmail.com> Co-authored-by: ztao <t@taozj.org> Co-authored-by: Flier Lu <flier@users.noreply.github.com> Co-authored-by: Marc Alff <marc.alff@free.fr> Co-authored-by: Marc Alff <marc.alff@oracle.com> Co-authored-by: univisionsrl <31103417+univisionsrl@users.noreply.github.com> commit f357102 Author: WenTao Ou <admin@owent.net> 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 <admin@owent.net> * 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 <admin@owent.net> * 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 <admin@owent.net> * Add building test without RTTI (open-telemetry#1294) * Remove implicitly deleted default constructor (open-telemetry#1267) Co-authored-by: Tom Tan <Tom.Tan@microsoft.com> Co-authored-by: Lalit Kumar Bhasin <lalit_fin@yahoo.com> * [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 <lalit_fin@yahoo.com> * 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 <lalit_fin@yahoo.com> * fix: missing link to nlohmann_json (open-telemetry#1390) * Getting started document using ostream exporter (open-telemetry#1394) Co-authored-by: Reiley Yang <reyang@microsoft.com> * 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 <lalit_fin@yahoo.com> * 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 <71217171+esigo@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Lalit Kumar Bhasin <lalit_fin@yahoo.com> Co-authored-by: Tom Tan <Tom.Tan@microsoft.com> Co-authored-by: Ben Landrum <71329856+benlandrum@users.noreply.github.com> Co-authored-by: jmanjon <67091862+juandemanjon@users.noreply.github.com> Co-authored-by: Zsolt Bölöny <bolony.zsolt@gmail.com> Co-authored-by: Leo Di Donato <leodidonato@gmail.com> Co-authored-by: Reiley Yang <reyang@microsoft.com> Co-authored-by: Lalit Kumar Bhasin <labhas@microsoft.com> Co-authored-by: Hamed Mansouri <hamed0381@gmail.com> Co-authored-by: ztao <t@taozj.org> Co-authored-by: Flier Lu <flier@users.noreply.github.com> Co-authored-by: Marc Alff <marc.alff@free.fr> Co-authored-by: Marc Alff <marc.alff@oracle.com> commit d7b03e8 Author: WenTao Ou <admin@owent.net> Date: Fri May 20 13:25:24 2022 +0800 Merge main into async changes (open-telemetry#1411) commit 0aebd6e Author: WenTao Ou <admin@owent.net> Date: Mon May 16 23:26:41 2022 +0800 Merge main into async changes (open-telemetry#1395) commit 08a12b5 Author: WenTao Ou <admin@owent.net> Date: Thu May 12 00:51:48 2022 +0800 Cocurrency otlp http session (open-telemetry#1317) commit c614258 Author: DEBAJIT DAS <85024550+DebajitDas@users.noreply.github.com> 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 <admin@owent.net> 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 <admin@owent.net> * 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 <admin@owent.net> * 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 <admin@owent.net> * Add building test without RTTI (open-telemetry#1294) * Remove implicitly deleted default constructor (open-telemetry#1267) Co-authored-by: Tom Tan <Tom.Tan@microsoft.com> Co-authored-by: Lalit Kumar Bhasin <lalit_fin@yahoo.com> * [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 <lalit_fin@yahoo.com> * 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 <admin@owent.net> * Using clang-format-10 to format codes(clang-format-14 has a different output) Signed-off-by: owent <admin@owent.net> Co-authored-by: Ehsan Saei <71217171+esigo@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Lalit Kumar Bhasin <lalit_fin@yahoo.com> Co-authored-by: Tom Tan <Tom.Tan@microsoft.com> Co-authored-by: Ben Landrum <71329856+benlandrum@users.noreply.github.com> Co-authored-by: jmanjon <67091862+juandemanjon@users.noreply.github.com> commit 73f3515 Author: WenTao Ou <admin@owent.net> Date: Wed Apr 6 15:41:42 2022 +0800 Merge main into async changes (open-telemetry#1321) commit ad3bdfe Author: DEBAJIT DAS <85024550+DebajitDas@users.noreply.github.com> Date: Thu Mar 31 09:56:24 2022 +0530 Added feature flag for asynchronous export (open-telemetry#1295) commit 15e7725 Author: WenTao Ou <admin@owent.net> Date: Tue Mar 29 13:09:11 2022 +0800 Cocurrency otlp http session (open-telemetry#1281) commit 729c2f8 Author: DEBAJIT DAS <85024550+DebajitDas@users.noreply.github.com> 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 <85024550+DebajitDas@users.noreply.github.com> Date: Mon Mar 21 19:31:51 2022 +0530 Async callback Exporter to Processor changes (open-telemetry#1275) commit c3eaa9d Author: WenTao Ou <owentou@tencent.com> Date: Mon Mar 21 14:41:51 2022 +0800 Cocurrency otlp http session (open-telemetry#1274)
Fixes #1239
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