<dependency>
<groupId>org.appmon4j</groupId>
<artifactId>appmon4j-core</artifactId>
<version>1.0.0</version>
</dependency>
import org.appmon4j.core.AbstractMonitor;
import org.appmon4j.core.MonitorData;
public class CustomMonitor extends AbstractMonitor {
private static CustomMonitor instance;
public static CustomMonitor getInstance() {
if (instance == null) {
instance = new CustomMonitor();
}
return instance;
}
protected CustomMonitor() {
super("CustomMonitor");
}
@Override
public MonitorData collectData() {
MonitorData data = new MonitorData();
data.put("metric1", getMetric1Value());
data.put("metric2", getMetric2Value());
return data;
}
private String getMetric1Value() {
return "metric1Value";
}
private String getMetric2Value() {
return "metric2Value";
}
}
yaml
monitors:
- name: CustomMonitor
thresholds:
metric1: [">", 100]
metric2: ["<", 50]
actions:
- name: EmailAction
to: [admin@example.com]
subject: "Alert: Metrics threshold exceeded"
Metric1 value: {{metric1}}
Metric2 value: {{metric2}}
import org.appmon4j.core.AppMon4j;
import org.appmon4j.core.actions.EmailActionFactory;
import org.appmon4j.core.monitor.MonitorFactory;
public class Application {
public static void main(String[] args) {
AppMon4j.initialize();
AppMon4j.addMonitor(MonitorFactory.createMonitor(CustomMonitor.class));
AppMon4j.addAction(EmailActionFactory.createAction("EmailAction"));
AppMon4j.start();
AppMon4j.stop();
}
}