/// <summary> /// Filters the access request with "views" and "authoring" in their request body. /// </summary> private bool IsVizLoadAccessEvent(Apache.ApacheEvent accessRequest) { var requestUrl = accessRequest.RequestBody; var urlParts = requestUrl.Split('/'); var index = 0; //index from where search for "views" or "authoring" should start if (urlParts.Length > 2 && urlParts[1] == "t") { // there is site value so the index should be from 3 // example in /t/MySite2/views/Election the value "views" is at index 3 with '/' being delimiter index = 3; } return(urlParts.Skip(index).Take(2).Any(part => part == "authoring" || part == "views")); }
/// <summary> /// Process access log request by querying apache events /// </summary> private BrowserSession ProcessAccessRequest(Apache.ApacheEvent accessRequest) { var browserSession = new BrowserSession(); var browserStartTime = accessRequest.Timestamp - _timeZoneDictionary[accessRequest.TimestampOffset]; browserSession.BrowserStartTime = browserStartTime.ToString(UtcDateFormat); browserSession.Url = accessRequest.RequestBody; browserSession.AccessRequestId = accessRequest.RequestId; browserSession.HttpStatus = accessRequest.StatusCode.ToString(); browserSession.LoadTime = accessRequest.RequestTimeMS.ToString(); try { var vizqlSessionIDs = GetVizqlSessionsForApacheRequestId(browserSession, browserSession.AccessRequestId); browserSession.Commands = GetVizqlServerCommands(browserSession, vizqlSessionIDs); } catch (Exception ex) { _logger.LogDebug(" Exception {0}, Exception encountered while parsing VizqlServer commands", ex.Message); return(null); } return(browserSession); }