2013-03-06 14 views
5

मेरे पास एक बैकअप स्क्रिप्ट है जो हर 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" 
} 

उत्तर

5

यह व्यवहार (अपने मॉनिटर INSFUCCIENT_DATA राज्य में स्थानांतरित नहीं किए है कि इसकी वजह Cloudwatch समझता है 'पूर्व टाइमस्टैंप' मीट्रिक datapoints और इतने (6 घंटे के अलार्म के लिए) यदि वर्तमान 6 खुली घंटे की खिड़की में कोई डेटा मौजूद नहीं है .. यह पिछले 6 घंटे की खिड़की से डेटा ले जाएगा (इसलिए आप ऊपर देखे गए 12 घंटे का टाइमस्टैम्प)

'निष्ठा बढ़ाने के लिए अपने अलार्म के, अलार्म अवधि को नीचे टी को कम करें ओ 1 घंटे/3600s और मूल्यांकन अवधि की अपनी संख्या में वृद्धि करें कि आप कितनी अवधि के लिए विफलता पर अलार्म करना चाहते हैं। यह आपके अलार्म संक्रमण को INSFUCCIENT_DATA में सुनिश्चित करेगा जैसा कि आप उम्मीद करते हैं।

मैं जो चाहता हूं उसे हासिल करने के लिए अलार्म को कॉन्फ़िगर कैसे करें (यानी, बैकअप नहीं किए जाने पर अधिसूचित हो जाएं)?

यदि आपका काम सफल है, तो 0 यदि यह विफल हो गया है तो आपके अलार्म के लिए एक संभावित आर्किटेक्चर प्रकाशित किया जाएगा। फिर 3 - 3600 अवधि के लिए < 1 की सीमा के साथ अलार्म बनाएं जिसका अर्थ है कि यदि आपका काम विफल हो रहा है तो आपका अलार्म ALARM में जाएगा (यानी चल रहा है .. लेकिन असफल रहा है)। यदि आप उस अलार्म पर एक INSFUCCIENT_DATA कार्रवाई भी सेट करते हैं तो आपको भी सूचित किया जाएगा यदि आपका काम बिल्कुल नहीं चल रहा है।

आशा है कि यह समझ में आता है।

+0

दिलचस्प। लेकिन मुझे बहुत सहज महसूस नहीं होता है कि यह "फीचर" कहीं भी दस्तावेज नहीं है (या यह है? मुझे बस यह नहीं मिल रहा है)। साथ ही, आपके द्वारा प्रस्तावित आर्किटेक्चर अच्छा नहीं लगता है: डेटा बिंदुओं की अनुपस्थिति में अधिसूचित होने का पूरा विचार यह है कि अधिसूचना विफल होने पर अलार्म होना चाहिए (यानी, उस सर्वर का मानना ​​है जो बैकअप मर जाता है, या नेटवर्क है समस्या, आदि)। आपके प्रतिक्रिया के लिए धन्येवाद! इसे ध्यान में रखते हुए, मैं देखता हूं कि मैं क्या कर सकता हूं। –

+0

तो मीट्रिक डेटापॉइंट्स की अनुपस्थिति में .. अलार्म INSUFFICIENT_DATA स्थिति में परिवर्तित हो जाएगा, न कि ALARM स्थिति। इसलिए यदि आप सूचित नहीं करना चाहते हैं कि आपका काम नहीं चल रहा है .. आपको INSFUCCIENT_DATA पर एक कार्रवाई निर्दिष्ट करने की आवश्यकता होगी। अलार्म केवल अलार्म राज्य में परिवर्तित हो जाएगा यदि सीमा के साथ तुलना करने के लिए डेटापॉइंट उपलब्ध हैं। – Wal

+0

इसलिए नौकरी की सफलता पर मूल्य 1 प्रकाशित करने का मेरा सुझाव, नौकरी विफलता पर 0 (यानी नौकरी चल रही है लेकिन सफलतापूर्वक पूरा नहीं हो रही है) और आखिर में आईएनएसएफयूसीसीआईसीसीडीएटीए राज्य को प्रकाशित होने वाली मीट्रिक की कमी को संभालने का मौका मिला (यानी मेजबान चलने वाला मेजबान मर चुका है) – Wal

संबंधित मुद्दे