मेरे पास एक बैकअप स्क्रिप्ट है जो हर 2 घंटे चलती है। जब भी स्क्रिप्ट समस्याएं चलती है, तो अधिसूचित होने के लिए मैं इस स्क्रिप्ट और क्लाउडवॉच के अलार्म के सफल निष्पादन को ट्रैक करने के लिए क्लाउडवॉच का उपयोग करना चाहता हूं।अजीब क्लाउडवॉच अलार्म व्यवहार
स्क्रिप्ट एक CloudWatch मीट्रिक पर एक डेटा बिंदु डालता है हर सफल बैकअप के बाद:
mon-put-data --namespace Backup --metric-name $metric --unit Count --value 1
मैं एक अलार्म है कि ALARM राज्य को जाता है जब भी मीट्रिक पर आंकड़ा "योग" एक में 2 से कम है 6 घंटे की अवधि।
इस सेटअप का परीक्षण करने के लिए, एक दिन के बाद, मैंने मेट्रिक में डेटा डालना बंद कर दिया (यानी, मैंने मोन-पुट-डेटा कमांड पर टिप्पणी की)। अच्छा, अंततः अलार्म ALARM राज्य में गया और मुझे उम्मीद के अनुसार एक ईमेल अधिसूचना मिली।
समस्या यह है कि, कुछ समय बाद, अलार्म ठीक स्थिति में वापस आ गया, हालांकि मेट्रिक में कोई नया डेटा नहीं जोड़ा जा रहा है!
दो संक्रमण (ठीक => ALARM, फिर ALARM => ठीक) लॉग किया गया है और मैं इस प्रश्न में लॉग पुन: उत्पन्न करता हूं। ध्यान दें कि, हालांकि दोनों "अवधि: 21600" (यानी, 6 एच) दिखाते हैं, दूसरा दूसरा स्टार्टडेट और क्वेरीडेट के बीच 12 घंटे का समय अवधि दिखाता है; मैं देखता हूं कि यह संक्रमण की व्याख्या कर सकता है, लेकिन मुझे समझ में नहीं आ रहा है कि क्लाउडवॉच 6 घंटे की अवधि के साथ एक आंकड़े की गणना करने के लिए 12 घंटे के समय की अवधि क्यों सोच रहा है!
मुझे यहां क्या याद आ रही है? मैं जो चाहता हूं उसे प्राप्त करने के लिए अलार्म को कॉन्फ़िगर कैसे करें (यानी, अगर बैकअप नहीं बनाया जा रहा है तो अधिसूचित हो जाएं)?
{
"Timestamp": "2013-03-06T15:12:01.069Z",
"HistoryItemType": "StateUpdate",
"AlarmName": "alarm-backup-svn",
"HistoryData": {
"version": "1.0",
"oldState": {
"stateValue": "OK",
"stateReason": "Threshold Crossed: 1 datapoint (3.0) was not less than the threshold (3.0).",
"stateReasonData": {
"version": "1.0",
"queryDate": "2013-03-05T21:12:44.081+0000",
"startDate": "2013-03-05T15:12:00.000+0000",
"statistic": "Sum",
"period": 21600,
"recentDatapoints": [
3
],
"threshold": 3
}
},
"newState": {
"stateValue": "ALARM",
"stateReason": "Threshold Crossed: 1 datapoint (1.0) was less than the threshold (2.0).",
"stateReasonData": {
"version": "1.0",
"queryDate": "2013-03-06T15:12:01.052+0000",
"startDate": "2013-03-06T09:12:00.000+0000",
"statistic": "Sum",
"period": 21600,
"recentDatapoints": [
1
],
"threshold": 2
}
}
},
"HistorySummary": "Alarm updated from OK to ALARM"
}
दूसरा एक है, जो मैं साधारण समझ में नहीं कर सकते हैं:
{
"Timestamp": "2013-03-06T17:46:01.063Z",
"HistoryItemType": "StateUpdate",
"AlarmName": "alarm-backup-svn",
"HistoryData": {
"version": "1.0",
"oldState": {
"stateValue": "ALARM",
"stateReason": "Threshold Crossed: 1 datapoint (1.0) was less than the threshold (2.0).",
"stateReasonData": {
"version": "1.0",
"queryDate": "2013-03-06T15:12:01.052+0000",
"startDate": "2013-03-06T09:12:00.000+0000",
"statistic": "Sum",
"period": 21600,
"recentDatapoints": [
1
],
"threshold": 2
}
},
"newState": {
"stateValue": "OK",
"stateReason": "Threshold Crossed: 1 datapoint (3.0) was not less than the threshold (2.0).",
"stateReasonData": {
"version": "1.0",
"queryDate": "2013-03-06T17:46:01.041+0000",
"startDate": "2013-03-06T05:46:00.000+0000",
"statistic": "Sum",
"period": 21600,
"recentDatapoints": [
3
],
"threshold": 2
}
}
},
"HistorySummary": "Alarm updated from ALARM to OK"
}
दिलचस्प। लेकिन मुझे बहुत सहज महसूस नहीं होता है कि यह "फीचर" कहीं भी दस्तावेज नहीं है (या यह है? मुझे बस यह नहीं मिल रहा है)। साथ ही, आपके द्वारा प्रस्तावित आर्किटेक्चर अच्छा नहीं लगता है: डेटा बिंदुओं की अनुपस्थिति में अधिसूचित होने का पूरा विचार यह है कि अधिसूचना विफल होने पर अलार्म होना चाहिए (यानी, उस सर्वर का मानना है जो बैकअप मर जाता है, या नेटवर्क है समस्या, आदि)। आपके प्रतिक्रिया के लिए धन्येवाद! इसे ध्यान में रखते हुए, मैं देखता हूं कि मैं क्या कर सकता हूं। –
तो मीट्रिक डेटापॉइंट्स की अनुपस्थिति में .. अलार्म INSUFFICIENT_DATA स्थिति में परिवर्तित हो जाएगा, न कि ALARM स्थिति। इसलिए यदि आप सूचित नहीं करना चाहते हैं कि आपका काम नहीं चल रहा है .. आपको INSFUCCIENT_DATA पर एक कार्रवाई निर्दिष्ट करने की आवश्यकता होगी। अलार्म केवल अलार्म राज्य में परिवर्तित हो जाएगा यदि सीमा के साथ तुलना करने के लिए डेटापॉइंट उपलब्ध हैं। – Wal
इसलिए नौकरी की सफलता पर मूल्य 1 प्रकाशित करने का मेरा सुझाव, नौकरी विफलता पर 0 (यानी नौकरी चल रही है लेकिन सफलतापूर्वक पूरा नहीं हो रही है) और आखिर में आईएनएसएफयूसीसीआईसीसीडीएटीए राज्य को प्रकाशित होने वाली मीट्रिक की कमी को संभालने का मौका मिला (यानी मेजबान चलने वाला मेजबान मर चुका है) – Wal