Skip to content

Commit

Permalink
Change value type to String
Browse files Browse the repository at this point in the history
Signed-off-by: Pengpeng Wang <pengpengw@vmware.com>
  • Loading branch information
Pengpengwanga committed May 13, 2021
1 parent 7f0bde2 commit ce3c436
Show file tree
Hide file tree
Showing 4 changed files with 189 additions and 107 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public class DevicePower {
@JsonProperty(value="@odata.id")
private String odataId;
@JsonProperty(value="avgPower")
private int avgPower;
private String avgPower;
@JsonProperty(value="peakHeadroomUnit")
private String peakHeadroomUnit;
@JsonProperty(value="systemEnergyConsumptionUnit")
Expand All @@ -37,19 +37,19 @@ public class DevicePower {
@JsonProperty(value="instantaneousHeadroomUnit")
private String instantaneousHeadroomUnit;
@JsonProperty(value="minimumPower")
private int minimumPower;
private String minimumPower;
@JsonProperty(value="peakPower")
private int peakPower;
private String peakPower;
@JsonProperty(value="DateFormat")
private String dateFormat;
@JsonProperty(value="systemEnergyConsumption")
private double systemEnergyConsumption;
private String systemEnergyConsumption;
@JsonProperty(value="Since")
private String since;
@JsonProperty(value="peakPowerTimeStamp")
private String peakPowerTimeStamp;
@JsonProperty(value="power")
private int power;
private String power;
@JsonProperty(value="peakPowerUnit")
private String peakPowerUnit;
@JsonProperty(value="instantaneousHeadroom")
Expand All @@ -76,10 +76,10 @@ public String getOdataId() {
public void setOdataId(String odataId) {
this.odataId = odataId;
}
public int getAvgPower() {
public String getAvgPower() {
return avgPower;
}
public void setAvgPower(int avgPower) {
public void setAvgPower(String avgPower) {
this.avgPower = avgPower;
}
public String getPeakHeadroomUnit() {
Expand Down Expand Up @@ -142,16 +142,16 @@ public String getInstantaneousHeadroomUnit() {
public void setInstantaneousHeadroomUnit(String instantaneousHeadroomUnit) {
this.instantaneousHeadroomUnit = instantaneousHeadroomUnit;
}
public int getMinimumPower() {
public String getMinimumPower() {
return minimumPower;
}
public void setMinimumPower(int minimumPower) {
public void setMinimumPower(String minimumPower) {
this.minimumPower = minimumPower;
}
public int getPeakPower() {
public String getPeakPower() {
return peakPower;
}
public void setPeakPower(int peakPower) {
public void setPeakPower(String peakPower) {
this.peakPower = peakPower;
}
public String getDateFormat() {
Expand All @@ -160,10 +160,10 @@ public String getDateFormat() {
public void setDateFormat(String dateFormat) {
this.dateFormat = dateFormat;
}
public double getSystemEnergyConsumption() {
public String getSystemEnergyConsumption() {
return systemEnergyConsumption;
}
public void setSystemEnergyConsumption(double systemEnergyConsumption) {
public void setSystemEnergyConsumption(String systemEnergyConsumption) {
this.systemEnergyConsumption = systemEnergyConsumption;
}
public String getSince() {
Expand All @@ -178,10 +178,10 @@ public String getPeakPowerTimeStamp() {
public void setPeakPowerTimeStamp(String peakPowerTimeStamp) {
this.peakPowerTimeStamp = peakPowerTimeStamp;
}
public int getPower() {
public String getPower() {
return power;
}
public void setPower(int power) {
public void setPower(String power) {
this.power = power;
}
public String getPeakPowerUnit() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ public class DeviceTemperature {
@JsonProperty(value="avgTemperatureTimeStamp")
private String avgTemperatureTimeStamp;
@JsonProperty(value="avgTemperature")
private int avgTemperature;
private String avgTemperature;
@JsonProperty(value="instantaneousTemperature")
private int instantaneousTemperature;
private String instantaneousTemperature;
@JsonProperty(value="peakTemperature")
private int peakTemperature;
private String peakTemperature;
@JsonProperty(value="peakTemperatureTimeStamp")
private String peakTemperatureTimeStamp;
public String getOdataContext() {
Expand Down Expand Up @@ -88,22 +88,22 @@ public String getAvgTemperatureTimeStamp() {
public void setAvgTemperatureTimeStamp(String avgTemperatureTimeStamp) {
this.avgTemperatureTimeStamp = avgTemperatureTimeStamp;
}
public int getAvgTemperature() {
public String getAvgTemperature() {
return avgTemperature;
}
public void setAvgTemperature(int avgTemperature) {
public void setAvgTemperature(String avgTemperature) {
this.avgTemperature = avgTemperature;
}
public int getInstantaneousTemperature() {
public String getInstantaneousTemperature() {
return instantaneousTemperature;
}
public void setInstantaneousTemperature(int instantaneousTemperature) {
public void setInstantaneousTemperature(String instantaneousTemperature) {
this.instantaneousTemperature = instantaneousTemperature;
}
public int getPeakTemperature() {
public String getPeakTemperature() {
return peakTemperature;
}
public void setPeakTemperature(int peakTemperature) {
public void setPeakTemperature(String peakTemperature) {
this.peakTemperature = peakTemperature;
}
public String getPeakTemperatureTimeStamp() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ public class OpenManageJobService implements AsyncService{
private ObjectMapper mapper = new ObjectMapper();
private static Map<Integer,String> powerStateMap = new HashMap<Integer,String>();
private static Map<String, MetricUnit> metricUnitMap = new HashMap<String, MetricUnit>();
private static String NULLVALUE = "N/A";
static {
powerStateMap.put(PowerState.OFF.getValue(), FlowgatePowerState.OFFHARD.name());
powerStateMap.put(PowerState.ON.getValue(), FlowgatePowerState.ON.name());
Expand Down Expand Up @@ -536,89 +537,113 @@ private Map<String, ValueUnit> getMetricsData(String deviceId, OpenManageAPIClie
Map<String, ValueUnit> metricNameAndValueUnitMap = new HashMap<String, ValueUnit>();
//Power metrics data from the Openmanage base API
if(powerMetricsData != null && CIM.equals(powerMetricsData.getDateFormat())) {
ValueUnit instantPower = new ValueUnit();
currentTime = WormholeDateFormat.cimDateToMilliseconds(powerMetricsData.getInstantaneousHeadroomTimeStamp());
instantPower.setKey(MetricName.SERVER_POWER);
instantPower.setTime(currentTime);
instantPower.setUnit(MetricUnit.kW.name());
instantPower.setValueNum(instantPower.translateUnit(powerMetricsData.getPower(),
metricUnitMap.get(powerMetricsData.getPowerUnit()), MetricUnit.kW));
metricNameAndValueUnitMap.put(MetricName.SERVER_POWER, instantPower);
String power = powerMetricsData.getPower();
if(!NULLVALUE.equals(power)) {
ValueUnit instantPower = new ValueUnit();
currentTime = WormholeDateFormat.cimDateToMilliseconds(powerMetricsData.getInstantaneousHeadroomTimeStamp());
instantPower.setKey(MetricName.SERVER_POWER);
instantPower.setTime(currentTime);
instantPower.setUnit(MetricUnit.kW.name());
instantPower.setValueNum(instantPower.translateUnit(Double.valueOf(power),
metricUnitMap.get(powerMetricsData.getPowerUnit()), MetricUnit.kW));
metricNameAndValueUnitMap.put(MetricName.SERVER_POWER, instantPower);
}

long sinceTime = WormholeDateFormat.cimDateToMilliseconds(powerMetricsData.getSince());
long systemEnergyConsumptionTime = WormholeDateFormat.cimDateToMilliseconds(powerMetricsData.getSystemEnergyConsumptionTimeStamp());
ValueUnit systemEnergyConsumption = new ValueUnit();
systemEnergyConsumption.setTime(systemEnergyConsumptionTime);
systemEnergyConsumption.setExtraidentifier(String.valueOf(sinceTime));
systemEnergyConsumption.setKey(MetricName.SERVER_ENERGY_CONSUMPTION);
systemEnergyConsumption.setUnit(MetricUnit.kWh.name());
systemEnergyConsumption.setValueNum(systemEnergyConsumption.translateUnit(powerMetricsData.getSystemEnergyConsumption(),
metricUnitMap.get(powerMetricsData.getSystemEnergyConsumptionUnit()), MetricUnit.kWh));
metricNameAndValueUnitMap.put(MetricName.SERVER_ENERGY_CONSUMPTION, systemEnergyConsumption);

ValueUnit avgPower = new ValueUnit();
avgPower.setTime(currentTime);
avgPower.setExtraidentifier(String.valueOf(sinceTime));
avgPower.setKey(MetricName.SERVER_AVERAGE_USED_POWER);
avgPower.setUnit(MetricUnit.kW.name());
avgPower.setValueNum(avgPower.translateUnit(powerMetricsData.getAvgPower(),
metricUnitMap.get(powerMetricsData.getAvgPowerUnit()), MetricUnit.kW));
metricNameAndValueUnitMap.put(MetricName.SERVER_AVERAGE_USED_POWER, avgPower);

ValueUnit peakPower = new ValueUnit();
peakPower.setTime(currentTime);
long peakPowerTime = WormholeDateFormat.cimDateToMilliseconds(powerMetricsData.getPeakPowerTimeStamp());
String sinceAndPeakTime = String.valueOf(sinceTime) + FlowgateConstant.SEPARATOR + String.valueOf(peakPowerTime);
//Record the since time and peak power time, for example 1612417403074_FIELDSPLIT_1612415606985
peakPower.setExtraidentifier(sinceAndPeakTime);
peakPower.setKey(MetricName.SERVER_PEAK_USED_POWER);
peakPower.setUnit(MetricUnit.kW.name());
peakPower.setValueNum(peakPower.translateUnit(powerMetricsData.getPeakPower(),
metricUnitMap.get(powerMetricsData.getPeakPowerUnit()), MetricUnit.kW));
metricNameAndValueUnitMap.put(MetricName.SERVER_PEAK_USED_POWER, peakPower);

ValueUnit minimumPower = new ValueUnit();
minimumPower.setTime(currentTime);
long minimumTime = WormholeDateFormat.cimDateToMilliseconds(powerMetricsData.getMinimumPowerTimeStamp());
String sinceAndMinimum = String.valueOf(sinceTime) + FlowgateConstant.SEPARATOR + String.valueOf(minimumTime);
minimumPower.setExtraidentifier(sinceAndMinimum);
minimumPower.setKey(MetricName.SERVER_MINIMUM_USED_POWER);
minimumPower.setUnit(MetricUnit.kW.name());
minimumPower.setValueNum(minimumPower.translateUnit(powerMetricsData.getMinimumPower(),
metricUnitMap.get(powerMetricsData.getPeakPowerUnit()), MetricUnit.kW));
metricNameAndValueUnitMap.put(MetricName.SERVER_MINIMUM_USED_POWER, minimumPower);
String energyConsumption = powerMetricsData.getSystemEnergyConsumption();
if(!NULLVALUE.equals(energyConsumption)) {
long systemEnergyConsumptionTime = WormholeDateFormat.cimDateToMilliseconds(powerMetricsData.getSystemEnergyConsumptionTimeStamp());
ValueUnit systemEnergyConsumption = new ValueUnit();
systemEnergyConsumption.setTime(systemEnergyConsumptionTime);
systemEnergyConsumption.setExtraidentifier(String.valueOf(sinceTime));
systemEnergyConsumption.setKey(MetricName.SERVER_ENERGY_CONSUMPTION);
systemEnergyConsumption.setUnit(MetricUnit.kWh.name());
systemEnergyConsumption.setValueNum(systemEnergyConsumption.translateUnit(Double.valueOf(energyConsumption),
metricUnitMap.get(powerMetricsData.getSystemEnergyConsumptionUnit()), MetricUnit.kWh));
metricNameAndValueUnitMap.put(MetricName.SERVER_ENERGY_CONSUMPTION, systemEnergyConsumption);
}

String avgValue = powerMetricsData.getAvgPower();
if(!NULLVALUE.equals(avgValue)) {
ValueUnit avgPower = new ValueUnit();
avgPower.setTime(currentTime);
avgPower.setExtraidentifier(String.valueOf(sinceTime));
avgPower.setKey(MetricName.SERVER_AVERAGE_USED_POWER);
avgPower.setUnit(MetricUnit.kW.name());
avgPower.setValueNum(avgPower.translateUnit(Double.valueOf(avgValue),
metricUnitMap.get(powerMetricsData.getAvgPowerUnit()), MetricUnit.kW));
metricNameAndValueUnitMap.put(MetricName.SERVER_AVERAGE_USED_POWER, avgPower);
}

String peakValue = powerMetricsData.getPeakPower();
if(!NULLVALUE.equals(peakValue)) {
ValueUnit peakPower = new ValueUnit();
peakPower.setTime(currentTime);
long peakPowerTime = WormholeDateFormat.cimDateToMilliseconds(powerMetricsData.getPeakPowerTimeStamp());
String sinceAndPeakTime = String.valueOf(sinceTime) + FlowgateConstant.SEPARATOR + String.valueOf(peakPowerTime);
//Record the since time and peak power time, for example 1612417403074_FIELDSPLIT_1612415606985
peakPower.setExtraidentifier(sinceAndPeakTime);
peakPower.setKey(MetricName.SERVER_PEAK_USED_POWER);
peakPower.setUnit(MetricUnit.kW.name());
peakPower.setValueNum(peakPower.translateUnit(Double.valueOf(peakValue),
metricUnitMap.get(powerMetricsData.getPeakPowerUnit()), MetricUnit.kW));
metricNameAndValueUnitMap.put(MetricName.SERVER_PEAK_USED_POWER, peakPower);
}

String minimumValue = powerMetricsData.getMinimumPower();
if(!NULLVALUE.equals(minimumValue)) {
ValueUnit minimumPower = new ValueUnit();
minimumPower.setTime(currentTime);
long minimumTime = WormholeDateFormat.cimDateToMilliseconds(powerMetricsData.getMinimumPowerTimeStamp());
String sinceAndMinimum = String.valueOf(sinceTime) + FlowgateConstant.SEPARATOR + String.valueOf(minimumTime);
minimumPower.setExtraidentifier(sinceAndMinimum);
minimumPower.setKey(MetricName.SERVER_MINIMUM_USED_POWER);
minimumPower.setUnit(MetricUnit.kW.name());
minimumPower.setValueNum(minimumPower.translateUnit(Double.valueOf(minimumValue),
metricUnitMap.get(powerMetricsData.getPeakPowerUnit()), MetricUnit.kW));
metricNameAndValueUnitMap.put(MetricName.SERVER_MINIMUM_USED_POWER, minimumPower);
}
}
//Temperature metrics data from the Openmanage base API
DeviceTemperature temperatureMetrics = client.getDeviceTemperatureMetrics(deviceId);
if(temperatureMetrics != null && CIM.equals(temperatureMetrics.getDateFormat())) {
ValueUnit temperature = new ValueUnit();
temperature.setKey(MetricName.SERVER_TEMPERATURE);
temperature.setTime(currentTime);
temperature.setUnit(MetricUnit.C.name());
temperature.setValueNum(temperature.translateUnit(temperatureMetrics.getInstantaneousTemperature(),
metricUnitMap.get(temperatureMetrics.getInstantaneousTemperatureUnit()), MetricUnit.C));
metricNameAndValueUnitMap.put(MetricName.SERVER_TEMPERATURE, temperature);
String temperatureValue = temperatureMetrics.getInstantaneousTemperature();
if(!NULLVALUE.equals(temperatureValue)) {
ValueUnit temperature = new ValueUnit();
temperature.setKey(MetricName.SERVER_TEMPERATURE);
temperature.setTime(currentTime);
temperature.setUnit(MetricUnit.C.name());
temperature.setValueNum(temperature.translateUnit(Double.valueOf(temperatureValue),
metricUnitMap.get(temperatureMetrics.getInstantaneousTemperatureUnit()), MetricUnit.C));
metricNameAndValueUnitMap.put(MetricName.SERVER_TEMPERATURE, temperature);
}

long startTime = WormholeDateFormat.cimDateToMilliseconds(temperatureMetrics.getStartTime());
ValueUnit avgTemperature = new ValueUnit();
avgTemperature.setKey(MetricName.SERVER_AVERAGE_TEMPERATURE);
avgTemperature.setExtraidentifier(String.valueOf(startTime));
avgTemperature.setTime(currentTime);
avgTemperature.setUnit(MetricUnit.C.name());
avgTemperature.setValueNum(avgTemperature.translateUnit(temperatureMetrics.getAvgTemperature(),
metricUnitMap.get(temperatureMetrics.getAvgTemperatureUnit()), MetricUnit.C));
metricNameAndValueUnitMap.put(MetricName.SERVER_AVERAGE_TEMPERATURE, avgTemperature);

ValueUnit peakTemperature = new ValueUnit();
peakTemperature.setKey(MetricName.SERVER_PEAK_TEMPERATURE);
long peakTime = WormholeDateFormat.cimDateToMilliseconds(temperatureMetrics.getPeakTemperatureTimeStamp());
String startAndPeakTime = String.valueOf(startTime) + FlowgateConstant.SEPARATOR + String.valueOf(peakTime);
peakTemperature.setExtraidentifier(startAndPeakTime);
peakTemperature.setTime(currentTime);
peakTemperature.setUnit(MetricUnit.C.name());
peakTemperature.setValueNum(peakTemperature.translateUnit(temperatureMetrics.getPeakTemperature(),
metricUnitMap.get(temperatureMetrics.getPeakTemperatureUnit()), MetricUnit.C));
metricNameAndValueUnitMap.put(MetricName.SERVER_PEAK_TEMPERATURE, peakTemperature);
String avgValue = temperatureMetrics.getAvgTemperature();
if(!NULLVALUE.equals(avgValue)) {
ValueUnit avgTemperature = new ValueUnit();
avgTemperature.setKey(MetricName.SERVER_AVERAGE_TEMPERATURE);
avgTemperature.setExtraidentifier(String.valueOf(startTime));
avgTemperature.setTime(currentTime);
avgTemperature.setUnit(MetricUnit.C.name());
avgTemperature.setValueNum(avgTemperature.translateUnit(Double.valueOf(avgValue),
metricUnitMap.get(temperatureMetrics.getAvgTemperatureUnit()), MetricUnit.C));
metricNameAndValueUnitMap.put(MetricName.SERVER_AVERAGE_TEMPERATURE, avgTemperature);
}

String peakValue = temperatureMetrics.getPeakTemperature();
if(!NULLVALUE.equals(peakValue)) {
ValueUnit peakTemperature = new ValueUnit();
peakTemperature.setKey(MetricName.SERVER_PEAK_TEMPERATURE);
long peakTime = WormholeDateFormat.cimDateToMilliseconds(temperatureMetrics.getPeakTemperatureTimeStamp());
String startAndPeakTime = String.valueOf(startTime) + FlowgateConstant.SEPARATOR + String.valueOf(peakTime);
peakTemperature.setExtraidentifier(startAndPeakTime);
peakTemperature.setTime(currentTime);
peakTemperature.setUnit(MetricUnit.C.name());
peakTemperature.setValueNum(peakTemperature.translateUnit(Double.valueOf(peakValue),
metricUnitMap.get(temperatureMetrics.getPeakTemperatureUnit()), MetricUnit.C));
metricNameAndValueUnitMap.put(MetricName.SERVER_PEAK_TEMPERATURE, peakTemperature);
}
}
//get metrics form power Manage plugin
if(powerManage != null && powerManagerEnable) {
Expand Down
Loading

0 comments on commit ce3c436

Please sign in to comment.