示例#1
0
        private static LogResponse Get(string stack, WorkerType workerType, string startTime = null, string endTime = null, string timeGrain = null)
        {
            DateTime startTimeUtc, endTimeUtc;
            TimeSpan timeGrainTimeSpan;
            string   errorMessage;

            if (!PrepareStartEndTimeUtc(startTime, endTime, timeGrain, out startTimeUtc, out endTimeUtc, out timeGrainTimeSpan, out errorMessage))
            {
                throw new WebException(HttpStatusCode.BadRequest.ToString() + ": " + errorMessage);
            }

            LogParserParameters p = new LogParserParameters();

            p.StartTime  = startTimeUtc;
            p.EndTime    = endTimeUtc;
            p.TimeGrain  = timeGrainTimeSpan;
            p.WorkerType = workerType;

            Parser parser = ParserFactory.GetParser(stack);

            if (parser == null)
            {
                throw new WebException("Stack " + stack + " has no log parser implimintation");
            }

            return(parser.GetHistogramAsync(p).Result);
        }
示例#2
0
        private async Task <LogResponse> Get(string stack, WorkerType workerType, string startTime = null, string endTime = null, string timeGrain = null)
        {
            Util.WriteLog("Get(string stack, WorkerType workerType, string startTime = null, string endTime = null, string timeGrain = null)");
            DateTime startTimeUtc, endTimeUtc;
            TimeSpan timeGrainTimeSpan;
            string   errorMessage;

            if (!PrepareStartEndTimeUtc(startTime, endTime, timeGrain, out startTimeUtc, out endTimeUtc, out timeGrainTimeSpan, out errorMessage))
            {
                if (Request == null)
                {
                    throw new WebException(HttpStatusCode.BadRequest.ToString() + ": " + errorMessage);
                }

                throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.BadRequest, errorMessage));
            }

            LogParserParameters p = new LogParserParameters();

            p.StartTime  = startTimeUtc;
            p.EndTime    = endTimeUtc;
            p.TimeGrain  = timeGrainTimeSpan;
            p.WorkerType = workerType;

            var parser = workerType == WorkerType.Windows ? ParserFactory.GetParser(stack) : ParserFactory.GetLinuxParser(stack);

            Util.WriteLog("Parser type: " + parser.GetType().Name);

            if (parser == null)
            {
                throw new WebException("Stack " + stack + " has no log parser implimintation");
            }

            return(await parser.GetHistogramAsync(p));
        }