public async Task CountWithTimeSeriesAsync()
        {
            Assert.Equal(0, await _dailyRepository.CountAsync());

            var yesterdayLog = await _dailyRepository.AddAsync(LogEventGenerator.Generate(createdUtc: SystemClock.UtcNow.AddDays(-1)), o => o.ImmediateConsistency());

            Assert.NotNull(yesterdayLog?.Id);

            var nowLog = LogEventGenerator.Default;
            var result = await _dailyRepository.AddAsync(nowLog, o => o.ImmediateConsistency());

            Assert.Equal(nowLog, result);

            Assert.Equal(2, await _dailyRepository.CountAsync());
        }
        public async Task CountByQueryWithTimeSeriesAsync()
        {
            Assert.Equal(0, await _dailyRepository.CountAsync());

            var utcNow       = SystemClock.UtcNow;
            var yesterdayLog = await _dailyRepository.AddAsync(LogEventGenerator.Generate(ObjectId.GenerateNewId(utcNow.AddDays(-1)).ToString(), createdUtc: utcNow.AddDays(-1)), o => o.ImmediateConsistency());

            Assert.NotNull(yesterdayLog?.Id);

            var nowLog = await _dailyRepository.AddAsync(LogEventGenerator.Default, o => o.ImmediateConsistency());

            Assert.NotNull(nowLog?.Id);

            Assert.Equal(0, await _dailyRepository.CountAsync(q => q.FilterExpression("id:test")));
            Assert.Equal(1, await _dailyRepository.CountAsync(q => q.FilterExpression($"id:{nowLog.Id}")));
            Assert.Equal(1, await _dailyRepository.CountAsync(q => q.DateRange(utcNow.AddHours(-1), utcNow.AddHours(1), "createdUtc").FilterExpression($"id:{nowLog.Id}")));
            Assert.Equal(0, await _dailyRepository.CountAsync(q => q.DateRange(utcNow.AddDays(-1), utcNow.AddHours(-12), (LogEvent l) => l.CreatedUtc).FilterExpression($"id:{nowLog.Id}")));
            Assert.Equal(1, await _dailyRepository.CountAsync(q => q.DateRange(utcNow.AddDays(-1), utcNow.AddHours(-12), "created")));
            Assert.Equal(1, await _dailyRepository.CountAsync(q => q.DateRange(utcNow.AddHours(-1), utcNow.AddHours(1), "createdUtc")));
        }
        public async Task GetByCompanyWithIncludedFields()
        {
            var log = await _dailyRepository.AddAsync(LogEventGenerator.Generate(companyId: "1234567890", message: "test"), o => o.ImmediateConsistency());

            Assert.NotNull(log?.Id);

            var results = await _dailyRepository.FindAsync(q => q.Company(log.CompanyId));

            Assert.Equal(1, results.Documents.Count);
            Assert.Equal(log, results.Documents.First());

            results = await _dailyRepository.FindAsync(q => q.Company(log.CompanyId).Include(e => e.Id).Include(l => l.CreatedUtc));

            Assert.Equal(1, results.Documents.Count);
            var companyLog = results.Documents.First();

            Assert.Equal(log.Id, companyLog.Id);
            Assert.Equal(log.CreatedUtc, companyLog.CreatedUtc);
            Assert.Null(companyLog.Message);
            Assert.Null(companyLog.CompanyId);
        }
示例#4
0
        public async Task AddLogEvent(PushLogModel pushLogModel)
        {
            var logEvent = new LogEvent
            {
                Id                     = DataUtil.GenerateUniqueId(),
                BeginRequest           = pushLogModel.BeginRequest,
                EndRequest             = pushLogModel.EndRequest,
                CpuUsage               = pushLogModel.CpuUsage,
                ElapsedTime            = pushLogModel.ElapsedTime,
                HttpRequestUrl         = pushLogModel.HttpRequestUrl,
                HttpRequestHeaders     = pushLogModel.HttpHeaders,
                HttRequestBody         = pushLogModel.HttpRequestBody,
                HttpResponseStatusCode = pushLogModel.ResponseStatusCode,
                HttpResponseBody       = pushLogModel.ResponseBody,
                MemoryUsed             = pushLogModel.MemoryUsed,
                TraceId                = pushLogModel.TraceId,
                Source                 = pushLogModel.ServiceName,
                SourceId               = pushLogModel.RegisteredServiceId,
                StackTrace             = pushLogModel.StackTraces
            };

            await _logEventRepository.AddAsync(logEvent);
        }
示例#5
0
        public async Task AddLogEvent(LogCollectorRequest logCollectorRequest)
        {
            var logEvent = new LogEvent
            {
                Id                     = DataUtil.GenerateUniqueId(),
                BeginRequest           = logCollectorRequest.BeginRequest.ToDateTime(),
                EndRequest             = logCollectorRequest.EndRequest.ToDateTime(),
                CpuUsage               = logCollectorRequest.CpuUsage,
                ElapsedTime            = logCollectorRequest.ElapsedTime,
                HttpRequestUrl         = logCollectorRequest.HttpRequestUrl,
                HttpRequestHeaders     = logCollectorRequest.HttpHeaders,
                HttRequestBody         = logCollectorRequest.HttpRequestBody,
                HttpResponseStatusCode = logCollectorRequest.ResponseStatusCode,
                HttpResponseBody       = logCollectorRequest.HttpRequestBody,
                MemoryUsed             = logCollectorRequest.MemoryUsed,
                TraceId                = logCollectorRequest.TraceId,
                Source                 = logCollectorRequest.ServiceName,
                SourceId               = logCollectorRequest.ServiceId,
                StackTrace             = logCollectorRequest.StackTraces
            };

            await _logEventRepository.AddAsync(logEvent);
        }