protected override async Task Given() { var node = GetLeader(); await Task.WhenAll(node.AdminUserCreated, node.Started); using var channel = GrpcChannel.ForAddress(new Uri($"https://{node.HttpEndPoint}"), new GrpcChannelOptions { HttpClient = new HttpClient(new SocketsHttpHandler { SslOptions = { RemoteCertificateValidationCallback = delegate { return(true); } } }, true) }); var client = new Client.Monitoring.Monitoring.MonitoringClient(channel); var request = new StatsReq { RefreshTimePeriodInMs = _refreshTimePeriodInMs }; using var resp = client.Stats(request); var count = 0; var cts = new CancellationTokenSource(_refreshTimePeriodInMs * _expected * 2); while (count < _expected && await resp.ResponseStream.MoveNext(cts.Token)) { _stats.Add(resp.ResponseStream.Current); count++; } }
private async IAsyncEnumerator <StatsResp> CollectStats(StatsReq request) { for (;;) { var source = new TaskCompletionSource <StatsResp>(); var envelope = new CallbackEnvelope(message => { if (message is not MonitoringMessage.GetFreshStatsCompleted completed) { source.TrySetException(UnknownMessage <MonitoringMessage.GetFreshStatsCompleted>(message)); }
public override async Task Stats(StatsReq request, IServerStreamWriter <StatsResp> responseStream, ServerCallContext context) { await using var enumerator = CollectStats(request); await using (context.CancellationToken.Register(() => enumerator.DisposeAsync())) { while (await enumerator.MoveNextAsync().ConfigureAwait(false)) { await responseStream.WriteAsync(enumerator.Current).ConfigureAwait(false); } } }
public string stats(StatsReq req) { try { DateTime start = Convert.ToDateTime(req.start); DateTime end = Convert.ToDateTime(req.end).AddDays(1); int opencount = new BaseDAL <OpenCount>().GetCount( string.Format("CreateOn>'{0:yyyy-MM-d}' and CreateOn<='{1:yyyy-MM-d}'", start, end)); int usecount = new BaseDAL <UseCount>().GetCount(string.Format("CreateOn>'{0:yyyy-MM-d}' and CreateOn<='{1:yyyy-MM-d}'", start, end)); return("{" + string.Format("\"opencount\":{0},\"usecount\":{1}", opencount, usecount) + "}"); } catch (Exception e) { LogHelper.AddLog(e.ToString()); } return("error"); }