Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
        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);
                            }
                        }
                    }
                }
            }
        }