Skip to content

Commit 2eb8d4d

Browse files
authored
Merge pull request #115 from serilog/dev
1.2.0 Release
2 parents 4fbf3a3 + c7741fa commit 2eb8d4d

File tree

14 files changed

+76
-204
lines changed

14 files changed

+76
-204
lines changed

example/Example/Example.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
</PropertyGroup>
99

1010
<ItemGroup>
11-
<PackageReference Include="Serilog" Version="3.0.1" />
1211
<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="7.0.2" />
1312
</ItemGroup>
1413

src/Serilog.Sinks.OpenTelemetry/OpenTelemetryLoggerConfigurationExtensions.cs

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
// limitations under the License.
1414

1515
using Serilog.Configuration;
16-
using Serilog.Core;
1716
using Serilog.Sinks.OpenTelemetry;
1817
using Serilog.Sinks.PeriodicBatching;
1918

@@ -40,22 +39,17 @@ public static LoggerConfiguration OpenTelemetry(
4039
var options = new BatchedOpenTelemetrySinkOptions();
4140
configure(options);
4241

43-
var collector = new ActivityContextCollector();
44-
4542
var openTelemetrySink = new OpenTelemetrySink(
4643
endpoint: options.Endpoint,
4744
protocol: options.Protocol,
4845
formatProvider: options.FormatProvider,
4946
resourceAttributes: new Dictionary<string, object>(options.ResourceAttributes),
5047
headers: new Dictionary<string, string>(options.Headers),
5148
includedData: options.IncludedData,
52-
httpMessageHandler: options.HttpMessageHandler,
53-
activityContextCollector: collector);
49+
httpMessageHandler: options.HttpMessageHandler);
5450

55-
ILogEventSink sink = new PeriodicBatchingSink(openTelemetrySink, options.BatchingOptions);
51+
var sink = new PeriodicBatchingSink(openTelemetrySink, options.BatchingOptions);
5652

57-
sink = new ActivityContextCollectorSink(collector, sink);
58-
5953
return loggerSinkConfiguration.Sink(sink, options.RestrictedToMinimumLevel, options.LevelSwitch);
6054
}
6155

@@ -103,20 +97,15 @@ public static LoggerConfiguration OpenTelemetry(
10397

10498
configure(options);
10599

106-
var collector = new ActivityContextCollector();
107-
108-
var openTelemetrySink = new OpenTelemetrySink(
100+
var sink = new OpenTelemetrySink(
109101
endpoint: options.Endpoint,
110102
protocol: options.Protocol,
111103
formatProvider: options.FormatProvider,
112104
resourceAttributes: new Dictionary<string, object>(options.ResourceAttributes),
113105
headers: new Dictionary<string, string>(options.Headers),
114106
includedData: options.IncludedData,
115-
httpMessageHandler: options.HttpMessageHandler,
116-
activityContextCollector: collector);
107+
httpMessageHandler: options.HttpMessageHandler);
117108

118-
var sink = new ActivityContextCollectorSink(collector, openTelemetrySink);
119-
120109
return loggerAuditSinkConfiguration.Sink(sink, options.RestrictedToMinimumLevel, options.LevelSwitch);
121110
}
122111

src/Serilog.Sinks.OpenTelemetry/Serilog.Sinks.OpenTelemetry.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<PropertyGroup>
33
<Description>This Serilog sink transforms Serilog events into OpenTelemetry
44
logs and sends them to an OTLP (gRPC or HTTP) endpoint.</Description>
5-
<VersionPrefix>1.1.0</VersionPrefix>
5+
<VersionPrefix>1.2.0</VersionPrefix>
66
<Authors>Serilog Contributors</Authors>
77
<TargetFrameworks>net6.0;netstandard2.1;netstandard2.0;net462</TargetFrameworks>
88
<PackageTags>serilog;sink;opentelemetry</PackageTags>
@@ -29,7 +29,7 @@
2929
<None Include="../../README.md" Pack="true" Visible="false" PackagePath="/" />
3030
<PackageReference Include="Google.Protobuf" Version="3.23.4" />
3131
<PackageReference Include="Grpc.Net.Client" Version="2.55.0" />
32-
<PackageReference Include="Serilog" Version="3.0.1" />
32+
<PackageReference Include="Serilog" Version="3.1.1" />
3333
<PackageReference Include="Serilog.Sinks.PeriodicBatching" Version="3.1.0" />
3434
</ItemGroup>
3535

src/Serilog.Sinks.OpenTelemetry/Sinks/OpenTelemetry/ActivityContextCollector.cs

Lines changed: 0 additions & 74 deletions
This file was deleted.

src/Serilog.Sinks.OpenTelemetry/Sinks/OpenTelemetry/ActivityContextCollectorSink.cs

Lines changed: 0 additions & 46 deletions
This file was deleted.

src/Serilog.Sinks.OpenTelemetry/Sinks/OpenTelemetry/LogRecordBuilder.cs

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ namespace Serilog.Sinks.OpenTelemetry;
2626

2727
static class LogRecordBuilder
2828
{
29-
public static LogRecord ToLogRecord(LogEvent logEvent, IFormatProvider? formatProvider, IncludedData includedFields, ActivityContextCollector activityContextCollector)
29+
public static LogRecord ToLogRecord(LogEvent logEvent, IFormatProvider? formatProvider, IncludedData includedFields)
3030
{
3131
var logRecord = new LogRecord();
3232

@@ -35,7 +35,7 @@ public static LogRecord ToLogRecord(LogEvent logEvent, IFormatProvider? formatPr
3535
ProcessMessage(logRecord, logEvent, includedFields, formatProvider);
3636
ProcessLevel(logRecord, logEvent);
3737
ProcessException(logRecord, logEvent);
38-
ProcessIncludedFields(logRecord, logEvent, includedFields, activityContextCollector);
38+
ProcessIncludedFields(logRecord, logEvent, includedFields);
3939

4040
return logRecord;
4141
}
@@ -106,24 +106,16 @@ public static void ProcessException(LogRecord logRecord, LogEvent logEvent)
106106
}
107107
}
108108

109-
static void ProcessIncludedFields(LogRecord logRecord, LogEvent logEvent, IncludedData includedFields, ActivityContextCollector activityContextCollector)
109+
static void ProcessIncludedFields(LogRecord logRecord, LogEvent logEvent, IncludedData includedFields)
110110
{
111-
if ((includedFields & (IncludedData.TraceIdField | IncludedData.SpanIdField)) != IncludedData.None)
111+
if ((includedFields & IncludedData.TraceIdField) != IncludedData.None && logEvent.TraceId is {} traceId)
112112
{
113-
var activityContext = activityContextCollector.GetFor(logEvent);
114-
115-
if (activityContext is var (activityTraceId, activitySpanId))
116-
{
117-
if ((includedFields & IncludedData.TraceIdField) != IncludedData.None)
118-
{
119-
logRecord.TraceId = PrimitiveConversions.ToOpenTelemetryTraceId(activityTraceId.ToHexString());
120-
}
113+
logRecord.TraceId = PrimitiveConversions.ToOpenTelemetryTraceId(traceId.ToHexString());
114+
}
121115

122-
if ((includedFields & IncludedData.SpanIdField) != IncludedData.None)
123-
{
124-
logRecord.SpanId = PrimitiveConversions.ToOpenTelemetrySpanId(activitySpanId.ToHexString());
125-
}
126-
}
116+
if ((includedFields & IncludedData.SpanIdField) != IncludedData.None && logEvent.SpanId is {} spanId)
117+
{
118+
logRecord.SpanId = PrimitiveConversions.ToOpenTelemetrySpanId(spanId.ToHexString());
127119
}
128120

129121
if ((includedFields & IncludedData.MessageTemplateTextAttribute) != IncludedData.None)

src/Serilog.Sinks.OpenTelemetry/Sinks/OpenTelemetry/OpenTelemetrySink.cs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ class OpenTelemetrySink : IBatchedLogEventSink, ILogEventSink, IDisposable
2626
readonly ExportLogsServiceRequest _requestTemplate;
2727
readonly IExporter _exporter;
2828
readonly IncludedData _includedData;
29-
readonly ActivityContextCollector _activityContextCollector;
3029

3130
public OpenTelemetrySink(
3231
string endpoint,
@@ -35,8 +34,7 @@ public OpenTelemetrySink(
3534
IReadOnlyDictionary<string, object> resourceAttributes,
3635
IReadOnlyDictionary<string, string> headers,
3736
IncludedData includedData,
38-
HttpMessageHandler? httpMessageHandler,
39-
ActivityContextCollector activityContextCollector)
37+
HttpMessageHandler? httpMessageHandler)
4038
{
4139
_exporter = protocol switch
4240
{
@@ -47,7 +45,6 @@ public OpenTelemetrySink(
4745

4846
_formatProvider = formatProvider;
4947
_includedData = includedData;
50-
_activityContextCollector = activityContextCollector;
5148

5249
if ((includedData & IncludedData.SpecRequiredResourceAttributes) == IncludedData.SpecRequiredResourceAttributes)
5350
{
@@ -67,7 +64,7 @@ public void Dispose()
6764

6865
void AddLogEventToRequest(LogEvent logEvent, ExportLogsServiceRequest request)
6966
{
70-
var logRecord = LogRecordBuilder.ToLogRecord(logEvent, _formatProvider, _includedData, _activityContextCollector);
67+
var logRecord = LogRecordBuilder.ToLogRecord(logEvent, _formatProvider, _includedData);
7168
request.ResourceLogs[0].ScopeLogs[0].LogRecords.Add(logRecord);
7269
}
7370

src/Serilog.Sinks.OpenTelemetry/Sinks/OpenTelemetry/ProtocolHelpers/PrimitiveConversions.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,13 @@ namespace Serilog.Sinks.OpenTelemetry.ProtocolHelpers;
2626

2727
static class PrimitiveConversions
2828
{
29-
const ulong MillisToNanos = 1000000;
30-
31-
public static ulong ToUnixNano(DateTimeOffset t)
29+
static readonly DateTimeOffset UnixEpoch = new(1970, 1, 1, 0, 0, 0, TimeSpan.Zero);
30+
31+
public static ulong ToUnixNano(DateTimeOffset dateTimeOffset)
3232
{
33-
return (ulong)t.ToUnixTimeMilliseconds() * MillisToNanos;
33+
if (dateTimeOffset < UnixEpoch) throw new ArgumentOutOfRangeException(nameof(dateTimeOffset));
34+
var timeSinceEpoch = dateTimeOffset - UnixEpoch;
35+
return (ulong)timeSinceEpoch.Ticks * 100;
3436
}
3537

3638
public static SeverityNumber ToSeverityNumber(LogEventLevel level)

0 commit comments

Comments
 (0)