feat(telemetry): options + shared OTel Resource
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
using OpenTelemetry.Resources;
|
||||
using ZB.MOM.WW.Telemetry;
|
||||
|
||||
namespace ZB.MOM.WW.Telemetry.Tests;
|
||||
|
||||
public sealed class ZbResourceTests
|
||||
{
|
||||
[Fact]
|
||||
public void Build_PopulatesAllResourceAttributes()
|
||||
{
|
||||
var options = new ZbTelemetryOptions
|
||||
{
|
||||
ServiceName = "otopcua",
|
||||
ServiceNamespace = "ZB.MOM.WW",
|
||||
ServiceVersion = "1.2.3",
|
||||
SiteId = "site-7",
|
||||
NodeRole = "central",
|
||||
};
|
||||
|
||||
var resource = ZbResource.Build(options).Build();
|
||||
var attributes = resource.Attributes.ToDictionary(a => a.Key, a => a.Value);
|
||||
|
||||
Assert.Equal("otopcua", attributes["service.name"]);
|
||||
Assert.Equal("ZB.MOM.WW", attributes["service.namespace"]);
|
||||
Assert.Equal("1.2.3", attributes["service.version"]);
|
||||
Assert.Equal("site-7", attributes["site.id"]);
|
||||
Assert.Equal("central", attributes["node.role"]);
|
||||
Assert.Equal(Environment.MachineName, attributes["host.name"]);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Build_OmitsOptionalAttributes_WhenNull()
|
||||
{
|
||||
var options = new ZbTelemetryOptions
|
||||
{
|
||||
ServiceName = "mxgateway",
|
||||
// ServiceVersion / SiteId / NodeRole left null
|
||||
};
|
||||
|
||||
var resource = ZbResource.Build(options).Build();
|
||||
var keys = resource.Attributes.Select(a => a.Key).ToHashSet();
|
||||
|
||||
Assert.Contains("service.name", keys);
|
||||
Assert.Contains("service.namespace", keys);
|
||||
Assert.Contains("host.name", keys);
|
||||
Assert.DoesNotContain("service.version", keys);
|
||||
Assert.DoesNotContain("site.id", keys);
|
||||
Assert.DoesNotContain("node.role", keys);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user