private void CheckAndReturnAnalyzerDetailedStatus(Log log) { string siteName = Infrastructure.Settings.SiteName; if (siteName.Length > 10) { siteName = siteName.Substring(0, 10); } var path = Path.Combine( "Reports", siteName, log.EndTime.ToString("yy-MM-dd"), log.EndTime.ToString(SessionConstants.SessionFileNameFormat), Diagnoser.Analyzer.Name); string fullDirPath = Path.Combine(@"d:\home\data\daas\", path); var files = new List <string>(); if (Directory.Exists(fullDirPath)) { files = Directory.GetFiles(fullDirPath, log.FileName + ".diagstatus.diaglog", SearchOption.TopDirectoryOnly).ToList(); //Logger.LogDiagnostic("Found {0} status file in path {1}", files.Count, fullDirPath); } var logFileName = log.FileName; logFileName = Path.GetFileNameWithoutExtension(logFileName); foreach (var statusFile in files) { try { using (FileStream fs = System.IO.File.Open(statusFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { using (StreamReader sr = new StreamReader(fs)) { while (!sr.EndOfStream) { var msg = new DiagnoserStatusMessage { EntityType = logFileName, Message = sr.ReadLine() }; AnalyzerStatusMessages.Add(msg); } } } } catch (Exception ex) { Logger.LogErrorEvent($"Failed to read status file for Analyzer", ex); } } }
private void CheckAndReturnCollectorDetailedStatus(XElement diagnoserXml) { if (diagnoserXml.Parent != null) { var diagnosers = diagnoserXml.Parent; if (diagnosers.Parent != null) { var sessionXml = diagnosers.Parent; var timeRangeXml = sessionXml.Element(SessionXml.TimeRange); var StartTime = DateTime.Parse(timeRangeXml.Element(SessionXml.StartTime).Value).ToUniversalTime(); var EndTime = DateTime.Parse(timeRangeXml.Element(SessionXml.EndTime).Value).ToUniversalTime(); string siteName = Infrastructure.Settings.SiteName; if (siteName.Length > 10) { siteName = siteName.Substring(0, 10); } foreach (var instance in HeartBeatController.GetLiveInstances()) { var path = Path.Combine("Logs", siteName, EndTime.ToString("yy-MM-dd"), instance.Name, this.Diagnoser.Collector.Name, StartTime.ToString(SessionConstants.SessionFileNameFormat)); string fullDirPath = Path.Combine(@"d:\home\data\daas\", path); var files = new List <string>(); if (Directory.Exists(fullDirPath)) { files = Directory.GetFiles(fullDirPath, "diagstatus.diaglog", SearchOption.TopDirectoryOnly).ToList(); } foreach (var statusFile in files) { try { using (FileStream fs = System.IO.File.Open(statusFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { using (StreamReader sr = new StreamReader(fs)) { while (!sr.EndOfStream) { var msg = new DiagnoserStatusMessage { EntityType = instance.Name, Message = sr.ReadLine() }; CollectorStatusMessages.Add(msg); } } } } catch (Exception ex) { Logger.LogErrorEvent($"Failed to read status file", ex); } } } } } }