Monitoring SmartyStreets订阅余额

Monitoring SmartyStreets订阅余额,monitoring,smartystreets,Monitoring,Smartystreets,在中,我可以在登录门户时查看订阅余额。无法通过API检查我的订阅余额。我们的应用程序需要地址验证才能销售。作为实施SmartyStreets的一部分,我希望监控我的订阅余额,以便在地址验证用完之前收到续订通知 可用的监控工具有Nagios、Nimsoft和CA APM 有人制作过这样的监视器吗?SmartyStreets订阅可在两种情况下续订: 到期(例如,一个月或一年已经过去) 您的查找将耗尽 第二个触发点就在那里,这样你就不必担心你的订阅已经用光了;如果你用完了,它只会充满更多而不会中断你的

在中,我可以在登录门户时查看订阅余额。无法通过API检查我的订阅余额。我们的应用程序需要地址验证才能销售。作为实施SmartyStreets的一部分,我希望监控我的订阅余额,以便在地址验证用完之前收到续订通知

可用的监控工具有Nagios、Nimsoft和CA APM


有人制作过这样的监视器吗?

SmartyStreets订阅可在两种情况下续订:

  • 到期(例如,一个月或一年已经过去)
  • 您的查找将耗尽
  • 第二个触发点就在那里,这样你就不必担心你的订阅已经用光了;如果你用完了,它只会充满更多而不会中断你的服务


    至于监控,它是内置的。你应该在订阅量不足、即将续订以及实际续订时收到电子邮件。

    使用curl进行屏幕抓取是一种方法。尝试:

  • 从auth应用程序获取cookie jar
  • 从订阅应用程序获取您的帐户
  • 仔细计算数字
  • 此命令将在SSCookies文件中保存您的身份验证cookie:

    $curl-c SSCookies'-d email=myEmail-d password=myPassword

    现在使用cookie jar对订阅应用程序进行身份验证。这些命令将获取您的订阅:

    $subs=

    $curl-s-b@SSCookies$subs | python-mjson.tool

    (python部分使输出非常漂亮)

    生成的JSON将列出您的整个帐户历史记录,包括不再处于活动状态的订阅和任何可能要续订的订阅。查找状态为“活动”的条目:

    我的活动订阅是#2(索引1)。一些Python来提取生命体征(我将其命名为SSMonitor.py):

    $curl-s-b@SSCookies$subs | python SSMonitor.py

    SmartyStreets订阅使用情况:934/1200000.0

    虽然这确实有效(目前),但它不是文档中所示的合同URL,这意味着SmartyStreets保留自行决定更改签名、有效负载等的权利,并且不会发出警告。这意味着通常的警告和免责声明适用。
    [
        {
            "free": true,
            "id": nnnnn,
            "issued": 250.0,
            "lapse_date": "2013-06-15T08:15:00Z",
            "name": "LiveAddress API (Free)",
            "sku": nnnnn,
            "start_date": "2013-06-03T21:56:00Z",
            "status": "expired",
            "used": 250
        },
        {
            "autorenew": true,
            "id": nnnnn,
            "issued": 1200000.0,
            "lapse_date": "2015-06-20T20:11:00Z",
            "name": "LiveAddress API (Yearly)",
            "sku": nnnnn,
            "start_date": "2014-06-20T20:11:00Z",
            "status": "active",
            "used": 934
        },
        {
            "autorenew": true,
            "cart_id": 0,
            "issued": 1200000.0,
            "lapse_date": "2016-07-20T20:11:00Z",
            "name": "LiveAddress API (Yearly)",
            "sku": nnnnn,
            "start_date": "2015-07-20T20:11:00Z",
            "status": "proposed"
        }
    ]
    
    import json,sys;
    
    obj=json.load(sys.stdin);
    
    keys=obj[1].keys();
    values=obj[1].values();
    
    for i,key in enumerate(keys):
        if (key=="used"): used=values[i];
        if (key=="issued"): issued=values[i];
    
    print "SmartyStreets subscription usage: {0}/{1}".format(used, issued);