A library that contains the classes, interfaces and utilities needed for developing AnyStatus plugins.
AnyStatus communicates with plugins using the API library. During startup, AnyStatus scans assemblies in the installation directory and registers all plugins.
A plugin is a set of classes that instruct AnyStatus how to display it in the dashboard and which features the plugin supports.
Check out the complete plugins library at https://github.com/AnyStatus/Plugins
A class that defines the plugin.
[DisplayName("Ping")]
[DisplayColumn("Network")]
[Description("Test the reachability of a host")]
public class Ping : Plugin, IMonitored
{
[Required]
[Category("Ping")]
[Description("Host Name or IP Address")]
public string Host { get; set; }
}
A class that handles a monitor health check.
public class Pong : IMonitor<Ping>
{
public void Handle(Ping myPing)
{
using (var ping = new System.Net.NetworkInformation.Ping())
{
var pong = ping.Send(myPing.Host);
if (pong.Status == IPStatus.Success)
ping.State = State.Ok;
else
ping.State = State.Failed;
}
}
}