예제 #1
0
 public IHttpActionResult Get()
 {
     return(Ok(new APIServiceMetrics()
     {
         ServiceMetrics = ServiceMetrics.GetMetrics(),
         DataSource = GetDataSource(),
         ServerVersion = IOHelper.GetServerVersion(),
         CacheMetrics = CacheManager.GetMetrics(),
         ServerStorageInfo = GetServerStorageInfo()
     }));
 }
예제 #2
0
        private ServiceMetrics GetServiceMetrics(string serviceName)
        {
            lock (ServiceMetricsLock)
            {
                if (ServiceMetrics == null)
                {
                    ServiceMetrics = new ServiceMetrics(serviceName);
                }

                return(ServiceMetrics);
            }
        }
예제 #3
0
        public async Task <bool> ServerHealthy()
        {
            try
            {
                ServiceMetrics metrics = await ReqApi <ServiceMetrics>(UtilAndComs.NACOS_URL_BASE + "/operator/metrics", new Dictionary <string, string>(), HttpMethod.Get);

                return("UP".Equals(metrics.Status));
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
예제 #4
0
        public async Task <bool> ServerHealthy()
        {
            try
            {
                var result = await ReqApi(UtilAndComs.NACOS_URL_BASE + "/operator/metrics", new Dictionary <string, string>(), HttpMethod.Get);

                ServiceMetrics metrics = JsonConvert.DeserializeObject <ServiceMetrics>(result);
                return("UP".Equals(metrics.Status));
            }
            catch (Exception)
            {
                return(false);
            }
        }
예제 #5
0
        public async Task ServerHealthyTest()
        {
            ServiceMetrics mockServiceMetrics = new ServiceMetrics();

            mockServiceMetrics.ServiceCount             = 336;
            mockServiceMetrics.Load                     = 0.09f;
            mockServiceMetrics.Mem                      = 0.46210432f;
            mockServiceMetrics.ResponsibleServiceCount  = 98;
            mockServiceMetrics.InstanceCount            = 4;
            mockServiceMetrics.Cpu                      = 0.010242796f;
            mockServiceMetrics.Status                   = "UP";
            mockServiceMetrics.ResponsibleInstanceCount = 0;

            var mockHttp = new MockHttpMessageHandler();
            var request  = mockHttp.When(HttpMethod.Get, _config.ServerAddr[0] + UtilAndComs.NACOS_URL_BASE + "/operator/metrics")
                           .Respond("application/json", JsonConvert.SerializeObject(mockServiceMetrics));

            var proxy    = CreateProxy(mockHttp);
            var response = await proxy.ServerHealthy();

            Assert.Equal(1, mockHttp.GetMatchCount(request));
            Assert.True(response);
        }