private IEnumerator CreateActualReport()
        {
            if (currentReport != null)
            {
                yield break;
            }
            else
            {
                currentReport = new PerformanceDump();
            }

            var sw = new Stopwatch();

            sw.Start();

            CompletePluginsReport();
            ServerMgr.Instance.StartCoroutine(CompleteEntitiesReport());

            while (currentReport.entities.completed == false && config.runEntitiesReport == true)
            {
                Puts($"Report status: {currentReport.statusBar}% [{currentReport.entitiesChecked}/{currentReport.entitiesTotal}]");
                yield return(new WaitForSecondsRealtime(3f));
            }

            SaveReport(currentReport);
            currentReport = null;
            sw.Stop();
            Puts($"Performance report was completed in {Time()}");
            LogToFile("events", $"Performance report was completed in {Time()}, it taken {sw.ElapsedMilliseconds}ms", this);
        }
        private void SaveReport(PerformanceDump dump)
        {
            var name1    = DateTime.Now.ToString("dd/MM/yyyy").Replace("/", "-");
            var name2    = DateTime.Now.ToString(Time()).Replace(':', '-');
            var filename = $"PerformanceMonitor/Reports/{name1}/{name2}";

            Interface.Oxide.DataFileSystem.WriteObject(filename, dump);
        }