Exemplo n.º 1
0
            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++;
                }
            }
Exemplo n.º 2
0
 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));
             }
Exemplo n.º 3
0
 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);
         }
     }
 }
Exemplo n.º 4
0
        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");
        }