monithor/Monithor.api/Monitor.cs
2021-05-13 22:38:02 +02:00

43 lines
1.1 KiB
C#

using System;
using System.Collections.Generic;
using InfluxDB.Client;
using NodaTime;
namespace Monithor.api {
public interface IMonitor {
public string Identifier { get; set; }
public string LastValue { get; set; }
public DateTime StartedAt { get; set; }
public DateTime ResolvedAt { get; set; }
public MonitorStatus Status { get; set; }
public string Message { get; set; }
public IEnumerable<FluxItem> GetFluxItems(Influx influx, string timespan);
public bool Update(IEnumerable<FluxItem> data);
}
public enum MonitorStatus {
Unknown,
Up,
Down,
Validating,
Recovering
}
public class Influx {
public Influx(InfluxDBClient client, string org, string bucket) {
Client = client;
Org = org;
Bucket = bucket;
}
public readonly InfluxDBClient Client;
public readonly string Org;
public readonly string Bucket;
}
public class FluxItem {
public Instant Time;
public string Status;
public string Message;
}
}