feat(telemetry.serilog): AddZbSerilog bootstrap + identity enrichers
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
using Serilog;
|
||||
using Serilog.Events;
|
||||
using Serilog.Sinks.InMemory;
|
||||
using ZB.MOM.WW.Telemetry;
|
||||
using ZB.MOM.WW.Telemetry.Serilog;
|
||||
|
||||
namespace ZB.MOM.WW.Telemetry.Serilog.Tests;
|
||||
|
||||
public sealed class EnricherTests
|
||||
{
|
||||
private static string ScalarValue(LogEvent logEvent, string propertyName)
|
||||
{
|
||||
Assert.True(
|
||||
logEvent.Properties.TryGetValue(propertyName, out var value),
|
||||
$"expected property '{propertyName}' to be present");
|
||||
var scalar = Assert.IsType<ScalarValue>(value);
|
||||
return scalar.Value?.ToString() ?? "";
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Identity_enrichers_stamp_SiteId_NodeRole_and_NodeHostname()
|
||||
{
|
||||
var sink = new InMemorySink();
|
||||
var options = new ZbTelemetryOptions
|
||||
{
|
||||
ServiceName = "otopcua",
|
||||
SiteId = "s1",
|
||||
NodeRole = "Central",
|
||||
};
|
||||
|
||||
var loggerConfig = new LoggerConfiguration();
|
||||
ZbSerilogConfig.Apply(loggerConfig, options);
|
||||
using var logger = loggerConfig
|
||||
.WriteTo.Sink(sink)
|
||||
.CreateLogger();
|
||||
|
||||
logger.Information("hello");
|
||||
|
||||
var logEvent = Assert.Single(sink.LogEvents);
|
||||
Assert.Equal("s1", ScalarValue(logEvent, ZbLogEnricherNames.SiteId));
|
||||
Assert.Equal("Central", ScalarValue(logEvent, ZbLogEnricherNames.NodeRole));
|
||||
Assert.Equal(
|
||||
Environment.MachineName,
|
||||
ScalarValue(logEvent, ZbLogEnricherNames.NodeHostname));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user