2 public interface Monitoring: GLib.Object {
6 * @param log_ctx - [in] the log context to use
10 public abstract RwTypes.RwStatus init(RwLog.Ctx log_ctx);
15 * Returns the NFVI metrics for a particular VM
17 * @param account - [in] the account details of the owner of the VM
18 * @param vm_id - [in] the ID of the VM to retrieve the metrics from
19 * @param metrics - [out] An NfviMetrics object
23 public abstract RwTypes.RwStatus nfvi_metrics(
24 Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
26 out Rwmon.YangData_RwProject_Project_NfviMetrics metrics);
31 * Returns the VCPU metrics for a particular VM
33 * @param account - [in] the account details of the owner of the VM
34 * @param vm_id - [in] the ID of the VM to retrieve the metrics from
35 * @param metrics - [out] An NfviMetrics_Vcpu object
39 public abstract RwTypes.RwStatus nfvi_vcpu_metrics(
40 Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
42 out Rwmon.YangData_RwProject_Project_NfviMetrics_Vcpu metrics);
47 * Returns the memory metrics for a particular VM
49 * @param account - [in] the account details of the owner of the VM
50 * @param vm_id - [in] the ID of the VM to retrieve the metrics from
51 * @param metrics - [out] An NfviMetrics_Memory object
55 public abstract RwTypes.RwStatus nfvi_memory_metrics(
56 Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
58 out Rwmon.YangData_RwProject_Project_NfviMetrics_Memory metrics);
61 * nfvi_storage_metrics
63 * Returns the storage metrics for a particular VM
65 * @param account - [in] the account details of the owner of the VM
66 * @param vm_id - [in] the ID of the VM to retrieve the metrics from
67 * @param metrics - [out] An NfviMetrics_Storage object
71 public abstract RwTypes.RwStatus nfvi_storage_metrics(
72 Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
74 out Rwmon.YangData_RwProject_Project_NfviMetrics_Storage metrics);
77 * nfvi_metrics_available
79 * Checks whether ceilometer exists for this account and is
80 * providing NFVI metrics
82 * @param account - [in] the account details of the owner of the VM
83 * @param present - [out] True if ceilometer exists, False otherwise
87 public abstract RwTypes.RwStatus nfvi_metrics_available(
88 Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
94 * @param account - [in] the credentials required to update the alarm.
95 * @param vim_id - [in] the identifier assigned by a VIM to the VDU that
96 * the alarm is associated with.
97 * @param alarm - [ref] an alarm structure defining the alarm. Note that
98 * the underlying implmentation will fill in the alarm_id
99 * attribute, which is required for modifying or deleting
104 public abstract RwTypes.RwStatus alarm_create(
105 Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
107 ref Rwmon.YangData_RwProject_Project_Alarm alarm);
112 * @param account - [in] the credentials required to update the alarm.
113 * @param alarm - [in] the complete alarm structure defining the alarm.
114 * This means that the alarm structure must contain a
115 * valid alarm_id, and any attribute of the structure that
116 * differs from the actual alarm will be updated to match
121 public abstract RwTypes.RwStatus alarm_update(
122 Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
123 Rwmon.YangData_RwProject_Project_Alarm alarm);
128 * @param account - [in] the credentials required to delete the alarm.
129 * @param alarm_id - [in] the identifier of the alarm to delete
133 public abstract RwTypes.RwStatus alarm_delete(
134 Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
140 * @param account - [in] the credentials required to list the alarms.
141 * @param alarms - [out] a list of alarms
145 public abstract RwTypes.RwStatus alarm_list(
146 Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
147 out Rwmon.YangData_RwProject_Project_Alarm[] alarms);