using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.Logging; using Tango.Settings; namespace Tango.PPC.Common.Telemetry { public class TelemetrySettings : SettingsBase { public bool Enable { get; set; } = true; public bool EnableIoTHub { get; set; } = true; public bool EnableMqtt { get; set; } = false; public String IoTHubConnectionString { get; set; } = "HostName=iot-twine-dev-weu.azure-devices.net;DeviceId=telemetry-dev-01;SharedAccessKey=cZhCMhiVL+TF7p13fpX+lFmyxoy8ZqCkbxUwumWw18Q="; /// /// Interval for checking and reprocessing failed/pending telemetry from local storage. /// public TimeSpan PendingStorageCheckInterval { get; set; } = TimeSpan.FromMinutes(1); /// /// Frequency at which historical sources are polled to request backlogged or missed telemetry. /// public TimeSpan HistorySourcesRequestInterval { get; set; } = TimeSpan.FromMinutes(1); /// /// Whether exponential backoff should be applied to retry logic per destination. /// public bool EnableBackoff { get; set; } = false; /// /// The maximum amount of time to delay retries during exponential backoff. /// public TimeSpan MaxExponentialBackoff { get; set; } = TimeSpan.FromHours(1); /// /// Gets or sets the interval at which the published telemetry cache cleanup process should occur. /// This defines how frequently old published telemetry entries are eligible for pruning, /// based on their publication timestamp. /// public TimeSpan PublishedTelemetriesCacheCleanupInterval { get; set; } = TimeSpan.FromHours(1); public bool SendDiagnostics { get; set; } = true; public TimeSpan DiagnosticsSamplingInterval { get; set; } = TimeSpan.FromSeconds(60); public bool SendEvents { get; set; } = true; public bool SendJobRuns { get; set; } = true; public bool SendJobRunsHistory { get; set; } = true; public bool SendJobStatus { get; set; } = true; public bool SendLogs { get; set; } = true; public bool SendMachineStatus { get; set; } = true; public bool SendMachineUpdates { get; set; } = true; public bool SendMachineUpdatesHistory { get; set; } = true; public bool SendWires { get; set; } = true; public HashSet LogCategories { get; set; } = new HashSet() { LogCategory.Critical, LogCategory.Error, LogCategory.Warning }; } }