feat(dashboard): distinct 'forced' subtag provider badge
Render Fallback:Mode=ForceSubtag as a cyan 'Subtag monitoring (forced)' badge, distinct from the amber failover 'degraded' badge, so an intentional configuration isn't shown as a fault. Distinguished by the shared AlarmProviderReasons.ForcedSubtag reason carried on the provider-status feed.
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
namespace ZB.MOM.WW.MxGateway.Server.Alarms;
|
||||
|
||||
/// <summary>
|
||||
/// Well-known <c>reason</c> strings carried on the alarm feed's
|
||||
/// <c>AlarmProviderStatus</c> message. Shared between the producer
|
||||
/// (<see cref="GatewayAlarmMonitor" />) and consumers (e.g. the dashboard
|
||||
/// provider badge) so the two cannot drift on a magic string.
|
||||
/// </summary>
|
||||
public static class AlarmProviderReasons
|
||||
{
|
||||
/// <summary>
|
||||
/// Reason set when the monitor starts in subtag mode because
|
||||
/// <c>MxGateway:Alarms:Fallback:Mode</c> is <c>ForceSubtag</c> — a
|
||||
/// deliberate configuration, not a runtime failover. Lets the dashboard
|
||||
/// distinguish a forced subtag mode from an unexpected degraded failover.
|
||||
/// </summary>
|
||||
public const string ForcedSubtag = "Forced subtag mode (configuration)";
|
||||
}
|
||||
@@ -170,7 +170,7 @@ public sealed class GatewayAlarmMonitor : BackgroundService, IGatewayAlarmServic
|
||||
case AlarmProviderMode.Subtag:
|
||||
initialMode = AlarmProviderMode.Subtag;
|
||||
initialDegraded = true;
|
||||
initialReason = "Forced subtag mode (configuration)";
|
||||
initialReason = AlarmProviderReasons.ForcedSubtag;
|
||||
break;
|
||||
case AlarmProviderMode.Alarmmgr:
|
||||
initialMode = AlarmProviderMode.Alarmmgr;
|
||||
|
||||
Reference in New Issue
Block a user