Skip to content

Commit

Permalink
moving stats to providers
Browse files Browse the repository at this point in the history
  • Loading branch information
matjaz99 committed Dec 19, 2022
1 parent 7285369 commit 7a23ab5
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import si.matjazcerkvenik.alertmonitor.web.WebhookMessage;
import si.matjazcerkvenik.simplelogger.SimpleLogger;

import java.text.DecimalFormat;
import java.util.*;
import java.util.stream.Collectors;

Expand Down Expand Up @@ -68,7 +69,7 @@ public void setProviderConfig(ProviderConfig providerConfig) {
*/
public void init() {
// TODO error handling!
LogFactory.getLogger().info(providerConfig.toString());
logger.info(providerConfig.toString());
prometheusApiClientPool = new PrometheusApiClientPool(this);
restartSyncTimer();
}
Expand Down Expand Up @@ -377,10 +378,31 @@ public long getLastSyncTimestamp() {
return lastSyncTimestamp;
}

public String getLastSyncTimestampFormatted() {
return Formatter.getFormatedTimestamp(lastSyncTimestamp, AmDateFormat.TIME);
}

public void setLastSyncTimestamp(long lastSyncTimestamp) {
this.lastSyncTimestamp = lastSyncTimestamp;
}

public String getSyncInterval() {
return providerConfig.getParam(PrometheusDataProvider.DP_PARAM_KEY_SYNC_INTERVAL_SEC);
}

public int getActiveAlarmsCount(String severity) {
return getActiveAlarmsList(severity).size();
}

public int getAllActiveAlarmsCount() {
return activeAlerts.size();
}

public String getBalanceFactor() {
DecimalFormat df2 = new DecimalFormat("#.##");
return df2.format(calculateAlertsBalanceFactor());
}

public int getSyncSuccessCount() {
return syncSuccessCount;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,19 @@

import si.matjazcerkvenik.alertmonitor.model.DEvent;
import si.matjazcerkvenik.alertmonitor.model.DTarget;
import si.matjazcerkvenik.alertmonitor.util.LogFactory;
import si.matjazcerkvenik.alertmonitor.web.WebhookMessage;

import java.util.List;

public class EventloggerDataProvider extends AbstractDataProvider {

@Override
public void init() {
logger.info(providerConfig.toString());
addWarning("notSupportedProvider", "Provider not supported");
}

@Override
public void processIncomingEvent(WebhookMessage m) {
// TODO
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,7 @@ public long getClearsCount() {
}

public void setSyncInterval(String interval) {
// TODO fix
AbstractDataProvider adp = DAO.getInstance().getDataProvider(selectedDataProvider);
Integer i = Integer.parseInt(interval);
adp.getProviderConfig().setParam(PrometheusDataProvider.DP_PARAM_KEY_SYNC_INTERVAL_SEC, String.valueOf(i));
Expand All @@ -262,28 +263,34 @@ public void setSyncInterval(String interval) {
}

public String getSyncInterval() {
// TODO moved to provider
AbstractDataProvider adp = DAO.getInstance().getDataProvider(selectedDataProvider);
return adp.getProviderConfig().getParam(PrometheusDataProvider.DP_PARAM_KEY_SYNC_INTERVAL_SEC);
}

public String getLastSyncTime() {
// TODO moved to provider
AbstractDataProvider adp = DAO.getInstance().getDataProvider(selectedDataProvider);
return Formatter.getFormatedTimestamp(adp.getLastSyncTimestamp(), AmDateFormat.TIME); }

public String getSyncSuccessCount() {
// TODO moved to provider
AbstractDataProvider adp = DAO.getInstance().getDataProvider(selectedDataProvider);
return Integer.toString(adp.getSyncSuccessCount()); }

public String getSyncFailedCount() {
// TODO moved to provider
AbstractDataProvider adp = DAO.getInstance().getDataProvider(selectedDataProvider);
return Integer.toString(adp.getSyncFailedCount()); }

public int getActiveAlarmsCount(String severity) {
// TODO moved to provider
AbstractDataProvider adp = DAO.getInstance().getDataProvider(selectedDataProvider);
return adp.getActiveAlarmsList(severity).size();
}

public int getAllActiveAlarmsCount() {
// TODO moved to provider
AbstractDataProvider adp = DAO.getInstance().getDataProvider(selectedDataProvider);
return adp.getActiveAlerts().size();
}
Expand All @@ -302,6 +309,7 @@ public String getAlertsPerSecondInLastHour() {
}

public String getBalanceFactor() {
// TODO moved to provider
AbstractDataProvider adp = DAO.getInstance().getDataProvider(selectedDataProvider);
DecimalFormat df2 = new DecimalFormat("#.##");
return df2.format(adp.calculateAlertsBalanceFactor());
Expand Down
20 changes: 10 additions & 10 deletions src/main/webapp/providers/providers.xhtml
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,12 @@

<p:panelGrid columns="1" cellspacing="5" width="100%">
<h3>Active alerts</h3>
<p:outputLabel value="Critical: #{uiConfigBean.getActiveAlarmsCount('critical')}" />
<p:outputLabel value="Major: #{uiConfigBean.getActiveAlarmsCount('major')}" />
<p:outputLabel value="Minor: #{uiConfigBean.getActiveAlarmsCount('minor')}" />
<p:outputLabel value="Warning: #{uiConfigBean.getActiveAlarmsCount('warning')}" />
<p:outputLabel value="Total alerts: #{uiConfigBean.allActiveAlarmsCount}" />
<p:outputLabel value="Balance factor: #{uiConfigBean.balanceFactor}" />
<p:outputLabel value="Critical: #{p.getActiveAlarmsCount('critical')}" />
<p:outputLabel value="Major: #{p.getActiveAlarmsCount('major')}" />
<p:outputLabel value="Minor: #{p.getActiveAlarmsCount('minor')}" />
<p:outputLabel value="Warning: #{p.getActiveAlarmsCount('warning')}" />
<p:outputLabel value="Total alerts: #{p.allActiveAlarmsCount}" />
<p:outputLabel value="Balance factor: #{p.balanceFactor}" />
</p:panelGrid>

<p:panelGrid columns="1" cellspacing="5" width="100%">
Expand All @@ -80,10 +80,10 @@

<p:panelGrid columns="1" cellspacing="5" width="100%">
<h3>Sync</h3>
<p:outputLabel value="Sync interval: #{uiConfigBean.syncInterval} sec" />
<p:outputLabel value="Sync last time: #{uiConfigBean.lastSyncTime}" />
<p:outputLabel value="Sync success: #{uiConfigBean.syncSuccessCount}" />
<p:outputLabel value="Sync fail: #{uiConfigBean.syncFailedCount}" />
<p:outputLabel value="Sync interval: #{p.syncInterval} sec" />
<p:outputLabel value="Sync last time: #{p.lastSyncTimestampFormatted}" />
<p:outputLabel value="Sync success: #{p.syncSuccessCount}" />
<p:outputLabel value="Sync fail: #{p.syncFailedCount}" />
<p:outputLabel value="-" />
<p:outputLabel value="-" />
</p:panelGrid>
Expand Down

0 comments on commit 7a23ab5

Please sign in to comment.