예제 #1
0
        [I] public async Task IndexAndSearchABunch()
        {
            var tokenSource = new CancellationTokenSource();
            var client      = _cluster.Client;

            await client.DeleteIndexAsync(Index <Project>());

            var observableBulk = client.BulkAll(this.MockDataGenerator(100000), f => f
                                                .MaxDegreeOfParallelism(10)
                                                .BackOffTime(TimeSpan.FromSeconds(10))
                                                .BackOffRetries(2)
                                                .Size(1000)
                                                .RefreshOnCompleted()
                                                , tokenSource.Token);
            await observableBulk.ForEachAsync(x => { }, tokenSource.Token);

            var statsRequest = new NodesStatsRequest(NodesStatsMetric.Http);
            var nodeStats    = await client.NodesStatsAsync(statsRequest);

            this.AssertHttpStats(nodeStats);
            for (var i = 0; i < 10; i++)
            {
                Parallel.For(0, 1000, c => client.Search <Project>(s => s));

                nodeStats = await client.NodesStatsAsync(statsRequest);

                this.AssertHttpStats(nodeStats);
            }
        }
		public NodeStatsRequestTests()
		{
			var request = new NodesStatsRequest
			{
				NodeId = "my-node-id",
				Human = true,
				CompletionFields = new List<PropertyPathMarker>
				{
					Property.Path<ElasticsearchProject>(p=>p.Name)
				}
			};
			var response = this._client.NodesStats(request);
			this._status = response.ConnectionStatus;
		}
예제 #3
0
        public NodeStatsRequestTests()
        {
            var request = new NodesStatsRequest
            {
                NodeId           = "my-node-id",
                Human            = true,
                CompletionFields = new List <PropertyPathMarker>
                {
                    Property.Path <ElasticsearchProject>(p => p.Name)
                }
            };
            var response = this._client.NodesStats(request);

            this._status = response.ConnectionStatus;
        }
예제 #4
0
        private async Task IndexMockData(IElasticClient c, int requestsPerIteration)
        {
            var tokenSource = new CancellationTokenSource();
            await c.Indices.DeleteAsync(Index <Project>(), ct : tokenSource.Token);

            var observableBulk = c.BulkAll(MockDataGenerator(100000), f => f
                                           .MaxDegreeOfParallelism(10)
                                           .BackOffTime(TimeSpan.FromSeconds(10))
                                           .BackOffRetries(2)
                                           .Size(1000)
                                           .RefreshOnCompleted()
                                           , tokenSource.Token);
            await observableBulk.ForEachAsync(x => { }, tokenSource.Token);

            var statsRequest = new NodesStatsRequest(NodesStatsMetric.Http);
            var nodeStats    = await c.Nodes.StatsAsync(statsRequest, tokenSource.Token);

            AssertHttpStats(c, nodeStats, -1, requestsPerIteration);
        }
예제 #5
0
        [I] public async Task IndexAndSearchABunch()
        {
            const int requestsPerIteration = 1000;
            var       client = _cluster.Client;

            await IndexMockData(client, requestsPerIteration);

            var statsRequest = new NodesStatsRequest(NodesStatsMetric.Http);

            for (var i = 0; i < 20; i++)
            {
                Task[] tasks = Enumerable.Range(0, requestsPerIteration)
                               .Select(async(r) => await client.SearchAsync <Project>())
                               .ToArray();
                Task.WaitAll(tasks);

                var nodeStats = await client.NodesStatsAsync(statsRequest);

                AssertHttpStats(client, nodeStats, i, requestsPerIteration);
            }
        }
 public Task <NodesStatsResponse> StatsAsync(NodesStatsRequest request, CancellationToken cancellationToken = default)
 {
     request.BeforeRequest();
     return(DoRequestAsync <NodesStatsRequest, NodesStatsResponse>(request, cancellationToken));
 }
 public NodesStatsResponse Stats(NodesStatsRequest request)
 {
     request.BeforeRequest();
     return(DoRequest <NodesStatsRequest, NodesStatsResponse>(request));
 }