A library that contains the classes, interfaces and utilities needed for developing AnyStatus plugins.
Build status NuGet Join the chat at https://gitter.im/AnyStatus
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; } } }
In addition to the IMonitored and IMonitor<T> interfaces, you can also implement interfaces such as ICanStart, ICanStop, ICanRestart and others, to let AnyStatus know which features are supported by the plugin.