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"];
}