in src/ServiceProfiler.EventPipe.Otel/Microsoft.ApplicationInsights.Profiler.Shared/Services/RoleNames/AggregatedRoleNameSource.cs [12:42]
public AggregatedRoleNameSource(
IEnumerable<IRoleNameDetector> roleNameDetectors,
ILogger<AggregatedRoleNameSource> logger
)
{
_logger = logger ?? throw new System.ArgumentNullException(nameof(logger));
if(!roleNameDetectors.Any())
{
_logger.LogWarning("There's no role name detector registered. The role name will be empty. This should not happen.");
}
foreach (IRoleNameDetector roleNameDetector in roleNameDetectors)
{
string roleName = roleNameDetector.GetRoleName()?? string.Empty;
_logger.LogDebug("Role name detector {detector} returned role name: {roleName}", roleNameDetector.GetType().Name, roleName);
if (string.IsNullOrEmpty(roleName))
{
// Try the next detector.
continue;
}
// We have a non-empty role name. This is the effective role name.
CloudRoleName = roleName;
return;
}
_logger.LogWarning("Cloud role name is effectively empty. No role name detector returned a non-empty value.");
CloudRoleName = string.Empty;
}