package org.stagemonitor.alerting.alerter; import org.stagemonitor.core.CorePlugin; import org.stagemonitor.configuration.ConfigurationRegistry; import org.stagemonitor.core.util.HttpClient; import org.stagemonitor.util.StringUtils; public class ElasticsearchAlerter extends Alerter { private CorePlugin corePlugin; private HttpClient httpClient; public ElasticsearchAlerter(ConfigurationRegistry configuration, HttpClient httpClient) { this.corePlugin = configuration.getConfig(CorePlugin.class); this.httpClient = httpClient; } @Override public void alert(AlertArguments alertArguments) { String target = alertArguments.getSubscription().getTarget(); if (StringUtils.isEmpty(target)) { target = "/stagemonitor/alerts"; } httpClient.sendAsJson("POST", corePlugin.getElasticsearchUrl() + target, alertArguments.getIncident()); } @Override public String getAlerterType() { return "Elasticsearch"; } @Override public boolean isAvailable() { return !corePlugin.getElasticsearchUrls().isEmpty(); } @Override public String getTargetLabel() { return "Index"; } }