コード例 #1
0
from qcloudsms_py import SmsMultiSender
from qcloudsms_py.httpclient import HTTPError

from tools.sms_config import appid, appkey, phone_numbers

sms_type = 0  # Enum{0: 普通短信, 1: 营销短信}
msender = SmsMultiSender(appid, appkey)
try:
    result = msender.send(sms_type,
                          "86",
                          phone_numbers,
                          "【腾讯云】您的验证码是: 5678",
                          extend="",
                          ext="")
except HTTPError as e:
    print(e)
except Exception as e:
    print(e)

print(result)
コード例 #2
0
def AlertHandler():
    body = request.get_data()
    logger.debug(body)
    try:
        v = json.loads(body)
    except Exception as err:
        logger.warn("json decode error, err=%s, body=%s" % (err, body))
        return '{"code":1,"msg":"json decode error"}'
    else:
        if "state" in v and v["state"] == "alerting":
            if "evalMatches" in v:
                value_str = ""
                for i in range(len(v["evalMatches"])):
                    if "value" not in v["evalMatches"][i]:
                        continue
                    value = v["evalMatches"][i]["value"]
                    if value < 0:
                        # value如果小于0表明数据回退了,这里忽略告警
                        return '{"code":0,"msg":"ok"}'
                    if "tags" not in v["evalMatches"][i]:
                        if value_str == "":
                            value_str += "当前值%d已超出" % value
                        else:
                            value_str += ",当前值%d已超出" % value
                    else:
                        tags = v["evalMatches"][i]["tags"]
                        if "host" in tags:
                            host = tags["host"]
                            if value_str == "":
                                value_str += "%s当前值%d已超出" % (host, value)
                            else:
                                value_str += ",%s当前值%d已超出" % (host, value)
                        else:
                            if value_str == "":
                                value_str += "当前值%d已超出" % value
                            else:
                                value_str += ",当前值%d已超出" % value

                rule_name = ""
                if "ruleName" in v:
                    rule_name = v["ruleName"]
                else:
                    return '{"code":2,"msg":"missing ruleName"}'

                alert_str = "%s,%s" % (rule_name, value_str)
                time_str = " [" + time.strftime('%m-%d %H:%M', time.localtime(time.time())) + "]"
                msg = alert_str + time_str
                logger.warn(msg)

                # message目前保存的是负责人,多个负责人用;分隔
                message = ""
                if "message" in v:
                    message = v["message"]
                managers = message.split(";")
                phone_nums = []
                for i in range(len(managers)):
                    person = managers[i]
                    if person in GlobalConfig.sms_phone_nums:
                        phone_num = GlobalConfig.sms_phone_nums[person]
                        phone_nums.append(phone_num)
                if GlobalConfig.sms_send == True and len(phone_nums) > 0:
                    msender = SmsMultiSender(GlobalConfig.sms_appid, GlobalConfig.sms_appkey)
                    try:
                        result = msender.send(0, "86", phone_nums, msg)
                    except HTTPError as e:
                        logger.warn("msender err=%s" % e)
                    except Exception as e:
                        logger.warn("msender err=" % e)
        return '{"code":0,"msg":"ok"}'