@@ -27,6 +27,66 @@ Increment the:
27
27
* [ EXPORTER] Fix throw in OtlpGrpcMetricExporter with shared grpc client
28
28
[ #3243 ] ( https://github.com/open-telemetry/opentelemetry-cpp/pull/3243 )
29
29
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
+
30
90
## [ 1.18 2024-11-25]
31
91
32
92
* [ EXPORTER] Fix crash in ElasticsearchLogRecordExporter
0 commit comments