コード例 #1
0
        public static void LogStatus(this IMonitorServices monitor)
        {
            var status = monitor.GetStatus();

            switch (status.Health)
            {
            case ServiceMonitor.Status.Healthiness.Alive:
                Logging.Information(status);
                break;

            case ServiceMonitor.Status.Healthiness.Ill:
                Logging.Warning(status);
                break;

            case ServiceMonitor.Status.Healthiness.OnLastLegs:
                Logging.Error(status);
                break;

            case ServiceMonitor.Status.Healthiness.Dead:
                Logging.Fatal(status);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
コード例 #2
0
 protected override void before_each()
 {
     base.before_each();
     logger = Substitute.For <ILogger>();
     Logging.Configure(logger);
     service_monitor = null;
     service_status  = ServiceMonitor.Status.Empty;
 }
コード例 #3
0
 public ServiceStatusNotifier(IMonitorServices monitor, Period heartbeat)
 {
     Monitor   = monitor;
     Heartbeat = heartbeat;
     Timer     = new Timer(e => Monitor.LogStatus(), null, TimeSpan.Zero, Heartbeat.ToDuration().ToTimeSpan());
 }
コード例 #4
0
 private void a_service_monitor()
 {
     service_monitor = Substitute.For <IMonitorServices>();
     service_monitor.Availability().Returns(Availability.Up());
 }