You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by GitBox <gi...@apache.org> on 2022/03/21 13:37:20 UTC
[GitHub] [cloudstack] joseflauzino opened a new pull request #5984: Persistence of VM stats
joseflauzino opened a new pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984
### Description
This PR addresses issue #5935.
In summary, this PR makes ACS persist VM stats in the database to provide more consistency and make it possible to obtain historical data.
For more information, please refer to the spec contained in issue #5935.
### Types of changes
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Bug fix (non-breaking change which fixes an issue)
- [X] Enhancement (improves an existing feature and functionality)
- [ ] Cleanup (Code refactoring and cleanup, that may add test cases)
### Feature/Enhancement Scale or Bug Severity
#### Feature/Enhancement Scale
- [X] Major
- [ ] Minor
### Screenshots
#### New API
- Getting all available stats:

- Filtering by start and end date:

#### UI changes
- Metrics disabled. It shows all VMs:

- Metrics enabled. It shows only running VMs and their current stats:

- Metrics enabled and filtering by stopped VMs. It forces the display of stopped VMs and their latest stats collected (not reflecting their current stats):

### How Has This Been Tested?
I added unit tests to several methods.
Also, in a local lab, I performed the following tests:
- I tested different combinations of the global settings `vm.stats.increment.metrics`, `vm.stats.max.retention.time`, and `vm.stats.interval`. All tests resulted in the expected behavior, as described in section [2.2](https://github.com/apache/cloudstack/issues/5935#2-proposed-changes--22-configuration-proposal) of the spec.
- I tested the listVirtualMachinesMetrics API with different combinations of its new `accumulate` parameter with the global configuration `vm.stats.increment.metrics`, and everything worked as expected. See sections [2.2](https://github.com/apache/cloudstack/issues/5935#2-proposed-changes--22-configuration-proposal) and [3.3](https://github.com/apache/cloudstack/issues/5935#3-work-items--33-api) of the spec for more details.
- I tested the UI modifications mentioned in section [3.4](https://github.com/apache/cloudstack/issues/5935#3-work-items--34-ui) of the spec. The obtained behavior was as follows:
- When clicking on the "Metrics" button only running VMs and their respective stats were listed;
- Then it was possible to "force" the listing of stopped VMs by changing the filter from "All" to "Stopped".
- I tested the new listVirtualMachinesUsageHistory API by filtering by different time periods and VMs. All the filtering described in section [2.4](https://github.com/apache/cloudstack/issues/5935#2-proposed-changes--24-new-api-proposal) of the spec was successfully tested.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] GutoVeronezi commented on a change in pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
GutoVeronezi commented on a change in pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#discussion_r820678684
##########
File path: engine/schema/src/main/java/com/cloud/vm/dao/VmStatsDao.java
##########
@@ -0,0 +1,82 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.vm.dao;
+
+import java.util.Date;
+import java.util.List;
+
+import com.cloud.utils.db.GenericDao;
+import com.cloud.vm.VmStatsVO;
+
+/**
+ * Data Access Object for vm_stats table.
+ */
+public interface VmStatsDao extends GenericDao<VmStatsVO, Long> {
+
+ /**
+ * Find VM stats by VM ID.
+ * @param vmId the VM ID.
+ * @return list of stats for the specified VM.
+ */
+ List<VmStatsVO> findByVmId(long vmId);
+
+ /**
+ * Find VM stats by VM ID. The result is sorted by timestamp in descending order.
+ * @param vmId the VM ID.
+ * @return ordered list of stats for the specified VM.
+ */
+ List<VmStatsVO> findByVmIdOrderByTimestampDesc(long vmId);
+
+ /**
+ * Find stats by VM ID and timestamp >= a given time.
+ * @param vmId the specific VM.
+ * @param time the specific time.
+ * @return list of stats for the specified VM, with timestamp >= the specified time.
+ */
+ List<VmStatsVO> findByVmIdAndTimestampGreaterThanEqual(long vmId, Date time);
+
+ /**
+ * Find stats by VM ID and timestamp <= a given time.
Review comment:
```suggestion
* Finds stats by VM ID and timestamp <= a given time.
```
##########
File path: plugins/metrics/src/main/java/org/apache/cloudstack/metrics/MetricsServiceImpl.java
##########
@@ -134,6 +155,166 @@ private void updateHostMetrics(final Metrics metrics, final HostJoinVO host) {
metrics.setMaximumMemoryUsage((long) hostStats.getUsedMemory());
}
}
+ /**
+ * Searches for VM stats based on the {@code ListVMsUsageHistoryCmd} parameters.
+ *
+ * @param cmd the {@link ListVMsUsageHistoryCmd} specifying what should be searched.
+ * @return the list of VM metrics stats found.
+ */
+ @Override
+ public ListResponse<VmMetricsStatsResponse> searchForVmMetricsStats(ListVMsUsageHistoryCmd cmd) {
+ Pair<List<UserVmVO>, Integer> userVmList = searchForUserVmsInternal(cmd);
+ Map<Long,List<VmStatsVO>> vmStatsList = searchForVmMetricsStatsInternal(cmd, userVmList.first());
+ return createVmMetricsStatsResponse(userVmList, vmStatsList);
+ }
+
+ /**
+ * Searches VMs based on {@code ListVMsUsageHistoryCmd} parameters.
+ *
+ * @param cmd the {@link ListVMsUsageHistoryCmd} specifying the parameters.
+ * @return the list of VMs.
+ */
+ protected Pair<List<UserVmVO>, Integer> searchForUserVmsInternal(ListVMsUsageHistoryCmd cmd) {
+ Filter searchFilter = new Filter(UserVmVO.class, "id", true, cmd.getStartIndex(), cmd.getPageSizeVal());
+ List<Long> ids = getIdsListFromCmd(cmd.getId(), cmd.getIds());
+ String name = cmd.getName();
+ String keyword = cmd.getKeyword();
+
+ SearchBuilder<UserVmVO> sb = userVmDao.createSearchBuilder();
+ sb.and("idIN", sb.entity().getId(), SearchCriteria.Op.IN);
+ sb.and("displayName", sb.entity().getDisplayName(), SearchCriteria.Op.LIKE);
+ sb.and("state", sb.entity().getState(), SearchCriteria.Op.EQ);
+
+ SearchCriteria<UserVmVO> sc = sb.create();
+ if (CollectionUtils.isNotEmpty(ids)) {
+ sc.setParameters("idIN", ids.toArray());
+ }
+ if (StringUtils.isNotBlank(name)) {
+ sc.setParameters("displayName", "%" + name + "%");
+ }
+ if (StringUtils.isNotBlank(keyword)) {
+ SearchCriteria<UserVmVO> ssc = userVmDao.createSearchCriteria();
+ ssc.addOr("displayName", SearchCriteria.Op.LIKE, "%" + keyword + "%");
+ ssc.addOr("state", SearchCriteria.Op.EQ, keyword);
+ sc.addAnd("displayName", SearchCriteria.Op.SC, ssc);
+ }
+
+ return userVmDao.searchAndCount(sc, searchFilter);
+ }
+
+ /**
+ * Searches stats for a list of VMs, based on date filtering parameters.
+ *
+ * @param cmd the {@link ListVMsUsageHistoryCmd} specifying the filtering parameters.
+ * @param userVmList the list of VMs for which stats should be searched.
+ * @return the key-value map in which keys are VM IDs and values are lists of VM stats.
+ */
+ protected Map<Long,List<VmStatsVO>> searchForVmMetricsStatsInternal(ListVMsUsageHistoryCmd cmd, List<UserVmVO> userVmList) {
+ Map<Long,List<VmStatsVO>> vmStatsVOList = new HashMap<Long,List<VmStatsVO>>();
+ Date startDate = cmd.getStartDate();
+ Date endDate = cmd.getEndDate();
+
+ validateDateParams(startDate, endDate);
+
+ for (UserVmVO userVmVO : userVmList) {
+ Long vmId = userVmVO.getId();
+ vmStatsVOList.put(vmId, findVmStatsAccordingToDateParams(vmId, startDate, endDate));
+ }
+
+ return vmStatsVOList;
+ }
+
+ /**
+ * Checks if {@code startDate} is after {@code endDate} (when both are not null)
+ * and throws an {@link InvalidParameterValueException} if so.
+ *
+ * @param startDate the start date to be validated.
+ * @param endDate the end date to be validated.
+ */
+ protected void validateDateParams(Date startDate, Date endDate) {
+ if ((startDate != null && endDate != null) && (startDate.after(endDate))){
+ throw new InvalidParameterValueException("startDate cannot be after endDate.");
+ }
+ }
+
+ /**
+ * Finds stats for a specific VM based on date parameters.
+ *
+ * @param vmId the specific VM.
+ * @param startDate the start date to filtering.
+ * @param endDate the end date to filtering.
+ * @return the list of stats for the specified VM.
+ */
+ protected List<VmStatsVO> findVmStatsAccordingToDateParams(Long vmId, Date startDate, Date endDate){
+ if (startDate != null && endDate != null) {
+ return vmStatsDao.findByVmIdAndTimestampBetween(vmId, startDate, endDate);
+ } else if (startDate != null) {
+ return vmStatsDao.findByVmIdAndTimestampGreaterThanEqual(vmId, startDate);
+ } else if (endDate != null) {
+ return vmStatsDao.findByVmIdAndTimestampLessThanEqual(vmId, endDate);
+ }
Review comment:
If the block returns something, then we don't need the else statement. We could remove them:
```suggestion
if (startDate != null && endDate != null) {
return vmStatsDao.findByVmIdAndTimestampBetween(vmId, startDate, endDate);
}
if (startDate != null) {
return vmStatsDao.findByVmIdAndTimestampGreaterThanEqual(vmId, startDate);
}
if (endDate != null) {
return vmStatsDao.findByVmIdAndTimestampLessThanEqual(vmId, endDate);
}
```
##########
File path: server/src/main/java/com/cloud/server/StatsCollector.java
##########
@@ -632,8 +649,90 @@ protected Point creteInfluxDbPoint(Object metricsObject) {
}
}
- public VmStats getVmStats(long id) {
- return _VmStats.get(id);
+ /**
+ * <p>Previously, the VM stats cleanup process was triggered during the data collection process.
+ * So, when data collection was disabled, the cleaning process was also disabled.</p>
+ *
+ * <p>With the introduction of persistence of VM stats, as well as the provision of historical data,
+ * we created this class to allow that both the collection process and the data cleaning process
+ * can be enabled/disabled independently.</p>
+ */
+ class VmStatsCleaner extends ManagedContextRunnable{
+ protected void runInContext() {
+ cleanUpVirtualMachineStats();
+ }
+ }
+
+ /**
+ * Gets the latest or the accumulation of the stats collected from a given VM.
+ *
+ * @param vmId the specific VM.
+ * @param accumulate whether or not the stats data should be accumulated.
+ * @return the latest or the accumulation of the stats for the specified VM.
+ */
+ public VmStats getVmStats(long vmId, Boolean accumulate) {
+ List<VmStatsVO> vmStatsVOList = vmStatsDao.findByVmIdOrderByTimestampDesc(vmId);
+
+ if (CollectionUtils.isNotEmpty(vmStatsVOList)) {
Review comment:
We could invert this statement to reduce indentation of the next block.
##########
File path: api/src/main/java/org/apache/cloudstack/api/response/StatsResponse.java
##########
@@ -0,0 +1,147 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package org.apache.cloudstack.api.response;
+
+import java.util.Date;
+
+import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.api.BaseResponse;
+
+import com.cloud.serializer.Param;
+import com.google.gson.annotations.SerializedName;
+
+public class StatsResponse extends BaseResponse {
+
+ @SerializedName("timestamp")
+ @Param(description = "the time when the VM stats were collected. The format is \"yyyy-MM-dd hh:mm:ss\"")
+ private Date timestamp;
+
+ @SerializedName("cpuused")
+ @Param(description = "the amount (percentage) of the VM's CPU currently used")
+ private String cpuUsed;
+
+ @SerializedName(ApiConstants.DISK_IO_READ)
+ @Param(description = "the VM's disk read (IO)")
+ protected Long diskIORead;
+
+ @SerializedName(ApiConstants.DISK_IO_WRITE)
+ @Param(description = "the VM's disk write (IO)")
+ protected Long diskIOWrite;
+
+ @SerializedName(ApiConstants.DISK_IO_PSTOTAL)
+ @Param(description = "the total disk iops")
+ protected Long diskIopsTotal = 0L;
+
+ @SerializedName(ApiConstants.DISK_KBS_READ)
+ @Param(description = "the VM's disk read (bytes)")
+ private Long diskKbsRead;
+
+ @SerializedName(ApiConstants.DISK_KBS_WRITE)
+ @Param(description = "the VM's disk write (bytes)")
+ private Long diskKbsWrite;
+
+ @SerializedName("memoryintfreekbs")
+ @Param(description = "the internal memory free of the VM or zero if it cannot be calculated")
+ private Long memoryIntFreeKBs;
+
+ @SerializedName("memorykbs")
+ @Param(description = "the memory used by the VM in Kbps")
+ private Long memoryKBs;
+
+ @SerializedName("memorytargetkbs")
+ @Param(description = "the target memory in VM in Kbps")
+ private Long memoryTargetKBs;
+
+ @SerializedName("networkkbsread")
+ @Param(description = "the incoming network traffic on the VM")
+ protected Long networkKbsRead;
+
+ @SerializedName("networkkbswrite")
+ @Param(description = "the outgoing network traffic on the host")
+ protected Long networkKbsWrite;
+
+ @SerializedName("networkread")
+ @Param(description = "the network read in MiB")
+ protected String networkRead;
+
+ @SerializedName("networkwrite")
+ @Param(description = "the network write in MiB")
+ protected String networkWrite;
+
+ public void setTimestamp(Date timestamp) {
+ this.timestamp = timestamp;
+ }
+
+ public void setCpuUsed(String cpuUsed) {
+ this.cpuUsed = cpuUsed;
+ }
+
+ public void setDiskIORead(Long diskIORead) {
+ this.diskIORead = diskIORead;
+ accumulateDiskIopsTotal(diskIORead);
+ }
+
+ public void setDiskIOWrite(Long diskIOWrite) {
+ this.diskIOWrite = diskIOWrite;
+ accumulateDiskIopsTotal(diskIOWrite);
+ }
+
+ public void setDiskKbsRead(Long diskKbsRead) {
+ this.diskKbsRead = diskKbsRead;
+ }
+
+ public void setDiskKbsWrite(Long diskKbsWrite) {
+ this.diskKbsWrite = diskKbsWrite;
+ }
+
+ public void setMemoryIntFreeKBs(Long memoryIntFreeKBs) {
+ this.memoryIntFreeKBs = memoryIntFreeKBs;
+ }
+
+ public void setMemoryKBs(Long memoryKBs) {
+ this.memoryKBs = memoryKBs;
+ }
+
+ public void setMemoryTargetKBs(Long memoryTargetKBs) {
+ this.memoryTargetKBs = memoryTargetKBs;
+ }
+
+ public void setNetworkKbsRead(Long networkKbsRead) {
+ this.networkKbsRead = networkKbsRead;
+ if (networkKbsRead != null) {
+ this.networkRead = String.format("%.2f MB", networkKbsRead / 1024.0);
+ }
+ }
+
+ public void setNetworkKbsWrite(Long networkKbsWrite) {
+ this.networkKbsWrite = networkKbsWrite;
+ if (networkKbsWrite != null) {
+ this.networkWrite = String.format("%.2f MB", networkKbsWrite / 1024.0);
+ }
+ }
+
+ /**
+ * Accumulate disk IOPS (Input/Output Operations Per Second)
Review comment:
```suggestion
* Accumulates disk IOPS (Input/Output Operations Per Second)
```
##########
File path: engine/schema/src/main/java/com/cloud/vm/dao/VmStatsDao.java
##########
@@ -0,0 +1,82 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.vm.dao;
+
+import java.util.Date;
+import java.util.List;
+
+import com.cloud.utils.db.GenericDao;
+import com.cloud.vm.VmStatsVO;
+
+/**
+ * Data Access Object for vm_stats table.
+ */
+public interface VmStatsDao extends GenericDao<VmStatsVO, Long> {
+
+ /**
+ * Find VM stats by VM ID.
Review comment:
```suggestion
* Finds VM stats by VM ID.
```
##########
File path: engine/schema/src/main/java/com/cloud/vm/dao/VmStatsDao.java
##########
@@ -0,0 +1,82 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.vm.dao;
+
+import java.util.Date;
+import java.util.List;
+
+import com.cloud.utils.db.GenericDao;
+import com.cloud.vm.VmStatsVO;
+
+/**
+ * Data Access Object for vm_stats table.
+ */
+public interface VmStatsDao extends GenericDao<VmStatsVO, Long> {
+
+ /**
+ * Find VM stats by VM ID.
+ * @param vmId the VM ID.
+ * @return list of stats for the specified VM.
+ */
+ List<VmStatsVO> findByVmId(long vmId);
+
+ /**
+ * Find VM stats by VM ID. The result is sorted by timestamp in descending order.
+ * @param vmId the VM ID.
+ * @return ordered list of stats for the specified VM.
+ */
+ List<VmStatsVO> findByVmIdOrderByTimestampDesc(long vmId);
+
+ /**
+ * Find stats by VM ID and timestamp >= a given time.
Review comment:
```suggestion
* Finds stats by VM ID and timestamp >= a given time.
```
##########
File path: engine/schema/src/main/java/com/cloud/vm/dao/VmStatsDao.java
##########
@@ -0,0 +1,82 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.vm.dao;
+
+import java.util.Date;
+import java.util.List;
+
+import com.cloud.utils.db.GenericDao;
+import com.cloud.vm.VmStatsVO;
+
+/**
+ * Data Access Object for vm_stats table.
+ */
+public interface VmStatsDao extends GenericDao<VmStatsVO, Long> {
+
+ /**
+ * Find VM stats by VM ID.
+ * @param vmId the VM ID.
+ * @return list of stats for the specified VM.
+ */
+ List<VmStatsVO> findByVmId(long vmId);
+
+ /**
+ * Find VM stats by VM ID. The result is sorted by timestamp in descending order.
+ * @param vmId the VM ID.
+ * @return ordered list of stats for the specified VM.
+ */
+ List<VmStatsVO> findByVmIdOrderByTimestampDesc(long vmId);
+
+ /**
+ * Find stats by VM ID and timestamp >= a given time.
+ * @param vmId the specific VM.
+ * @param time the specific time.
+ * @return list of stats for the specified VM, with timestamp >= the specified time.
+ */
+ List<VmStatsVO> findByVmIdAndTimestampGreaterThanEqual(long vmId, Date time);
+
+ /**
+ * Find stats by VM ID and timestamp <= a given time.
+ * @param vmId the specific VM.
+ * @param time the specific time.
+ * @return list of stats for the specified VM, with timestamp <= the specified time.
+ */
+ List<VmStatsVO> findByVmIdAndTimestampLessThanEqual(long vmId, Date time);
+
+ /**
+ * Find stats by VM ID and timestamp between a given time range.
Review comment:
```suggestion
* Finds stats by VM ID and timestamp between a given time range.
```
##########
File path: engine/schema/src/main/java/com/cloud/vm/dao/VmStatsDao.java
##########
@@ -0,0 +1,82 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.vm.dao;
+
+import java.util.Date;
+import java.util.List;
+
+import com.cloud.utils.db.GenericDao;
+import com.cloud.vm.VmStatsVO;
+
+/**
+ * Data Access Object for vm_stats table.
+ */
+public interface VmStatsDao extends GenericDao<VmStatsVO, Long> {
+
+ /**
+ * Find VM stats by VM ID.
+ * @param vmId the VM ID.
+ * @return list of stats for the specified VM.
+ */
+ List<VmStatsVO> findByVmId(long vmId);
+
+ /**
+ * Find VM stats by VM ID. The result is sorted by timestamp in descending order.
Review comment:
```suggestion
* Finds VM stats by VM ID. The result is sorted by timestamp in descending order.
```
##########
File path: api/src/main/java/org/apache/cloudstack/api/ApiArgValidator.java
##########
@@ -18,6 +18,19 @@
package org.apache.cloudstack.api;
public enum ApiArgValidator {
- NotNullOrEmpty, // does StringUtils.isEmpty check
+ /**
PositiveNumber, // does != null and > 0 check
Review comment:
We can remove this line.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] joseflauzino commented on a change in pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
joseflauzino commented on a change in pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#discussion_r805741391
##########
File path: api/src/main/java/org/apache/cloudstack/api/response/StatsResponse.java
##########
@@ -0,0 +1,131 @@
+package org.apache.cloudstack.api.response;
Review comment:
Thanks @DaanHoogland
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] ravening commented on a change in pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
ravening commented on a change in pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#discussion_r807094213
##########
File path: engine/schema/src/main/java/com/cloud/vm/VmStatsVO.java
##########
@@ -0,0 +1,80 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.vm;
+
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+
+@Entity
+@Table(name = "vm_stats")
+public class VmStatsVO {
Review comment:
@joseflauzino i- name is fixed and users cant change it. from the logs we usually get i- name and so if this table has the i- name then searching the entries using i- name is easy
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] GutoVeronezi closed pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
GutoVeronezi closed pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] ravening commented on a change in pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
ravening commented on a change in pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#discussion_r807094213
##########
File path: engine/schema/src/main/java/com/cloud/vm/VmStatsVO.java
##########
@@ -0,0 +1,80 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.vm;
+
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+
+@Entity
+@Table(name = "vm_stats")
+public class VmStatsVO {
Review comment:
@joseflauzino i- name is fixed and users cant change it. from the logs we usually get i- name and so if this table has the i- name then searching the entries using i- name is easy
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] DaanHoogland commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
DaanHoogland commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1048517947
@borisstoyanov @rohityadavcloud care to review?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] blueorangutan commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
blueorangutan commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1066840560
@joseflauzino a Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] DaanHoogland commented on a change in pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
DaanHoogland commented on a change in pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#discussion_r805577839
##########
File path: api/src/main/java/org/apache/cloudstack/api/response/StatsResponse.java
##########
@@ -0,0 +1,131 @@
+package org.apache.cloudstack.api.response;
Review comment:
license missing
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] joseflauzino commented on a change in pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
joseflauzino commented on a change in pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#discussion_r809933906
##########
File path: engine/schema/src/main/java/com/cloud/vm/dao/VmStatsDaoImpl.java
##########
@@ -0,0 +1,122 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.vm.dao;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.PostConstruct;
+
+import org.springframework.stereotype.Component;
+
+import com.cloud.utils.db.Filter;
+import com.cloud.utils.db.GenericDaoBase;
+import com.cloud.utils.db.SearchBuilder;
+import com.cloud.utils.db.SearchCriteria;
+import com.cloud.utils.db.SearchCriteria.Op;
+import com.cloud.vm.VmStatsVO;
+
+@Component
+public class VmStatsDaoImpl extends GenericDaoBase<VmStatsVO, Long> implements VmStatsDao {
+
+ protected SearchBuilder<VmStatsVO> vmIdSearch;
+ protected SearchBuilder<VmStatsVO> vmIdTimestampGreaterThanEqualSearch;
+ protected SearchBuilder<VmStatsVO> vmIdTimestampLessThanEqualSearch;
+ protected SearchBuilder<VmStatsVO> vmIdTimestampBetweenSearch;
+ protected SearchBuilder<VmStatsVO> timestampSearch;
+
+ @PostConstruct
+ protected void init() {
+ vmIdSearch = createSearchBuilder();
+ vmIdSearch.and("vmId", vmIdSearch.entity().getVmId(), Op.EQ);
+ vmIdSearch.done();
+
+ vmIdTimestampGreaterThanEqualSearch = createSearchBuilder();
+ vmIdTimestampGreaterThanEqualSearch.and("vmId", vmIdTimestampGreaterThanEqualSearch.entity().getVmId(), Op.EQ);
+ vmIdTimestampGreaterThanEqualSearch.and("timestamp", vmIdTimestampGreaterThanEqualSearch.entity().getTimestamp(), Op.GTEQ);
+ vmIdTimestampGreaterThanEqualSearch.done();
+
+ vmIdTimestampLessThanEqualSearch = createSearchBuilder();
+ vmIdTimestampLessThanEqualSearch.and("vmId", vmIdTimestampLessThanEqualSearch.entity().getVmId(), Op.EQ);
+ vmIdTimestampLessThanEqualSearch.and("timestamp", vmIdTimestampLessThanEqualSearch.entity().getTimestamp(), Op.LTEQ);
+ vmIdTimestampLessThanEqualSearch.done();
+
+ vmIdTimestampBetweenSearch = createSearchBuilder();
+ vmIdTimestampBetweenSearch.and("vmId", vmIdTimestampBetweenSearch.entity().getVmId(), Op.EQ);
+ vmIdTimestampBetweenSearch.and("timestamp", vmIdTimestampBetweenSearch.entity().getTimestamp(), Op.BETWEEN);
+ vmIdTimestampBetweenSearch.done();
+
+ timestampSearch = createSearchBuilder();
+ timestampSearch.and("timestamp", timestampSearch.entity().getTimestamp(), Op.LT);
+ timestampSearch.done();
+
+ }
+
+ @Override
+ public List<VmStatsVO> findByVmId(long vmId) {
+ SearchCriteria<VmStatsVO> sc = vmIdSearch.create();
Review comment:
@ravening
When I went to apply this suggestion I realized that the two lines mentioned are only repeated twice more. So I think it will end up not being worth it, as the ideal would be to add a new method + javadoc + unit tests for that. We may consider this in the future if there is a need to add more duplicates of these lines. At the moment, I think it's fine.
Thanks for the review.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] blueorangutan commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
blueorangutan commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1048377794
<b>Trillian test result (tid-3412)</b>
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 33543 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr5984-t3412-kvm-centos7.zip
Smoke tests completed. 92 look OK, 0 have errors
Only failed tests results shown below:
Test | Result | Time (s) | Test File
--- | --- | --- | ---
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] joseflauzino commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
joseflauzino commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1067076582
I have noticed some bugs related to disk stats. I will fix them as soon as possible.
Please do not merge it.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] blueorangutan commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
blueorangutan commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1077837040
@joseflauzino a Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] joseflauzino commented on a change in pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
joseflauzino commented on a change in pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#discussion_r804631522
##########
File path: core/src/main/java/com/cloud/agent/api/VmStatsEntry.java
##########
@@ -20,151 +20,17 @@
package com.cloud.agent.api;
import com.cloud.vm.UserVmVO;
-import com.cloud.vm.VmStats;
-public class VmStatsEntry implements VmStats {
+public class VmStatsEntry extends VmStatsEntryBase {
Review comment:
@ravening yes
`VmStatsEntryBase` class represents the VM metrics. When persisting a stats collection, this class is converted to JSON and assigned to the `vm_stats_data` field of the `vm_stats` table. `VmStatsEntry` class (which extends `VmStatsEntryBase`) has an `UserVmVO` attribute that is used in another piece of code, but does not need to be included in a `vm_stats` table record.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] DaanHoogland commented on a change in pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
DaanHoogland commented on a change in pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#discussion_r805578002
##########
File path: api/src/test/java/org/apache/cloudstack/api/response/StatsResponseTest.java
##########
@@ -0,0 +1,119 @@
+package org.apache.cloudstack.api.response;
Review comment:
license
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] blueorangutan commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
blueorangutan commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1061058741
@GutoVeronezi a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] GutoVeronezi commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
GutoVeronezi commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1061058395
@blueorangutan package
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] joseflauzino commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
joseflauzino commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1047804370
@blueorangutan package
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] GutoVeronezi commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
GutoVeronezi commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1062019330
The tests were performed based on the code changes and the spec (#5935).
I tested the situations with an environment without the changes (ENV-1) and another one with the changes (ENV-2). I separeted the CloudMonkey results in files to avoid posting a big comment.
### Situations
:heavy_check_mark: I created a VM, waited for management to gather the information and restarted it. After restart it, ENV-1 was without the informations. ENV-2 had the last collected information.
- [test-restart-ENV-1.md](https://github.com/apache/cloudstack/files/8208256/test-restart-ENV-1.md)
- [test-restart-ENV-2.md](https://github.com/apache/cloudstack/files/8208258/test-restart-ENV-2.md)
:heavy_check_mark: I created a VM and verified in two management nodes. ENV-1 presented divergent informations. ENV-2 persented the same information for both nodes.
- [test-multiple-mgmt-ENV-1.md](https://github.com/apache/cloudstack/files/8208261/test-multiple-mgmt-ENV-1.md)
- [test-multiple-mgmt-ENV-2.md](https://github.com/apache/cloudstack/files/8208262/test-multiple-mgmt-ENV-2.md)
:heavy_check_mark: I tested some combinations of the global configs:
- [test-config-interval-30000-retention-2.md](https://github.com/apache/cloudstack/files/8208264/test-config-interval-30000-retention-2.md)
- [test-config-interval-30000-retention-5.md](https://github.com/apache/cloudstack/files/8208265/test-config-interval-30000-retention-5.md)
- [test-config-interval-60000-retention-5.md](https://github.com/apache/cloudstack/files/8208266/test-config-interval-60000-retention-5.md)
:heavy_check_mark: UI not showing stopped VMs when seeing metrics unless we filter only stopped:
- 
- 
:x: Analyzing the database, the column `vm_stats.mgmt_server_id` is storing the node's MacAddress, not the management's id.
---
@joseflauzino Analyzing the new API's return, I think it would be better if the element `stats` was ordered by its inner element `timestamp`.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] blueorangutan commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
blueorangutan commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1079502884
<b>Trillian test result (tid-3724)</b>
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 32789 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr5984-t3724-kvm-centos7.zip
Smoke tests completed. 92 look OK, 0 have errors
Only failed tests results shown below:
Test | Result | Time (s) | Test File
--- | --- | --- | ---
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] blueorangutan commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
blueorangutan commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1047805100
@joseflauzino a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] blueorangutan commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
blueorangutan commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1066889948
Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 2868
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] DaanHoogland commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
DaanHoogland commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1067669084
> I have noticed some bugs related to disk stats. I will fix them as soon as possible. Please do not merge it.
marking this as draft @joseflauzino
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] joseflauzino commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
joseflauzino commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1077836202
@blueorangutan package
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] joseflauzino commented on a change in pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
joseflauzino commented on a change in pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#discussion_r807195410
##########
File path: engine/schema/src/main/java/com/cloud/vm/VmStatsVO.java
##########
@@ -0,0 +1,80 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.vm;
+
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+
+@Entity
+@Table(name = "vm_stats")
+public class VmStatsVO {
Review comment:
@ravening
I think that instead of replicating the `instance_name` field in different tables, we can just use JOIN.
To get stats from a specific `instance_name` we can use something like:
```SQL
SELECT vm.instance_name, vs.timestamp, vs.vm_stats_data
FROM vm_stats vs
JOIN vm_instance vm
ON vs.vm_id=vm.id
WHERE vm.instance_name = ?
```
Therefore, I do not see the reason to add the `instance_name` in the `vm_stats` table.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] blueorangutan commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
blueorangutan commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1061087090
Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 2787
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] DaanHoogland commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
DaanHoogland commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1044642831
@blueorangutan package
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] DaanHoogland commented on a change in pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
DaanHoogland commented on a change in pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#discussion_r836395688
##########
File path: engine/schema/src/main/java/com/cloud/vm/VmStatsVO.java
##########
@@ -77,4 +77,17 @@ public String getVmStatsData() {
return vmStatsData;
}
+ @Override
Review comment:
@joseflauzino does it make sense to use `ReflectionToStringBuilderUtils` here?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] blueorangutan commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
blueorangutan commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1085891287
Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 3052
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] joseflauzino commented on a change in pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
joseflauzino commented on a change in pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#discussion_r804634019
##########
File path: engine/schema/src/main/java/com/cloud/vm/VmStatsVO.java
##########
@@ -0,0 +1,80 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.vm;
+
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+
+@Entity
+@Table(name = "vm_stats")
+public class VmStatsVO {
Review comment:
@ravening
I didn't quite understand your suggestion. This class represents an entity in the database that is not the entity of VMs. If I add the intancename, every time the user changes the VM name it would have to be changed here too (for each VM stats record), which ends up adding unnecessary complexity/processing.
If you check the output samples of the API (in the screenshots added in PR), it returns the name and display name of the VM.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] ravening commented on a change in pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
ravening commented on a change in pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#discussion_r804503946
##########
File path: core/src/main/java/com/cloud/agent/api/VmStatsEntry.java
##########
@@ -20,151 +20,17 @@
package com.cloud.agent.api;
import com.cloud.vm.UserVmVO;
-import com.cloud.vm.VmStats;
-public class VmStatsEntry implements VmStats {
+public class VmStatsEntry extends VmStatsEntryBase {
Review comment:
Any added advantage of adding the new VmStatsEntryBase class?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] DaanHoogland commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
DaanHoogland commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1044532625
Looks good @joseflauzino . Can you confirm it is ready for review and testing, please?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] GutoVeronezi commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
GutoVeronezi commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1085846463
@blueorangutan package
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] nvazquez commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
nvazquez commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1068688925
Hi @joseflauzino please advise when it is ready again for review, thanks
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] GutoVeronezi commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
GutoVeronezi commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1073907288
Close & reopening to re-run travis' tests.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] joseflauzino commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
joseflauzino commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1062042826
@GutoVeronezi Thanks for your efforts to test the environment and review the code!
I'll apply your suggestions as soon as possible.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] blueorangutan commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
blueorangutan commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1085846932
@GutoVeronezi a Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] joseflauzino commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
joseflauzino commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1044544427
@DaanHoogland Yes, it's ready.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] ravening commented on a change in pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
ravening commented on a change in pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#discussion_r804505438
##########
File path: engine/schema/src/main/java/com/cloud/vm/VmStatsVO.java
##########
@@ -0,0 +1,80 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.vm;
+
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+
+@Entity
+@Table(name = "vm_stats")
+public class VmStatsVO {
Review comment:
can you also add instancename(i-) and the display name also so that it will be very easy to find out the vm name else we need to query on id again to get the vm name?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] blueorangutan commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
blueorangutan commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1047945478
@DaanHoogland a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] DaanHoogland commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
DaanHoogland commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1047944745
@blueorangutan test
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] blueorangutan commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
blueorangutan commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1047837084
Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 2685
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] GutoVeronezi commented on a change in pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
GutoVeronezi commented on a change in pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#discussion_r821898182
##########
File path: server/src/main/java/com/cloud/server/StatsCollector.java
##########
@@ -315,8 +329,7 @@ public String toString() {
private final long mgmtSrvrId = MacAddress.getMacAddress().toLong();
private static final int ACQUIRE_GLOBAL_LOCK_TIMEOUT_FOR_COOPERATION = 5; // 5 seconds
private boolean _dailyOrHourly = false;
-
- //private final GlobalLock m_capacityCheckLock = GlobalLock.getInternLock("capacity.check");
+ protected long msId = ManagementServerNode.getManagementServerId();
Review comment:
The method `ManagementServerNode#getManagementServerId` retrieves the MacAddress as long. To get the management ID you could use `ManagementServerHostDaoImpl#findByMsid` passing the MacAddress as long.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] ravening commented on a change in pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
ravening commented on a change in pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#discussion_r804515511
##########
File path: engine/schema/src/main/java/com/cloud/vm/dao/VmStatsDaoImpl.java
##########
@@ -0,0 +1,122 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.vm.dao;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.PostConstruct;
+
+import org.springframework.stereotype.Component;
+
+import com.cloud.utils.db.Filter;
+import com.cloud.utils.db.GenericDaoBase;
+import com.cloud.utils.db.SearchBuilder;
+import com.cloud.utils.db.SearchCriteria;
+import com.cloud.utils.db.SearchCriteria.Op;
+import com.cloud.vm.VmStatsVO;
+
+@Component
+public class VmStatsDaoImpl extends GenericDaoBase<VmStatsVO, Long> implements VmStatsDao {
+
+ protected SearchBuilder<VmStatsVO> vmIdSearch;
+ protected SearchBuilder<VmStatsVO> vmIdTimestampGreaterThanEqualSearch;
+ protected SearchBuilder<VmStatsVO> vmIdTimestampLessThanEqualSearch;
+ protected SearchBuilder<VmStatsVO> vmIdTimestampBetweenSearch;
+ protected SearchBuilder<VmStatsVO> timestampSearch;
+
+ @PostConstruct
+ protected void init() {
+ vmIdSearch = createSearchBuilder();
+ vmIdSearch.and("vmId", vmIdSearch.entity().getVmId(), Op.EQ);
+ vmIdSearch.done();
+
+ vmIdTimestampGreaterThanEqualSearch = createSearchBuilder();
+ vmIdTimestampGreaterThanEqualSearch.and("vmId", vmIdTimestampGreaterThanEqualSearch.entity().getVmId(), Op.EQ);
+ vmIdTimestampGreaterThanEqualSearch.and("timestamp", vmIdTimestampGreaterThanEqualSearch.entity().getTimestamp(), Op.GTEQ);
+ vmIdTimestampGreaterThanEqualSearch.done();
+
+ vmIdTimestampLessThanEqualSearch = createSearchBuilder();
+ vmIdTimestampLessThanEqualSearch.and("vmId", vmIdTimestampLessThanEqualSearch.entity().getVmId(), Op.EQ);
+ vmIdTimestampLessThanEqualSearch.and("timestamp", vmIdTimestampLessThanEqualSearch.entity().getTimestamp(), Op.LTEQ);
+ vmIdTimestampLessThanEqualSearch.done();
+
+ vmIdTimestampBetweenSearch = createSearchBuilder();
+ vmIdTimestampBetweenSearch.and("vmId", vmIdTimestampBetweenSearch.entity().getVmId(), Op.EQ);
+ vmIdTimestampBetweenSearch.and("timestamp", vmIdTimestampBetweenSearch.entity().getTimestamp(), Op.BETWEEN);
+ vmIdTimestampBetweenSearch.done();
+
+ timestampSearch = createSearchBuilder();
+ timestampSearch.and("timestamp", timestampSearch.entity().getTimestamp(), Op.LT);
+ timestampSearch.done();
+
+ }
+
+ @Override
+ public List<VmStatsVO> findByVmId(long vmId) {
+ SearchCriteria<VmStatsVO> sc = vmIdSearch.create();
Review comment:
these two lines are duplicated. probably you can extract them to single function
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] ravening commented on a change in pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
ravening commented on a change in pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#discussion_r804506878
##########
File path: plugins/metrics/src/main/java/org/apache/cloudstack/api/ListVMsUsageHistoryCmd.java
##########
@@ -0,0 +1,100 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+package org.apache.cloudstack.api;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.apache.cloudstack.acl.RoleType;
+import org.apache.cloudstack.api.response.ListResponse;
+import org.apache.cloudstack.api.response.UserVmResponse;
+import org.apache.cloudstack.metrics.MetricsService;
+import org.apache.cloudstack.response.VmMetricsStatsResponse;
+
+@APICommand(name = ListVMsUsageHistoryCmd.APINAME, description = "Lists VM stats", responseObject = VmMetricsStatsResponse.class,
+ requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.16.0.4",
Review comment:
since 4.17?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] DaanHoogland commented on a change in pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
DaanHoogland commented on a change in pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#discussion_r805581865
##########
File path: plugins/metrics/src/test/java/org/apache/cloudstack/metrics/MetricsServiceImplTest.java
##########
@@ -0,0 +1,298 @@
+package org.apache.cloudstack.metrics;
Review comment:
license
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [cloudstack] joseflauzino commented on pull request #5984: Persistence of VM stats
Posted by GitBox <gi...@apache.org>.
joseflauzino commented on pull request #5984:
URL: https://github.com/apache/cloudstack/pull/5984#issuecomment-1066840089
@blueorangutan package
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@cloudstack.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org