@@ -27,6 +27,66 @@ Increment the:
2727* [ EXPORTER] Fix throw in OtlpGrpcMetricExporter with shared grpc client
2828 [ #3243 ] ( https://github.com/open-telemetry/opentelemetry-cpp/pull/3243 )
2929
30+ * [ SDK] Better control of threads executed by opentelemetry-cpp
31+ [ #3175 ] ( https://github.com/open-telemetry/opentelemetry-cpp/pull/3175 )
32+
33+ New features:
34+
35+ * [ SDK] Better control of threads executed by opentelemetry-cpp
36+ [ #3175 ] ( https://github.com/open-telemetry/opentelemetry-cpp/pull/3175 )
37+
38+ * This feature provides a way for applications,
39+ when configuring the SDK and exporters,
40+ to participate in the execution path
41+ of internal opentelemetry-cpp threads.
42+
43+ * The opentelemetry-cpp library provides the following:
44+
45+ * a new ThreadInstrumentation interface,
46+ * new runtime options structures, to optionally configure the SDK:
47+ * BatchSpanProcessorRuntimeOptions
48+ * PeriodicExportingMetricReaderRuntimeOptions
49+ * BatchLogRecordProcessorRuntimeOptions
50+ * new runtime options structures,
51+ to optionally configure the OTLP HTTP exporters:
52+ * OtlpHttpExporterRuntimeOptions
53+ * OtlpHttpMetricExporterRuntimeOptions
54+ * OtlpHttpLogRecordExporterRuntimeOptions
55+ * new ThreadInstrumentation parameters,
56+ to optionally configure the CURL HttpClient
57+ * new runtime options structures,
58+ to optionally configure the OTLP FILE exporters:
59+ * OtlpFileExporterRuntimeOptions
60+ * OtlpFileMetricExporterRuntimeOptions
61+ * OtlpFileLogRecordExporterRuntimeOptions
62+ * new runtime options structure,
63+ to optionally configure the OTLP FILE client:
64+ * OtlpFileClientRuntimeOptions
65+
66+ * Using the optional runtime options structures,
67+ an application can subclass the ThreadInstrumentation interface,
68+ and be notified of specific events of interest during the execution
69+ of an internal opentelemetry-cpp thread.
70+
71+ * This allows an application to call, for example:
72+
73+ * pthread_setaffinity_np(), for better performances,
74+ * setns(), to control the network namespace used by HTTP CURL connections
75+ * pthread_setname_np(), for better observability from the operating system
76+ * many more specific apis, as needed
77+
78+ * See the documentation for ThreadInstrumentation for details.
79+
80+ * A new example program, example_otlp_instrumented_http,
81+ shows how to use the feature,
82+ and add application logic in the thread execution code path.
83+
84+ * Note that this feature is experimental,
85+ protected by a WITH_THREAD_INSTRUMENTATION_PREVIEW
86+ flag in CMake. Various runtime options structures,
87+ as well as the thread instrumentation interface,
88+ may change without notice before this feature is declared stable.
89+
3090## [ 1.18 2024-11-25]
3191
3292* [ EXPORTER] Fix crash in ElasticsearchLogRecordExporter
0 commit comments