namespace HanaToolbox.Config; public sealed class MonitorConfig { public bool Enabled { get; set; } = false; /// hdbuserstore key used for all monitoring SQL queries. public string HanaUserKey { get; set; } = "CRONKEY"; public string HanaInstanceNumber { get; set; } = "00"; /// Full path to sapcontrol binary. public string SapcontrolPath { get; set; } = "/usr/sap/NDB/HDB00/exe/sapcontrol"; /// Company name included in ntfy alert messages. public string CompanyName { get; set; } = "MyCompany"; /// Disk usage alert threshold in percent. public int DiskUsageThresholdPercent { get; set; } = 85; /// Alert if truncated log segments exceed this percent of total. public int TruncatedSegmentThresholdPercent { get; set; } = 80; /// Alert if free log segments fall below this percent of total. public int FreeSegmentThresholdPercent { get; set; } = 10; /// Statement queue length above which a breach is counted. public int StatementQueueThreshold { get; set; } = 10; /// How many consecutive cron ticks above threshold before alerting. public int StatementQueueConsecutiveRuns { get; set; } = 3; /// Alert if the last successful backup is older than this many hours. public int BackupThresholdHours { get; set; } = 26; /// Directories checked for disk usage. public List DirectoriesToMonitor { get; set; } = ["/hana/data", "/hana/log"]; }