Skip to content

Commit 2253c8e

Browse files
authored
Merge branch 'main' into remove-prometheus-timestamps
2 parents 4530c73 + 9b983a2 commit 2253c8e

14 files changed

Lines changed: 198 additions & 104 deletions

File tree

.github/workflows/benchmark.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ jobs:
6060
egress-policy: audit
6161

6262
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
63-
- uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # main March 2025
63+
- uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # main March 2025
6464
with:
6565
name: benchmark_results
6666
path: benchmarks

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,18 @@ Increment the:
2424
* [SEMANTIC CONVENTIONS] Upgrade to semantic conventions 1.40.0
2525
[#3881](https://github.com/open-telemetry/opentelemetry-cpp/pull/3881)
2626

27+
* [BUILD] Revisit EventLogger deprecation
28+
[#3855](https://github.com/open-telemetry/opentelemetry-cpp/pull/3855)
29+
30+
Important changes:
31+
32+
* [BUILD] Revisit EventLogger deprecation
33+
[#3855](https://github.com/open-telemetry/opentelemetry-cpp/pull/3855)
34+
35+
* File `DEPRECATED.md` contains information about current deprecation
36+
plans.
37+
* Please adjust your application accordingly, to avoid disruption.
38+
2739
## [1.25 2026-02-07]
2840

2941
* [RELEASE] Bump main branch to 1.25.0-dev (#3759)

DEPRECATED.md

Lines changed: 81 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,87 @@ N/A
4646

4747
## [opentelemetry-cpp API]
4848

49-
N/A
49+
### Deprecation of EventLogger
50+
51+
#### Announcement (EventLogger)
52+
53+
The `EventLogger` API was deprecated by:
54+
55+
* [API] Deprecate event logger
56+
[#3285](https://github.com/open-telemetry/opentelemetry-cpp/pull/3285)
57+
58+
on Feb 25, 2025, as published in release 1.20.
59+
60+
#### Motivation (EventLogger)
61+
62+
The specification for `EventLogger` was deprecated by:
63+
64+
* Deprecate Event API and SDK in favor of Emit Event in the Log API
65+
[#4319](https://github.com/open-telemetry/opentelemetry-specification/pull/4319)
66+
67+
The opentelemetry-cpp API and SDK deprecates the EventLogger to be aligned
68+
with the opentelemetry specification.
69+
70+
#### Scope (EventLogger)
71+
72+
The following classes or methods are deprecated in ABI version 1:
73+
74+
* API
75+
* class opentelemetry::logs::EventLogger
76+
* class opentelemetry::logs::EventLoggerProvider
77+
* class opentelemetry::logs::NoopEventLogger
78+
* class opentelemetry::logs::NoopEventLoggerProvider
79+
* method opentelemetry::logs::Provider::GetEventLoggerProvider()
80+
* method opentelemetry::logs::Provider::SetEventLoggerProvider()
81+
* SDK
82+
* class opentelemetry::sdk::logs::EventLogger
83+
* class opentelemetry::sdk::logs::EventLoggerProvider
84+
* class opentelemetry::sdk::logs::EventLoggerProviderFactory
85+
86+
The same are removed from ABI version 2.
87+
88+
#### Mitigation (EventLogger)
89+
90+
In respective order, the following should be used in place of `EventLogger`:
91+
92+
* API
93+
* class opentelemetry::logs::Logger
94+
* class opentelemetry::logs::LoggerProvider
95+
* class opentelemetry::logs::NoopLogger
96+
* class opentelemetry::logs::NoopLoggerProvider
97+
* method opentelemetry::logs::Provider::GetLoggerProvider()
98+
* method opentelemetry::logs::Provider::SetLoggerProvider()
99+
* SDK
100+
* class opentelemetry::sdk::logs::Logger
101+
* class opentelemetry::sdk::logs::LoggerProvider
102+
* class opentelemetry::sdk::logs::LoggerProviderFactory
103+
104+
Instrumented applications, that currently use
105+
`opentelemetry::logs::Provider::GetEventLoggerProvider()`,
106+
are strongly encouraged to migrate and use
107+
`opentelemetry::logs::Provider::GetLoggerProvider()` instead.
108+
109+
Main applications, when installing and configuring an SDK, that currently use
110+
`opentelemetry::logs::Provider::SetEventLoggerProvider()`,
111+
are strongly encouraged to migrate and use
112+
`opentelemetry::logs::Provider::SetLoggerProvider()` instead.
113+
114+
This migration can be implemented now,
115+
as `Logger` is available already in ABI version 1.
116+
117+
This migration is mandatory and a pre requisite for adoption of ABI version 2 later.
118+
119+
#### Planned removal (EventLogger)
120+
121+
All the deprecated code is already removed from ABI version 2, since Feb
122+
2025.
123+
124+
While EventLogger will not be removed from ABI version 1,
125+
the ABI version 1 itself will be deprecated and decommissioned in the long
126+
term, after ABI version 2 is declared stable.
127+
128+
By the time only ABI version 2 is available and supported,
129+
any code still using the deprecated `EventLogger` will break.
50130

51131
## [opentelemetry-cpp SDK]
52132

api/include/opentelemetry/logs/event_logger.h

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,11 @@ OPENTELEMETRY_BEGIN_NAMESPACE
1515
namespace logs
1616
{
1717
#if OPENTELEMETRY_ABI_VERSION_NO < 2
18-
# if defined(_MSC_VER)
19-
# pragma warning(push)
20-
# pragma warning(disable : 4996)
21-
# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__)
22-
# pragma GCC diagnostic push
23-
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
24-
# elif defined(__clang__) || defined(__apple_build_version__)
25-
# pragma clang diagnostic push
26-
# pragma clang diagnostic ignored "-Wdeprecated-declarations"
27-
# endif
28-
2918
/**
3019
* Handles event log record creation.
20+
* @deprecated
3121
**/
32-
class OPENTELEMETRY_DEPRECATED EventLogger
22+
class EventLogger
3323
{
3424
public:
3525
virtual ~EventLogger() = default;
@@ -88,14 +78,6 @@ class OPENTELEMETRY_DEPRECATED EventLogger
8878
void IgnoreTraitResult(ValueType &&...)
8979
{}
9080
};
91-
92-
# if defined(_MSC_VER)
93-
# pragma warning(pop)
94-
# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__)
95-
# pragma GCC diagnostic pop
96-
# elif defined(__clang__) || defined(__apple_build_version__)
97-
# pragma clang diagnostic pop
98-
# endif
9981
#endif
10082
} // namespace logs
10183
OPENTELEMETRY_END_NAMESPACE

api/include/opentelemetry/logs/event_logger_provider.h

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,11 @@ class EventLogger;
1515
class Logger;
1616

1717
#if OPENTELEMETRY_ABI_VERSION_NO < 2
18-
# if defined(_MSC_VER)
19-
# pragma warning(push)
20-
# pragma warning(disable : 4996)
21-
# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__)
22-
# pragma GCC diagnostic push
23-
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
24-
# elif defined(__clang__) || defined(__apple_build_version__)
25-
# pragma clang diagnostic push
26-
# pragma clang diagnostic ignored "-Wdeprecated-declarations"
27-
# endif
28-
2918
/**
3019
* Creates new EventLogger instances.
20+
* @deprecated
3121
*/
32-
class OPENTELEMETRY_DEPRECATED EventLoggerProvider
22+
class EventLoggerProvider
3323
{
3424
public:
3525
virtual ~EventLoggerProvider() = default;
@@ -43,14 +33,6 @@ class OPENTELEMETRY_DEPRECATED EventLoggerProvider
4333
nostd::shared_ptr<Logger> delegate_logger,
4434
nostd::string_view event_domain) noexcept = 0;
4535
};
46-
47-
# if defined(_MSC_VER)
48-
# pragma warning(pop)
49-
# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__)
50-
# pragma GCC diagnostic pop
51-
# elif defined(__clang__) || defined(__apple_build_version__)
52-
# pragma clang diagnostic pop
53-
# endif
5436
#endif
5537
} // namespace logs
5638
OPENTELEMETRY_END_NAMESPACE

api/include/opentelemetry/logs/noop.h

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -91,17 +91,10 @@ class NoopLoggerProvider final : public LoggerProvider
9191
};
9292

9393
#if OPENTELEMETRY_ABI_VERSION_NO < 2
94-
# if defined(_MSC_VER)
95-
# pragma warning(push)
96-
# pragma warning(disable : 4996)
97-
# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__)
98-
# pragma GCC diagnostic push
99-
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
100-
# elif defined(__clang__) || defined(__apple_build_version__)
101-
# pragma clang diagnostic push
102-
# pragma clang diagnostic ignored "-Wdeprecated-declarations"
103-
# endif
104-
94+
/**
95+
* No-op implementation of a EventLogger.
96+
* @deprecated
97+
*/
10598
class NoopEventLogger final : public EventLogger
10699
{
107100
public:
@@ -120,6 +113,7 @@ class NoopEventLogger final : public EventLogger
120113

121114
/**
122115
* No-op implementation of a EventLoggerProvider.
116+
* @deprecated
123117
*/
124118
class NoopEventLoggerProvider final : public EventLoggerProvider
125119
{
@@ -138,14 +132,6 @@ class NoopEventLoggerProvider final : public EventLoggerProvider
138132
private:
139133
nostd::shared_ptr<EventLogger> event_logger_;
140134
};
141-
142-
# if defined(_MSC_VER)
143-
# pragma warning(pop)
144-
# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__)
145-
# pragma GCC diagnostic pop
146-
# elif defined(__clang__) || defined(__apple_build_version__)
147-
# pragma clang diagnostic pop
148-
# endif
149135
#endif
150136

151137
} // namespace logs

api/include/opentelemetry/logs/provider.h

Lines changed: 2 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -48,21 +48,12 @@ class OPENTELEMETRY_EXPORT Provider
4848
}
4949

5050
#if OPENTELEMETRY_ABI_VERSION_NO < 2
51-
# if defined(_MSC_VER)
52-
# pragma warning(push)
53-
# pragma warning(disable : 4996)
54-
# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__)
55-
# pragma GCC diagnostic push
56-
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
57-
# elif defined(__clang__) || defined(__apple_build_version__)
58-
# pragma clang diagnostic push
59-
# pragma clang diagnostic ignored "-Wdeprecated-declarations"
60-
# endif
6151
/**
6252
* Returns the singleton EventLoggerProvider.
6353
*
6454
* By default, a no-op EventLoggerProvider is returned. This will never return a
6555
* nullptr EventLoggerProvider.
56+
* @deprecated
6657
*/
6758
OPENTELEMETRY_DEPRECATED static nostd::shared_ptr<EventLoggerProvider>
6859
GetEventLoggerProvider() noexcept
@@ -73,20 +64,14 @@ class OPENTELEMETRY_EXPORT Provider
7364

7465
/**
7566
* Changes the singleton EventLoggerProvider.
67+
* @deprecated
7668
*/
7769
OPENTELEMETRY_DEPRECATED static void SetEventLoggerProvider(
7870
const nostd::shared_ptr<EventLoggerProvider> &tp) noexcept
7971
{
8072
std::lock_guard<common::SpinLockMutex> guard(GetLock());
8173
GetEventProvider() = tp;
8274
}
83-
# if defined(_MSC_VER)
84-
# pragma warning(pop)
85-
# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__)
86-
# pragma GCC diagnostic pop
87-
# elif defined(__clang__) || defined(__apple_build_version__)
88-
# pragma clang diagnostic pop
89-
# endif
9075
#endif
9176

9277
private:
@@ -97,32 +82,12 @@ class OPENTELEMETRY_EXPORT Provider
9782
}
9883

9984
#if OPENTELEMETRY_ABI_VERSION_NO < 2
100-
# if defined(_MSC_VER)
101-
# pragma warning(push)
102-
# pragma warning(disable : 4996)
103-
# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__)
104-
# pragma GCC diagnostic push
105-
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
106-
# elif defined(__clang__) || defined(__apple_build_version__)
107-
# pragma clang diagnostic push
108-
# pragma clang diagnostic ignored "-Wdeprecated-declarations"
109-
# endif
110-
111-
OPENTELEMETRY_DEPRECATED
11285
OPENTELEMETRY_API_SINGLETON static nostd::shared_ptr<EventLoggerProvider> &
11386
GetEventProvider() noexcept
11487
{
11588
static nostd::shared_ptr<EventLoggerProvider> provider(new NoopEventLoggerProvider);
11689
return provider;
11790
}
118-
119-
# if defined(_MSC_VER)
120-
# pragma warning(pop)
121-
# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__)
122-
# pragma GCC diagnostic pop
123-
# elif defined(__clang__) || defined(__apple_build_version__)
124-
# pragma clang diagnostic pop
125-
# endif
12691
#endif
12792

12893
OPENTELEMETRY_API_SINGLETON static common::SpinLockMutex &GetLock() noexcept

api/test/logs/logger_test.cc

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,23 @@ TEST(Logger, LogMethodOverloads)
161161
}
162162

163163
#if OPENTELEMETRY_ABI_VERSION_NO < 2
164+
165+
/*
166+
* opentelemetry::logs::Provider::GetLoggerProvider() is deprecated.
167+
* Suppress warnings in tests, to have a clean build and coverage.
168+
*/
169+
170+
# if defined(_MSC_VER)
171+
# pragma warning(push)
172+
# pragma warning(disable : 4996)
173+
# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__)
174+
# pragma GCC diagnostic push
175+
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
176+
# elif defined(__clang__) || defined(__apple_build_version__)
177+
# pragma clang diagnostic push
178+
# pragma clang diagnostic ignored "-Wdeprecated-declarations"
179+
# endif
180+
164181
TEST(Logger, EventLogMethodOverloads)
165182
{
166183
auto lp = Provider::GetLoggerProvider();
@@ -192,6 +209,15 @@ TEST(Logger, EventLogMethodOverloads)
192209
event_logger->EmitEvent("event name", Severity::kDebug,
193210
opentelemetry::common::MakeAttributes(vec));
194211
}
212+
213+
# if defined(_MSC_VER)
214+
# pragma warning(pop)
215+
# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__)
216+
# pragma GCC diagnostic pop
217+
# elif defined(__clang__) || defined(__apple_build_version__)
218+
# pragma clang diagnostic pop
219+
# endif
220+
195221
#endif
196222

197223
// Define a basic Logger class

api/test/logs/provider_test.cc

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,24 @@ TEST(Provider, GetLogger)
7474
}
7575

7676
#if OPENTELEMETRY_ABI_VERSION_NO < 2
77+
78+
/*
79+
* opentelemetry::logs::Provider::GetEventLoggerProvider() is deprecated.
80+
* opentelemetry::logs::Provider::SetEventLoggerProvider() is deprecated.
81+
* Suppress warnings in tests, to have a clean build and coverage.
82+
*/
83+
84+
# if defined(_MSC_VER)
85+
# pragma warning(push)
86+
# pragma warning(disable : 4996)
87+
# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__)
88+
# pragma GCC diagnostic push
89+
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
90+
# elif defined(__clang__) || defined(__apple_build_version__)
91+
# pragma clang diagnostic push
92+
# pragma clang diagnostic ignored "-Wdeprecated-declarations"
93+
# endif
94+
7795
class TestEventLoggerProvider : public EventLoggerProvider
7896
{
7997
public:
@@ -115,4 +133,13 @@ TEST(Provider, CreateEventLogger)
115133

116134
EXPECT_EQ(nullptr, logger);
117135
}
136+
137+
# if defined(_MSC_VER)
138+
# pragma warning(pop)
139+
# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__)
140+
# pragma GCC diagnostic pop
141+
# elif defined(__clang__) || defined(__apple_build_version__)
142+
# pragma clang diagnostic pop
143+
# endif
144+
118145
#endif

0 commit comments

Comments
 (0)