aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Telemetry/Modules/TelemetryDiagnosticsModule.cs
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2025-07-30 12:36:30 +0300
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2025-07-30 12:36:30 +0300
commit4222eddece906d6f0877022c06b853deb5068472 (patch)
treea29b706b3a5aedb28a42b209d5bb72b0ef94d40e /Software/Visual_Studio/Tango.Telemetry/Modules/TelemetryDiagnosticsModule.cs
parenta802fe75f9538371004f1833e69a69b798892d0c (diff)
downloadTango-4222eddece906d6f0877022c06b853deb5068472.tar.gz
Tango-4222eddece906d6f0877022c06b853deb5068472.zip
Telemetry source.
Diffstat (limited to 'Software/Visual_Studio/Tango.Telemetry/Modules/TelemetryDiagnosticsModule.cs')
-rw-r--r--Software/Visual_Studio/Tango.Telemetry/Modules/TelemetryDiagnosticsModule.cs134
1 files changed, 0 insertions, 134 deletions
diff --git a/Software/Visual_Studio/Tango.Telemetry/Modules/TelemetryDiagnosticsModule.cs b/Software/Visual_Studio/Tango.Telemetry/Modules/TelemetryDiagnosticsModule.cs
deleted file mode 100644
index a35e08328..000000000
--- a/Software/Visual_Studio/Tango.Telemetry/Modules/TelemetryDiagnosticsModule.cs
+++ /dev/null
@@ -1,134 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Timers;
-using Tango.Core;
-using Tango.Insights;
-using Tango.Integration.Operation;
-using Tango.Logging;
-using Tango.PMR.Diagnostics;
-using Tango.PMR.Insights;
-using Tango.Telemetry.TelemetryObjects;
-
-namespace Tango.Telemetry.Modules
-{
- public class TelemetryDiagnosticsModule : TelemetryConfigurableModule<TelemetryDiagnosticsModuleConfig>, ITelemetryModule
- {
- public const int MIN_SAMPLING_INTERVAL_SECONDS = 1;
-
- private IMachineOperator _machineOperator;
- private bool _isStarted;
-
- private Timer _diagnosticsSamplingTimer;
- private List<StartDiagnosticsResponse> _diagnosticsQueue;
- private bool _writing;
- private bool _emptyWritten;
-
- public event EventHandler<TelemetryAvailableEventArgs> TelemetryAvailable;
-
- public string Name { get; private set; } = "Diagnostics";
-
- private TelemetryDiagnosticsModule() : base()
- {
- _diagnosticsQueue = new List<StartDiagnosticsResponse>();
- }
-
- public TelemetryDiagnosticsModule(IMachineOperator machineOperator) : base()
- {
- _machineOperator = machineOperator;
- _machineOperator.DiagnosticsDataAvailable += DiagnosticsDataAvailable;
- }
-
- private void DiagnosticsDataAvailable(object sender, StartDiagnosticsResponse diagnostics)
- {
- if (_isStarted && diagnostics.Monitors != null)
- {
- _diagnosticsQueue.Add(diagnostics);
- }
- }
-
- public void Start()
- {
- _isStarted = true;
-
- if (Config.DiagnosticsSamplingInterval.TotalSeconds < MIN_SAMPLING_INTERVAL_SECONDS)
- {
- Config.DiagnosticsSamplingInterval = TimeSpan.FromSeconds(MIN_SAMPLING_INTERVAL_SECONDS);
- }
-
- if (_diagnosticsSamplingTimer == null)
- {
- _diagnosticsSamplingTimer = new Timer();
- _diagnosticsSamplingTimer.Interval = Config.DiagnosticsSamplingInterval.TotalMilliseconds;
- _diagnosticsSamplingTimer.Elapsed += DiagnosticsSamplingTimer_Elapsed;
- }
-
-
- _diagnosticsQueue.Clear();
-
- _writing = false;
- _diagnosticsSamplingTimer.Start();
- }
-
- public void Stop()
- {
- _isStarted = false;
- }
-
- private void DiagnosticsSamplingTimer_Elapsed(object sender, ElapsedEventArgs e)
- {
- if (!_isStarted || _writing) return;
-
- try
- {
- _diagnosticsSamplingTimer.Stop();
-
- _writing = true;
-
- if (_diagnosticsQueue.Count > 0)
- {
- var queue = _diagnosticsQueue.ToList();
- _diagnosticsQueue.Clear();
- _emptyWritten = false;
-
- var monitorsAvg = InsightsHelper.AverageMonitors(queue.Select(x => x.Monitors).ToList());
- queue.Clear();
-
- TelemetryDiagnosticsFrame frame = new TelemetryDiagnosticsFrame();
- frame.Monitors = monitorsAvg;
- frame.Time = DateTime.UtcNow.Subtract(Config.DiagnosticsSamplingInterval);
-
-
- TelemetryAvailable?.Invoke(this, new TelemetryAvailableEventArgs(frame, TelemetrySource.Streaming));
- }
- else
- {
- if (!_emptyWritten)
- {
- TelemetryDiagnosticsFrame frame = new TelemetryDiagnosticsFrame();
- frame.Monitors = new InsightsMonitors();
- frame.Time = DateTime.UtcNow.Subtract(Config.DiagnosticsSamplingInterval);
- TelemetryAvailable?.Invoke(this, new TelemetryAvailableEventArgs(frame, TelemetrySource.Streaming));
- _emptyWritten = true;
- }
- }
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, "Error occurred on insights frame insertion.");
- }
- finally
- {
- _writing = false;
- _diagnosticsSamplingTimer.Start();
- }
- }
-
- public void Dispose()
- {
- _machineOperator.DiagnosticsDataAvailable -= DiagnosticsDataAvailable;
- }
- }
-}