Intelligent resource trend prediction is implemented through a state machine. As shown in Figure 1, the state machine has three states: Normal, Detect, and Fault.
After intelligent resource trend prediction is enabled and the first resource KPI data is down-sampled, the state machine enters this state by default. After accumulating at least four days' down-sampled data, the system analyzes the data and predicts the resource trend over the subsequent down-sampling points to determine whether to switch the state machine to the Detect state. If the predicted resource trend meets the requirements for the state machine to enter the Detect state, the system switches the state machine to the Detect state. Otherwise, the state machine remains in the Normal state.
In this state, the system analyzes whether a resource KPI will potentially reach the threshold. If the system predicts that the threshold will be reached and the historical data fluctuation meets the conditions, it records a valid event. When the number of valid events reaches an alarm threshold, the system reports an alarm and switches the state machine to the Fault state. If the system predicts that the data collected in the next down-sampling period will not meet the conditions for maintaining the Detect state, it switches the state machine back to the Normal state.
In this state, the system analyzes the resource KPI trend and determines whether a resource KPI will potentially reach the threshold. If the system predicts that the resource KPI will not reach the threshold within the specified number of predictions, the system clears the alarm and switches the state machine to the Normal state.
Intelligent resource trend prediction obtains the data it analyzes from internal modules of a device. Each module of a device periodically reports data to the analysis module of intelligent resource trend prediction using telemetry. The KPI data about the used memory and the number of used ARP entries is reported at an interval of 5 minutes. The KPI data about the number of used ND entries and the number of used ND prefix entries is reported at an interval of 10 minutes. The maximum number of days over which the resource trend can be predicted is 30 days.
Table 1 describes the key fields in the telemetry packets reported by the device to the NMS.
An example of the format of an output telemetry packet:
{"node_id_str":"85.51","subscription_id_str":"test","sensor_path":"huawei-eai-service:eai-service/resource-prediction-datas/resource-prediction-data","proto_path":"huawei_eai_service.EaiService","collection_id":2,"collection_start_time":"2020-10-17 19:42:46.378","msg_timestamp":"2020-10-17 19:42:46.408","data_gpb":{"row":[{"timestamp":"2020-10-17 19:42:46.378","content":"{"resource-prediction-datas":{"resource-prediction-data":[{"class":"Class_PROTOCOL","sub-class":"SubClass_MPLS","module-id":6907,"chassis-id":0,"slot-id":17,"object-id":"1","attribute-id":"1","sequence-id":0,"state":"State_NORMALX_DURATION","upload-time":1602934966,"collect-interval":3,"over-threshold-days":0,"period":3,"value-type":"ValueType_ORIGINAL","threshold":"209715","predict-num":53,"predict-value":"2010,2025,2045,2069,2093,2119,2144,2169,2194,2219,2244,2269,2294,2320,2345,2370,2395,2420,2445,2470,2495,2520,2545,2570,2595,2621,2646,2671,2696,2721,2746,2771,2796,2821,2846,2871,2896,2921,2947,2972,2997,3022,3047,3072,3097,3122,3147,3172,3197,3222,3248,3273,3298,","predict-std-value":"12625.965111,29069.574084,48146.631588,63153.600623,72194.790724,77029.656767,79759.207745,81622.852161,83187.206564,84679.981835,86181.443569,87715.597926,89288.432869,90901.190901,92554.087137,94247.152739,95980.391508,97753.803825,99567.389730,101421.149239,103315.082329,105249.189014,107223.469286,109237.923155,111292.550610,113387.351662,115522.326296,117697.474535,119912.796350,122168.291758,124463.960764,126799.803362,129175.819551,131592.009314,134048.372690,136544.909649,139081.620205,141658.504347,144275.562078,146932.793396,149630.198326,152367.776825,155145.528912,157963.454605,160821.553883,163719.826763,166658.273224,169636.893261,172655.686901,175714.654152,178813.794968,181953.109390,185132.597397,","history-value":"1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,"}]}}","path":{"node":[]}}],"delete":[],"generator":{"generator_id":0,"generator_sn":0,"generator_sync":false}},"collection_end_time":"2020-10-17 19:42:46.378","current_period":0,"except_desc":"OK","product_name":"NetEngine 8000 F","encoding":"Encoding_GPB","data_str":"","ne_id":"","software_version":""}
Field |
Data Type |
Description |
---|---|---|
node_id_str |
Character string |
Device name |
subscription_id_str |
Character string |
Telemetry subscription name |
sensor_path |
Character string |
Sampling XPath |
proto_path |
Character string |
Sampling proto |
collection_id |
Integer |
Collection ID |
collection_start_time |
YYYY-MM-DD, HH:MM:SS |
Collection timestamp |
msg_timestamp |
YYYY-MM-DD, HH:MM:SS |
Message timestamp |
data_gpb |
- |
Message content |
timestamp |
YYYY-MM-DD, HH:MM:SS |
Timestamp |
class |
Enumerated value |
Category to which a KPI belongs, for example, forwarding plane or protocol |
sub_class |
Enumerated value |
KPI subcategory, for example, forwarding engine or MPLS |
module_id |
Integer |
Module ID |
chassis_id |
Integer |
Chassis ID |
slot_id |
Integer |
Slot ID |
object_id |
Integer |
Object ID |
attribute_id |
Integer |
Attribute ID |
sequence_id |
Integer |
Sequence number |
state |
Integer |
Status |
upload_time |
Integer |
Number of seconds from 00:00 on January 1, 1970 to the time when the event occurred (UTC) |
collect_interval |
Integer |
Collection interval |
over-threshold-days |
Integer |
Predicted number of days after which the resource usage exceeds the threshold |
Period |
Integer |
Predict interval, in hours |
threshold |
Integer |
Threshold value, which is 80% of the specification |
predict-num |
Integer |
Number of predict times |
predict-value |
Character string |
Predicted value |
predict-std-value |
Character string |
Standard deviation of predicted data |
history-value |
Character string |
Historical data |