Skip to content
This repository has been archived by the owner on Jul 11, 2022. It is now read-only.

Commit

Permalink
[BZ 1031820] Add back in the Ability to override custom baseline in b…
Browse files Browse the repository at this point in the history
…aseline graph.
  • Loading branch information
mtho11 committed Mar 3, 2014
1 parent 91c1ef3 commit 9088ac7
Show file tree
Hide file tree
Showing 16 changed files with 633 additions and 42 deletions.
Expand Up @@ -395,7 +395,7 @@ public ChartViewWindow(String title, String windowTitle, final GroupMetricsPortl
setIsModal(true);
setShowModalMask(true);
setWidth(950);
setHeight(420);
setHeight(550);
setShowResizer(true);
setCanDragResize(true);
centerInPage();
Expand Down

Large diffs are not rendered by default.

Expand Up @@ -22,21 +22,27 @@
import java.util.List;
import java.util.Map;

import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.FloatItem;
import com.smartgwt.client.widgets.form.fields.LinkItem;
import com.smartgwt.client.widgets.form.fields.StaticTextItem;
import com.smartgwt.client.widgets.form.fields.events.*;
import com.smartgwt.client.widgets.layout.VLayout;

import org.rhq.core.domain.common.EntityContext;
import org.rhq.core.domain.criteria.MeasurementScheduleCriteria;
import org.rhq.core.domain.criteria.ResourceCriteria;
import org.rhq.core.domain.measurement.MeasurementDefinition;
import org.rhq.core.domain.measurement.MeasurementSchedule;
import org.rhq.core.domain.measurement.*;
import org.rhq.core.domain.measurement.composite.MeasurementDataNumericHighLowComposite;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.resource.composite.ResourceComposite;
import org.rhq.core.domain.util.PageList;
import org.rhq.coregui.client.CoreGUI;
import org.rhq.coregui.client.LinkManager;
import org.rhq.coregui.client.components.form.EnhancedDynamicForm;
import org.rhq.coregui.client.dashboard.Portlet;
import org.rhq.coregui.client.dashboard.PortletViewFactory;
import org.rhq.coregui.client.dashboard.portlets.groups.GroupMetricsPortlet;
Expand All @@ -47,6 +53,7 @@
import org.rhq.coregui.client.inventory.resource.type.ResourceTypeRepository;
import org.rhq.coregui.client.util.Log;
import org.rhq.coregui.client.util.async.CountDownLatch;
import org.rhq.coregui.client.util.message.Message;

/**
* This portlet allows the end user to customize the metric display
Expand All @@ -62,9 +69,11 @@ public class ResourceMetricsPortlet extends GroupMetricsPortlet {

private int resourceId = -1;


public ResourceMetricsPortlet(int resourceId) {
super(EntityContext.forResource(-1));
this.resourceId = resourceId;

}

private volatile Resource resource = null;
Expand All @@ -82,13 +91,7 @@ public final Portlet getInstance(EntityContext context) {
}
}

@Override
protected void showPopupWithChart(String title, MeasurementDefinition md) {
ChartViewWindow window = new ChartViewWindow(title, "", refreshablePortlet);
D3GraphListView graphView = D3GraphListView.createSingleGraph(resource, md.getId(), true);
window.addItem(graphView);
window.show();
}


@Override
protected DynamicForm getEmptyDataForm() {
Expand Down Expand Up @@ -166,4 +169,13 @@ public void onTypesLoaded(ResourceType type) {
}
});
}


@Override
protected void showPopupWithChart(final String title, final MeasurementDefinition md){

MetricsChartWindow metricsChartWindow1 = new MetricsChartWindow();
metricsChartWindow1.showPopupChart(title, resource, md, refreshablePortlet);
}

}
Expand Up @@ -29,11 +29,7 @@
import org.rhq.core.domain.criteria.MeasurementDataTraitCriteria;
import org.rhq.core.domain.criteria.MeasurementDefinitionCriteria;
import org.rhq.core.domain.criteria.MeasurementScheduleCriteria;
import org.rhq.core.domain.measurement.DisplayType;
import org.rhq.core.domain.measurement.MeasurementData;
import org.rhq.core.domain.measurement.MeasurementDataTrait;
import org.rhq.core.domain.measurement.MeasurementDefinition;
import org.rhq.core.domain.measurement.MeasurementSchedule;
import org.rhq.core.domain.measurement.*;
import org.rhq.core.domain.measurement.calltime.CallTimeDataComposite;
import org.rhq.core.domain.measurement.composite.MeasurementDataNumericHighLowComposite;
import org.rhq.core.domain.measurement.composite.MeasurementOOBComposite;
Expand Down Expand Up @@ -110,4 +106,14 @@ void updateSchedulesForResourceType(int[] measurementDefinitionIds, long collect

PageList<MeasurementDataTrait> findTraitsByCriteria(MeasurementDataTraitCriteria criteria) throws RuntimeException;

MeasurementBaseline getBaselineForResourceAndSchedule(int resourceId, int definitionId) throws RuntimeException;

void setUserBaselineMax(int resourceId, int definitionId, Double maxBaseline) throws RuntimeException;

void setUserBaselineMin(int resourceId, int definitionId, Double minBaseline) throws RuntimeException;

void setUserBaselineMean(int resourceId, int definitionId, Double meanBaseline) throws RuntimeException;

MeasurementBaseline calcBaselineForDateRange(Integer measurementScheduleId, long startDate, long endDate) throws RuntimeException;

}
Expand Up @@ -34,6 +34,8 @@
import org.rhq.coregui.client.inventory.common.graph.graphtype.StackedBarMetricGraphImpl;
import org.rhq.coregui.client.util.Log;
import org.rhq.coregui.client.util.MeasurementConverterClient;
import org.rhq.coregui.client.util.MeasurementUtility;


/**
* The data portion of the graphs making these methods accessible via JSNI to
Expand Down Expand Up @@ -377,11 +379,11 @@ public String getJsonMetrics() {

if (!Double.isNaN(measurement.getValue())) {

MeasurementNumericValueAndUnits newHigh = normalizeUnitsAndValues(measurement.getHighValue(),
MeasurementNumericValueAndUnits newHigh = MeasurementUtility.normalizeUnitsAndValues(measurement.getHighValue(),
definition.getUnits());
MeasurementNumericValueAndUnits newLow = normalizeUnitsAndValues(measurement.getLowValue(),
MeasurementNumericValueAndUnits newLow = MeasurementUtility.normalizeUnitsAndValues(measurement.getLowValue(),
definition.getUnits());
MeasurementNumericValueAndUnits newAvg = normalizeUnitsAndValues(measurement.getValue(),
MeasurementNumericValueAndUnits newAvg = MeasurementUtility.normalizeUnitsAndValues(measurement.getValue(),
definition.getUnits());
if (!gotAdjustedMeasurementUnits) {
adjustedMeasurementUnits = newAvg.getUnits();
Expand Down Expand Up @@ -481,20 +483,6 @@ private void calculateOOB() {
}
}

private MeasurementNumericValueAndUnits normalizeUnitsAndValues(double value, MeasurementUnits measurementUnits) {
MeasurementNumericValueAndUnits newValue = MeasurementConverterClient.fit(value, measurementUnits);
MeasurementNumericValueAndUnits returnValue;

// adjust for percentage numbers
if (measurementUnits.equals(MeasurementUnits.PERCENTAGE)) {
returnValue = new MeasurementNumericValueAndUnits(newValue.getValue() * 100, newValue.getUnits());
} else {
returnValue = new MeasurementNumericValueAndUnits(newValue.getValue(), newValue.getUnits());
}

return returnValue;
}

@Override
public String toString() {
final StringBuilder sb = new StringBuilder();
Expand Down
Expand Up @@ -23,6 +23,7 @@
import com.google.gwt.i18n.client.DateTimeFormat;

import org.rhq.core.domain.measurement.MeasurementUnits;
import org.rhq.core.domain.measurement.composite.MeasurementNumericValueAndUnits;
import org.rhq.core.domain.measurement.ui.MetricDisplaySummary;

public class MeasurementUtility {
Expand Down Expand Up @@ -135,4 +136,18 @@ public static void formatSimpleMetrics(MetricDisplaySummary summary) {
}
}

public static MeasurementNumericValueAndUnits normalizeUnitsAndValues(double value, MeasurementUnits measurementUnits) {
MeasurementNumericValueAndUnits newValue = MeasurementConverterClient.fit(value, measurementUnits);
MeasurementNumericValueAndUnits returnValue;

// adjust for percentage numbers
if (measurementUnits.equals(MeasurementUnits.PERCENTAGE)) {
returnValue = new MeasurementNumericValueAndUnits(newValue.getValue() * 100, newValue.getUnits());
} else {
returnValue = new MeasurementNumericValueAndUnits(newValue.getValue(), newValue.getUnits());
}

return returnValue;
}

}
Expand Up @@ -45,4 +45,17 @@ public static String[] formatSimpleMetrics(double[] summary, MeasurementDefiniti

return formattedValues;
}

/**
* Single value version of formatSimpleMetrics for convenience.
* @param value
* @param md
* @return formatted string value
*/
public static String formatSimpleMetric(double value, MeasurementDefinition md) {
double[] dArray = new double[1];
dArray[0] = value;
return formatSimpleMetrics( dArray, md) [0];

}
}
Expand Up @@ -27,11 +27,7 @@
import org.rhq.core.domain.criteria.MeasurementDataTraitCriteria;
import org.rhq.core.domain.criteria.MeasurementDefinitionCriteria;
import org.rhq.core.domain.criteria.MeasurementScheduleCriteria;
import org.rhq.core.domain.measurement.DisplayType;
import org.rhq.core.domain.measurement.MeasurementData;
import org.rhq.core.domain.measurement.MeasurementDataTrait;
import org.rhq.core.domain.measurement.MeasurementDefinition;
import org.rhq.core.domain.measurement.MeasurementSchedule;
import org.rhq.core.domain.measurement.*;
import org.rhq.core.domain.measurement.calltime.CallTimeDataComposite;
import org.rhq.core.domain.measurement.composite.MeasurementDataNumericHighLowComposite;
import org.rhq.core.domain.measurement.composite.MeasurementOOBComposite;
Expand All @@ -41,11 +37,7 @@
import org.rhq.core.domain.util.PageList;
import org.rhq.coregui.client.gwt.MeasurementDataGWTService;
import org.rhq.coregui.server.util.SerialUtility;
import org.rhq.enterprise.server.measurement.CallTimeDataManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementDataManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementDefinitionManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementOOBManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementScheduleManagerLocal;
import org.rhq.enterprise.server.measurement.*;
import org.rhq.enterprise.server.measurement.util.MeasurementUtils;
import org.rhq.enterprise.server.util.LookupUtil;

Expand All @@ -59,6 +51,7 @@ public class MeasurementDataGWTServiceImpl extends AbstractGWTServiceImpl implem

private MeasurementDataManagerLocal dataManager = LookupUtil.getMeasurementDataManager();
private MeasurementOOBManagerLocal measurementOOBManager = LookupUtil.getOOBManager();
private MeasurementBaselineManagerLocal measurementBaselineManager = LookupUtil.getMeasurementBaselineManager();

private MeasurementScheduleManagerLocal scheduleManager = LookupUtil.getMeasurementScheduleManager();
private MeasurementDefinitionManagerLocal definitionManager = LookupUtil.getMeasurementDefinitionManager();
Expand Down Expand Up @@ -313,4 +306,86 @@ public PageList<MeasurementDataTrait> findTraitsByCriteria(MeasurementDataTraitC
throw getExceptionToThrowToClient(t);
}
}

@Override
public MeasurementBaseline getBaselineForResourceAndSchedule(int resourceId, int definitionId) throws RuntimeException {
try {
MeasurementSchedule scheduleWithBaseline = scheduleManager.getSchedule(getSessionSubject(), resourceId, definitionId, true);

return SerialUtility.prepare(scheduleWithBaseline.getBaseline(), "MeasurementSchedule.getSchedule");
} catch (Throwable t) {
throw getExceptionToThrowToClient(t);
}
}

@Override
public void setUserBaselineMax(int resourceId, int definitionId, Double maxBaseline) throws RuntimeException {
try {
MeasurementSchedule scheduleWithBaseline = scheduleManager.getSchedule(getSessionSubject(), resourceId, definitionId, true);
MeasurementBaseline measurementBaseline = scheduleWithBaseline.getBaseline();
if(null != maxBaseline && maxBaseline >= measurementBaseline.getMin()){

MeasurementBaseline newMeasurementBaseline = scheduleWithBaseline.getBaseline();
newMeasurementBaseline.setSchedule(scheduleWithBaseline);
newMeasurementBaseline.setUserEntered(true);
newMeasurementBaseline.setMax(maxBaseline);
scheduleManager.updateSchedule(getSessionSubject(),scheduleWithBaseline);
}else{
throw new IllegalArgumentException("One of the params to MeasurementDataGWTServiceImpl.setUserBaselineMax is null");
}

} catch (Throwable t) {
throw getExceptionToThrowToClient(t);
}
}

@Override
public void setUserBaselineMin(int resourceId, int definitionId, Double minBaseline) throws RuntimeException {
try {
MeasurementSchedule scheduleWithBaseline = scheduleManager.getSchedule(getSessionSubject(), resourceId, definitionId, true);
MeasurementBaseline measurementBaseline = scheduleWithBaseline.getBaseline();
if(null != minBaseline && minBaseline <= measurementBaseline.getMax()){

MeasurementBaseline newMeasurementBaseline = scheduleWithBaseline.getBaseline();
newMeasurementBaseline.setSchedule(scheduleWithBaseline);
newMeasurementBaseline.setUserEntered(true);
newMeasurementBaseline.setMin(minBaseline);
scheduleManager.updateSchedule(getSessionSubject(), scheduleWithBaseline);
}else{
throw new IllegalArgumentException("One of the params to MeasurementDataGWTServiceImpl.setUserBaselineMin is null");
}

} catch (Throwable t) {
throw getExceptionToThrowToClient(t);
}
}

@Override
public void setUserBaselineMean(int resourceId, int definitionId, Double meanBaseline) throws RuntimeException {
try {
MeasurementSchedule scheduleWithBaseline = scheduleManager.getSchedule(getSessionSubject(), resourceId, definitionId, true);
boolean noNulls = null != meanBaseline && null != scheduleWithBaseline && null != scheduleWithBaseline.getBaseline();
if(noNulls){
MeasurementBaseline newMeasurementBaseline = scheduleWithBaseline.getBaseline();
newMeasurementBaseline.setSchedule(scheduleWithBaseline);
newMeasurementBaseline.setUserEntered(true);
newMeasurementBaseline.setMean(meanBaseline);
scheduleManager.updateSchedule(getSessionSubject(),scheduleWithBaseline);
}else{
throw new IllegalArgumentException("One of the params to MeasurementDataGWTServiceImpl.setUserBaselineMean is null");
}

} catch (Throwable t) {
throw getExceptionToThrowToClient(t);
}
}

public MeasurementBaseline calcBaselineForDateRange(Integer measurementScheduleId, long startDate, long endDate) throws RuntimeException {
try {
return SerialUtility.prepare(measurementBaselineManager.calculateAutoBaselineInNewTransaction(getSessionSubject(),measurementScheduleId, startDate, endDate, false ),"MeasurementDataService.calcBaselineForDateRange");
} catch (Throwable t) {
throw getExceptionToThrowToClient(t);
}
}

}
Expand Up @@ -6,6 +6,20 @@
# https://docs.jboss.org/author/display/RHQ/Working+with+the+Resource+Bundles
#
###################################
chart_baseline_baseline_mean = Baseline - Mean
chart_baseline_baseline_mean_new = New Baseline Mean
chart_baseline_baseline_high = Baseline - High
chart_baseline_baseline_high_new = New High Range
chart_baseline_baseline_low = Baseline - Low
chart_baseline_baseline_low_new = New Low Range
chart_baseline_change_value_label = Change Value
chart_baseline_high_not_saved = Custom user baseline high was not saved.
chart_baseline_high_saved = Custom user baseline high bound successfully saved.
chart_baseline_low_not_saved = Custom user baseline low was not saved.
chart_baseline_low_saved = Custom user baseline low bound successfully saved.
chart_baseline_mean_not_saved = Custom user baseline mean was not saved.
chart_baseline_mean_saved = Custom user baseline mean successfully saved.
chart_baseline_section_title = Metric Baseline and Expected Range
chart_date_label = Date
chart_down_label = Down
chart_hover_bar_label = Duration
Expand Down
Expand Up @@ -29,9 +29,24 @@
# https://docs.jboss.org/author/display/RHQ/Working+with+the+Resource+Bundles
#
###################################

##avail_chart_down_label = DOWN
##avail_chart_title_label = Availability
##avail_chart_up_label = UP
##chart_baseline_baseline_mean = Baseline - Mean
##chart_baseline_baseline_mean_new = New Baseline Mean
##chart_baseline_baseline_high = Baseline - High
##chart_baseline_baseline_high_new = New High Range
##chart_baseline_baseline_low = Baseline - Low
##chart_baseline_baseline_low_new = New Low Range
##chart_baseline_change_value_label = Change Value
##chart_baseline_high_not_saved = Custom user baseline high was not saved.
##chart_baseline_high_saved = Custom user baseline high bound successfully saved.
##chart_baseline_low_not_saved = Custom user baseline low was not saved.
##chart_baseline_low_saved = Custom user baseline low bound successfully saved.
##chart_baseline_mean_not_saved = Custom user baseline mean was not saved.
##chart_baseline_mean_saved = Custom user baseline mean successfully saved.
##chart_baseline_section_title = Metric Baseline and Expected Range
##chart_date_label = Date
##chart_down_label = Down
##chart_time_label = Start
Expand Down
Expand Up @@ -10,6 +10,20 @@
#
# ##################################
# #avail_chart_down_label = DOWN
##chart_baseline_baseline_mean = Baseline - Mean
##chart_baseline_baseline_mean_new = New Baseline Mean
##chart_baseline_baseline_high = Baseline - High
##chart_baseline_baseline_high_new = New High Range
##chart_baseline_baseline_low = Baseline - Low
##chart_baseline_baseline_low_new = New Low Range
##chart_baseline_change_value_label = Change Value
##chart_baseline_high_not_saved = Custom user baseline high was not saved.
##chart_baseline_high_saved = Custom user baseline high bound successfully saved.
##chart_baseline_low_not_saved = Custom user baseline low was not saved.
##chart_baseline_low_saved = Custom user baseline low bound successfully saved.
##chart_baseline_mean_not_saved = Custom user baseline mean was not saved.
##chart_baseline_mean_saved = Custom user baseline mean successfully saved.
##chart_baseline_section_title = Metric Baseline and Expected Range
chart_date_label=Datum
chart_down_label=Unten
# #chart_down_label = Down
Expand Down

0 comments on commit 9088ac7

Please sign in to comment.