diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2025-07-30 12:36:30 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2025-07-30 12:36:30 +0300 |
| commit | 4222eddece906d6f0877022c06b853deb5068472 (patch) | |
| tree | a29b706b3a5aedb28a42b209d5bb72b0ef94d40e /Software/Visual_Studio/Tango.Telemetry/Modules/TelemetryDiagnosticsModule.cs | |
| parent | a802fe75f9538371004f1833e69a69b798892d0c (diff) | |
| download | Tango-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.cs | 134 |
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; - } - } -} |
