* limitations under the License.
* ============LICENSE_END=========================================================
*/
-
package org.openecomp.sdc.fe.monitoring;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.TimeUnit;
+import javax.servlet.ServletContext;
import org.apache.http.HttpEntity;
import org.apache.http.HttpStatus;
import org.apache.http.entity.ContentType;
import org.openecomp.sdc.common.http.client.api.HttpResponse;
import org.openecomp.sdc.common.http.config.HttpClientConfig;
import org.openecomp.sdc.common.http.config.Timeouts;
+import org.openecomp.sdc.common.log.wrappers.Logger;
import org.openecomp.sdc.common.monitoring.MonitoringEvent;
import org.openecomp.sdc.common.monitoring.MonitoringMetricsFetcher;
import org.openecomp.sdc.fe.config.Configuration;
import org.openecomp.sdc.fe.config.ConfigurationManager;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.servlet.ServletContext;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.ThreadFactory;
-import java.util.concurrent.TimeUnit;
public class FeMonitoringService {
private static final String URL = "%s://%s:%s/sdc2/rest/monitoring";
- private static final int DEFAULT_TIMEOUT = 3000;
- private static Logger monitoringLogger = LoggerFactory.getLogger("asdc.fe.monitoring.service");
- private static Logger log = LoggerFactory.getLogger(FeMonitoringService.class.getName());
+ private static Logger monitoringLogger = Logger.getLogger("asdc.fe.monitoring.service");
+ private static Logger log = Logger.getLogger(FeMonitoringService.class.getName());
private static Gson gson = new GsonBuilder().setPrettyPrinting().create();
-
- private class MonitoringScheduledTask implements Runnable {
- @Override
- public void run() {
- monitoringLogger.trace("Executing FE Monitoring Task - Start");
- MonitoringEvent monitoringMetrics = MonitoringMetricsFetcher.getInstance().getMonitoringMetrics();
- processMonitoringEvent(monitoringMetrics);
- monitoringLogger.trace("Executing FE Monitoring Task - Status = {}", monitoringMetrics.toString());
- }
- }
-
/**
* This executor will execute the Monitoring task.
*/
- private ScheduledExecutorService monitoringExecutor = Executors.newSingleThreadScheduledExecutor(new ThreadFactory() {
+ ScheduledExecutorService monitoringExecutor = Executors.newSingleThreadScheduledExecutor(new ThreadFactory() {
@Override
public Thread newThread(Runnable r) {
return new Thread(r, "FE-Monitoring-Thread");
}
});
private ServletContext context;
-
public FeMonitoringService(ServletContext context) {
this.context = context;
}
public void start(int interval) {
- Configuration config = ((ConfigurationManager) context.getAttribute(Constants.CONFIGURATION_MANAGER_ATTR))
- .getConfiguration();
+ Configuration config = ((ConfigurationManager) context.getAttribute(Constants.CONFIGURATION_MANAGER_ATTR)).getConfiguration();
if (config.getSystemMonitoring().getEnabled()) {
log.info("FE monitoring service enabled, interval is {} seconds", interval);
this.monitoringExecutor.scheduleAtFixedRate(new MonitoringScheduledTask(), 0, interval, TimeUnit.SECONDS);
private void processMonitoringEvent(MonitoringEvent monitoringMetrics) {
try {
- Configuration config = ((ConfigurationManager) context.getAttribute(Constants.CONFIGURATION_MANAGER_ATTR))
- .getConfiguration();
+ Configuration config = ((ConfigurationManager) context.getAttribute(Constants.CONFIGURATION_MANAGER_ATTR)).getConfiguration();
String redirectedUrl = String.format(URL, config.getBeProtocol(), config.getBeHost(),
- Constants.HTTPS.equals(config.getBeProtocol()) ? config.getBeSslPort() : config.getBeHttpPort());
-
- int timeout = DEFAULT_TIMEOUT;
+ Constants.HTTPS.equals(config.getBeProtocol()) ? config.getBeSslPort() : config.getBeHttpPort());
+ int timeout = 3000;
String monitoringMetricsJson = gson.toJson(monitoringMetrics);
HttpEntity myEntity = new StringEntity(monitoringMetricsJson, ContentType.APPLICATION_JSON);
HttpResponse<String> resposne = HttpRequest.post(redirectedUrl, myEntity, new HttpClientConfig(new Timeouts(timeout, timeout)));
monitoringLogger.error("Monitoring BE failed with exception ", e);
}
}
+
+ private class MonitoringScheduledTask implements Runnable {
+
+ @Override
+ public void run() {
+ monitoringLogger.trace("Executing FE Monitoring Task - Start");
+ MonitoringEvent monitoringMetrics = MonitoringMetricsFetcher.getInstance().getMonitoringMetrics();
+ processMonitoringEvent(monitoringMetrics);
+ monitoringLogger.trace("Executing FE Monitoring Task - Status = {}", monitoringMetrics.toString());
+ }
+ }
}