private StatementPrepareEvent GetStatementPrepareEvent(BsonDocument startEvent, BsonDocument endEvent) { StatementPrepareEvent statementPrepareEvent = new StatementPrepareEvent(); // Retrieve each associated event. var sessionEvents = GetEventsForRange(startEvent, endEvent).ToList(); if (!sessionEvents.Any()) { return(statementPrepareEvent); } // Process each associated event. foreach (var sessionEvent in sessionEvents) { string message = BsonDocumentHelper.GetString("message", sessionEvent); if (String.IsNullOrWhiteSpace(message)) { continue; } if (!message.Contains("StatementPrepare") && !message.StartsWith("Compiling query")) { if (String.IsNullOrWhiteSpace(statementPrepareEvent.Query)) { statementPrepareEvent.Query = message.Trim(); } else { statementPrepareEvent.Query = String.Format("{0} {1}", statementPrepareEvent.Query, message.Trim()); } } if (message.Contains("stmt_guid=")) { var guidSegments = message.Split(' ').Last().Split('='); if (guidSegments.Length > 1) { int guid; if (Int32.TryParse(guidSegments[1], out guid)) { statementPrepareEvent.Guid = guid; } } } if (message.Contains("StatementPrepare: OK")) { statementPrepareEvent.Success = true; } if (message.Contains("StatementPrepare: FAILED")) { statementPrepareEvent.Success = false; statementPrepareEvent.Error = message.Replace("StatementPrepare: FAILED, error=", ""); } } return(statementPrepareEvent); }
private BackgrounderJob AppendDetailsToJob(BackgrounderJob job, BsonDocument endEvent, IMongoCollection <BsonDocument> collection) { var endTime = BsonDocumentHelper.GetDateTime("ts", endEvent); var eventsInJobRange = MongoQueryHelper.GetEventsInRange(collection, job.WorkerId, job.BackgrounderId, job.StartTime, endTime).ToList(); // Append all errors associated with job. job.Errors = CollectErrorsForJob(job, eventsInJobRange); // Append details for certain job types of interest. if (job.JobType.Equals("refresh_extracts") || job.JobType.Equals("increment_extracts")) { var extractJobDetail = new BackgrounderExtractJobDetail(job, GetVqlSessionServiceEvents(eventsInJobRange)); if (!string.IsNullOrEmpty(extractJobDetail.VizqlSessionId)) { job.BackgrounderJobDetail = extractJobDetail; } } else if (job.JobType.Equals("single_subscription_notify")) { var eventList = new List <BsonDocument>(GetVqlSessionServiceEvents(eventsInJobRange)); eventList.AddRange(GetSubscriptionRunnerEvents(eventsInJobRange)); var subscriptionJobDetail = new BackgrounderSubscriptionJobDetail(job, eventList); if (!string.IsNullOrEmpty(subscriptionJobDetail.VizqlSessionId)) { job.BackgrounderJobDetail = subscriptionJobDetail; } } return(job); }
private IDictionary <int, StatementPrepareEvent> GetAllStatementPrepareEvents(IList <BsonDocument> sessionLines) { IDictionary <int, StatementPrepareEvent> statementPrepareEvents = new Dictionary <int, StatementPrepareEvent>(); Queue <BsonDocument> lineQueue = new Queue <BsonDocument>(); foreach (var line in sessionLines) { string message = BsonDocumentHelper.GetString("message", line); if (message.Contains("StatementPrepare")) { lineQueue.Enqueue(line); } } lineQueue = SortByLogLine(lineQueue); while (lineQueue.Count >= 2) { StatementPrepareEvent prepareEvent = GetStatementPrepareEvent(lineQueue.Dequeue(), lineQueue.Dequeue()); if (prepareEvent.Success) { statementPrepareEvents[prepareEvent.Guid] = prepareEvent; } } return(statementPrepareEvents); }
protected string GetActionValue(BsonDocument document) { String message = BsonDocumentHelper.GetString("message", document); switch (message) { case ClusterControllerConstants.POSTGRES_START_AS_MASTER: return("StartAsMaster"); case ClusterControllerConstants.POSTGRES_FAILOVER_AS_MASTER: return("FailoverAsMaster"); case ClusterControllerConstants.POSTGRES_START_AS_SLAVE: return("StartAsSlave"); case ClusterControllerConstants.POSTGRES_STOP: return("Stop"); case ClusterControllerConstants.POSTGRES_RESTART: return("Restart"); default: throw new Exception("No action for log message: " + message); } }
private IList <DataengineEvent> GetAllQueryExecuteEvents(int sessionId, IList <BsonDocument> sessionLines) { IList <DataengineEvent> queryExecuteEvents = new List <DataengineEvent>(); Queue <BsonDocument> lineQueue = new Queue <BsonDocument>(); foreach (var line in sessionLines) { string message = BsonDocumentHelper.GetString("message", line); if (message.Contains("QueryExecute")) { lineQueue.Enqueue(line); } } lineQueue = SortByLogLine(lineQueue); while (lineQueue.Count >= 2) { try { DataengineEvent queryExecuteEvent = GetDataEngineEvent(sessionId, "QueryExecute", lineQueue.Dequeue(), lineQueue.Dequeue()); // Filter out all (database null) queries, which are used for closing a connection. if (!queryExecuteEvent.Query.Equals("(database null)")) { queryExecuteEvents.Add(queryExecuteEvent); } } catch (Exception ex) { Log.Error("Problem gathering QueryExecute event data on session:" + sessionId, ex); } } return(queryExecuteEvents); }
public VizqlEndPartitionInterpreter(BsonDocument document) { ValidateArguments("end-partition-interpreter", document); SetEventMetadata(document); Elapsed = BsonDocumentHelper.GetDouble("elapsed", BsonDocumentHelper.GetValuesStruct(document)); }
protected Guid GetEventHash(BsonDocument logLine) { string file = BsonDocumentHelper.GetString("file", logLine); int line = BsonDocumentHelper.GetInt("line", logLine); return(HashHelper.GenerateHashGuid(Timestamp, TimestampOffset, Message, Worker, file, line)); }
protected ResourceManagerEvent(BsonDocument document, string processName) { ProcessName = processName; WorkerId = BsonDocumentHelper.GetInt("worker", document); Timestamp = BsonDocumentHelper.GetDateTime("ts", document); Pid = BsonDocumentHelper.GetInt("pid", document); SetProcessId(document); }
public VizqlSetCollation(BsonDocument document) { SetEventMetadata(document); BsonDocument values = BsonDocumentHelper.GetValuesStruct(document); Column = values.GetString("column"); Collation = values.GetString("collation"); }
public ZookeeperError(BsonDocument document, Guid logsetHash) : base(document, logsetHash) { Severity = BsonDocumentHelper.GetString("sev", document); Message = BsonDocumentHelper.GetString("message", document); Class = BsonDocumentHelper.GetString("class", document); EventHash = GetEventHash(); }
public ClusterControllerEvent(BsonDocument document, Guid logsetHash) { LogsetHash = logsetHash; Timestamp = BsonDocumentHelper.GetDateTime("ts", document); Worker = BsonDocumentHelper.GetString("worker", document); Filename = String.Format(@"{0}\{1}", BsonDocumentHelper.GetString("file_path", document), BsonDocumentHelper.GetString("file", document)); LineNumber = BsonDocumentHelper.GetInt("line", document); }
public TabadminAction(BsonDocument logLine, Guid logsetHash) : base(logLine, logsetHash) { // Split the message field into command and argument substrings. Match match = commandAndArgumentRegex.Match(BsonDocumentHelper.GetString("message", logLine)); Command = match.Groups["command"].Value; Arguments = match.Groups["arguments"].Value; }
private string GetSessionSuffix(BsonDocument vqlSessionServiceEvent) { int worker = BsonDocumentHelper.GetInt("worker", vqlSessionServiceEvent); string fileName = BsonDocumentHelper.GetString("file", vqlSessionServiceEvent); string process = fileName.Split('-')[1].Split('.')[0]; return(worker + ":" + process); }
public VizqlSetCollation(BsonDocument document) { ValidateArguments("set-collation", document); SetEventMetadata(document); BsonDocument values = BsonDocumentHelper.GetValuesStruct(document); Column = BsonDocumentHelper.GetString("column", values); Collation = BsonDocumentHelper.GetString("collation", values); }
private static bool IsValidJobStartEvent(BsonDocument jobStartEvent, string jobType) { if (!jobStartEvent.Contains("message")) { return(false); } return(BsonDocumentHelper.GetString("message", jobStartEvent).StartsWith(String.Format("Running job of type :{0}", jobType))); }
public VizqlMessage(BsonDocument document) { ValidateArguments("msg", document); SetEventMetadata(document); Line = BsonDocumentHelper.GetInt("line", document); Message = BsonDocumentHelper.GetString("v", document); Sev = BsonDocumentHelper.GetString("sev", document); }
public VizqlEndComputeQuickFilterState(BsonDocument document) { SetEventMetadata(document); BsonDocument values = BsonDocumentHelper.GetValuesStruct(document); Elapsed = values.GetDouble("elapsed"); Sheet = values.GetString("sheet"); View = values.GetString("view"); }
public VizqlEndComputeQuickFilterState(BsonDocument document) { ValidateArguments("end-compute-quick-filter-state", document); SetEventMetadata(document); BsonDocument values = BsonDocumentHelper.GetValuesStruct(document); Elapsed = BsonDocumentHelper.GetDouble("elapsed", values); Sheet = BsonDocumentHelper.GetString("sheet", values); View = BsonDocumentHelper.GetString("view", values); }
public VizqlEndUpdateSheet(BsonDocument document) { ValidateArguments("end-update-sheet", document); SetEventMetadata(document); BsonDocument values = BsonDocumentHelper.GetValuesStruct(document); Elapsed = BsonDocumentHelper.GetDouble("elapsed", values); Sheet = BsonDocumentHelper.GetString("sheet", values); View = BsonDocumentHelper.GetString("view", values); }
public VizqlEndPrepareQuickFilterQueries(BsonDocument document) { ValidateArguments("end-prepare-quick-filter-queries", document); SetEventMetadata(document); BsonDocument values = BsonDocumentHelper.GetValuesStruct(document); Elapsed = BsonDocumentHelper.GetDouble("elapsed", values); Sheet = BsonDocumentHelper.GetString("sheet", values); View = BsonDocumentHelper.GetString("view", values); }
private IEnumerable <BsonDocument> GetEventsForRange(BsonDocument startEvent, BsonDocument endEvent) { int workerId = BsonDocumentHelper.GetInt("worker", startEvent); string tid = BsonDocumentHelper.GetString("tid", startEvent); string file = BsonDocumentHelper.GetString("file", startEvent); int startLine = BsonDocumentHelper.GetInt("line", startEvent); int endLine = BsonDocumentHelper.GetInt("line", endEvent); return(DataEngineMongoHelper.GetDataEngineEventsForLineRange(workerId, file, tid, startLine, endLine, dataengineCollection)); }
public void SetEventMetadata(BsonDocument document) { VizqlSessionId = BsonDocumentHelper.GetString("sess", document); ThreadId = BsonDocumentHelper.GetString("tid", document); ApacheRequestId = BsonDocumentHelper.GetString("req", document); EventTimestamp = BsonDocumentHelper.GetDateTime("ts", document); ProcessId = BsonDocumentHelper.GetInt("pid", document); KeyType = BsonDocumentHelper.GetKeyType(document); EventHash = HashHelper.GenerateHashGuid(document.ToString()); }
public SearchserverEvent(BsonDocument logLine, Guid logsetHash) { LogsetHash = logsetHash; Timestamp = BsonDocumentHelper.GetDateTime("ts", logLine); TimestampOffset = BsonDocumentHelper.GetString("ts_offset", logLine); Severity = BsonDocumentHelper.GetString("sev", logLine); Message = BsonDocumentHelper.GetString("message", logLine); Class = BsonDocumentHelper.GetString("class", logLine); Worker = BsonDocumentHelper.GetInt("worker", logLine); EventHash = GetEventHash(logLine); }
public VizqlEndSqlTempTableTuplesCreate(BsonDocument document) { SetEventMetadata(document); BsonDocument values = BsonDocumentHelper.GetValuesStruct(document); Elapsed = values.GetDouble("elapsed"); ElapsedCreate = values.GetDouble("elapsed-create"); ElapsedInsert = values.GetDouble("elapsed-insert"); ProtocolId = values.GetInt("protocol-id"); TableName = values.GetString("tablename"); }
public VizqlDllVersionInfo(BsonDocument document) { SetEventMetadata(document); BsonDocument values = BsonDocumentHelper.GetValuesStruct(document); Filename = values.GetString("filename"); ProductName = values.GetString("product-name"); FileVersion = values.GetString("file-version"); ProductVersion = values.GetString("product-version"); }
public TableauServerVersion(BsonDocument document) : base(document) { Match match = versionRegex.Match(BsonDocumentHelper.GetString("message", document)); Version = match.Groups["shortVersion"].Value; VersionLong = match.Groups["longVersion"].Value; StartDate = document.GetDateTime("ts"); TimestampOffset = document.GetString("ts_offset"); StartDateGmt = (DateTime)DateTimeConversionHelper.ConvertDateTime(StartDate, TimestampOffset); EndDateGmt = DateTimeConversionHelper.ConvertDateTime(EndDate, TimestampOffset); }
public VizqlQpBatchSummaryJob(string qpBatchSummaryEventGuid, BsonDocument document) { QpBatchSummaryEventGuid = qpBatchSummaryEventGuid; QueryId = BsonDocumentHelper.GetInt("query-id", document); ProtocolId = BsonDocumentHelper.GetNullableInt("protocol-id", document); Elapsed = BsonDocumentHelper.GetNullableDouble("elapsed", document); OwnerComponent = BsonDocumentHelper.GetString("owner-component", document); OwnerDashboard = BsonDocumentHelper.GetString("owner-dashboard", document); OwnerWorksheet = BsonDocumentHelper.GetString("owner-worksheet", document); QueryAbstract = BsonDocumentHelper.TruncateString(BsonDocumentHelper.GetString("query-abstract", document), 1024); QueryCompiled = BsonDocumentHelper.TruncateString(BsonDocumentHelper.GetString("query-compiled", document), 1024); }
public VizqlProcessQuery(BsonDocument document) { SetEventMetadata(document); BsonDocument values = BsonDocumentHelper.GetValuesStruct(document); Error = values.GetString("error"); Cached = values.GetBool("cached"); Success = values.GetBool("success"); CacheHit = values.GetBool("cachehit"); Elapsed = values.GetDouble("elapsed"); Query = values.GetString("query"); }
public BackgrounderJobError(long backgrounderJobId, BsonDocument errorDocument) { BackgrounderJobId = backgrounderJobId; Timestamp = BsonDocumentHelper.GetDateTime("ts", errorDocument); Site = BsonDocumentHelper.GetString("site", errorDocument); Thread = BsonDocumentHelper.GetString("thread", errorDocument); Severity = BsonDocumentHelper.GetString("sev", errorDocument); Class = BsonDocumentHelper.GetString("class", errorDocument); Message = BsonDocumentHelper.GetString("message", errorDocument); File = String.Format(@"{0}\{1}", BsonDocumentHelper.GetString("file_path", errorDocument), BsonDocumentHelper.GetString("file", errorDocument)); Line = BsonDocumentHelper.GetInt("line", errorDocument); }
public VizqlConstructProtocolGroup(BsonDocument document) { SetEventMetadata(document); BsonDocument values = BsonDocumentHelper.GetValuesStruct(document); InConstructionCount = values.GetNullableInt("in-construction-count"); ClosedProtocolsCount = values.GetNullableInt("closed-protocols-count"); ProtocolGroupId = values.GetNullableInt("group-id"); ConnectionLimit = values.GetInt("connection-limit"); Attributes = values.GetString("attributes"); }