コード例 #1
0
        /// <summary>
        /// Determines whether Elasticsearch cluster is ready.
        /// </summary>
        public async Task <Status> IsReadyAsync(CancellationToken cancellationToken)
        {
            var healthRequest = new ClusterHealthRequest
            {
                WaitForStatus = WaitForStatus.Green
            };
            ClusterHealthResponse healthResponse = await _client
                                                   .Cluster.HealthAsync(healthRequest, cancellationToken);

            return(new Status
            {
                IsReady = healthResponse.IsValid,
                Message = healthResponse.DebugInformation
            });
        }
        /// <summary>
        /// Retrieves cluster heaşth status
        /// </summary>
        /// <param name="cancellationToken">Token to cancel Elasticsearch request</param>
        /// <returns>Cluster health status</returns>
        public virtual async Task <ClusterHealthResponse> HealthAsync(CancellationToken cancellationToken)
        {
            ClusterHealthResponse result;

            try
            {
                HttpResponseMessage responseMessage = await GetAsync("/_cluster/health", null, cancellationToken);

                var response = await responseMessage.Content.ReadAsStringAsync();

                result         = JsonConvert.DeserializeObject <ClusterHealthResponse>(response);
                result.IsValid = true;
            }
            catch (Exception ex)
            {
                result = new ClusterHealthResponse {
                    IsValid = false, OriginalException = ex
                };
            }

            return(result);
        }
コード例 #3
0
ファイル: ApiV1Controller.cs プロジェクト: hosekp/HlidacStatu
        public ActionResult Status()
        {
            ClusterHealthResponse res = null;
            int    num    = 0;
            string status = "unknown";
            string nodes  = "-------------------------\n";

            try
            {
                res    = HlidacStatu.Lib.ES.Manager.GetESClient().Cluster.Health();
                num    = res?.NumberOfNodes ?? 0;
                status = res?.Status.ToString() ?? "unknown";

                //GET /_cat/nodes?v&h=m,name,ip,u&s=name
                var catr = Lib.ES.Manager.GetESClient()
                           .LowLevel.Cat.Nodes <Elasticsearch.Net.StringResponse>(
                    new Elasticsearch.Net.Specification.CatApi.CatNodesRequestParameters()
                {
                    Headers       = new[] { "m", "name", "ip", "u" },
                    SortByColumns = new[] { "name" },
                    Verbose       = true
                }
                    ).Body
                           ?.Replace("10.10.", "");

                ;
                nodes = nodes + catr;
            }
            catch (Exception e)
            {
                HlidacStatu.Util.Consts.Logger.Error("Status page error", e);
                ViewBag.Error = e;
            }

            return(Content(string.Format("{0}-{1}\n\n" + nodes, num, status), "text/plain"));
        }