Esempio n. 1
0
        public async Task CheckAsync()
        {
            var list = await _healthCheckService.GetServiceInstance();

            foreach (var item in list)
            {
                int Passing  = 0;
                int Warning  = 0;
                int Critical = 0;

                foreach (var k in item.Instances)
                {
                    k.Status = HealthStatusEnum.None;

                    if (_options.Check.Mode.ToUpperInvariant() == "SELF")
                    {
                        k.Status = await SelfInvoke(item.ServiceInfo.Service, k.Instance);
                    }

                    if (_options.Check.Mode.ToUpperInvariant() == "HTTP")
                    {
                        k.Status = await HttpInvoke(k.Instance + _options.Check.Endpoint, null);
                    }

                    if (k.Status == HealthStatusEnum.IsPassing)
                    {
                        Passing += 1;
                    }

                    if (k.Status == HealthStatusEnum.IsWarning)
                    {
                        Warning += 1;
                    }

                    if (k.Status == HealthStatusEnum.IsCritical)
                    {
                        Critical += 1;
                    }
                }

                item.ServiceInfo.Passing  = Passing;
                item.ServiceInfo.Warning  = Warning;
                item.ServiceInfo.Critical = Critical;
            }
        }
        public async Task <string> GetHealthCheck()
        {
            var list = await _healthCheckService.GetServiceInstance();

            return(Json(true, list.ToList()));
        }