2014-09-28

Uptime Robot API を使って監視設定を一括更新する

Uptime Robot という無料で 50サイトまで死活監視してくれるサービスについて、監視設定を一括更新するには以下のように API を使うと簡単にできます。

requests ライブラリを使用しているので事前に pip install requests が必要です。

import requests

urlBase = 'https://api.uptimerobot.com'
baseParams = {
    'apiKey': 'u123123-ffffffffffffffffffffffffff',
    'format': 'json',
    'noJsonCallback': 1,
}

# alert contact id を取得します
for alertcontact in requests.get(urlBase + '/getAlertContacts', params=baseParams).json()['alertcontacts']['alertcontact']:
    print alertcontact['id']

# 全監視設定を更新します
for monitor in requests.get(urlBase + '/getMonitors', params=baseParams).json()['monitors']['monitor']:
    print monitor['id'], requests.get(urlBase + '/editMonitor', params=dict(baseParams, **{
        'monitorID': monitor['id'],
        'monitorAlertContacts': '123-456', # ハイフン区切り
        'monitorInterval': 5,
    })).json()

リンク
Uptime Robot API Documentation

2014-09-16

映画「STAND BY ME ドラえもん」を見ました

レイトレーシング による正確な光の表現の涙、ドラえもんの鈴、ドラえもんボディの光沢感の違う素材は技術の進歩を感じる。タイムマシンの中の表現、のび太の机のデスクライトのシェードが透ける表現も良かったと思う。

鍵盤ハーモニカのケースの色合いの違いはとても良い。一方でドラえもん登場シーンでは量が正確に揃いすぎているお茶が出てきて笑った。

しつこく見せつけられるトヨタ。のび太の車のロゴ、未来の街に看板が2つ (TOYOTA, FUN TO DRIVE, AGAIN.)、一方ヒミツ道具は操作盤が白地に黄緑の光で、角が丸っこい感じが何となく Panasonic 感がするものが多かった。看板も1つ出ていた (Panasonic)

相変わらずのび太の車はのび太が運転していたし、脈拍数低下してきても音声アラートを鳴らすだけでオーナーを見殺しにするスマートウォッチは何も進歩しておらず、ココセコム の方がずっと先を行っていると感じた。

序盤は、好奇心ではなくそれぞれ恐怖にドライブされているドラえもんとのび太 (仕込まれたプログラムに違反すると電撃、このままでは就職できないぞ) にはクリエイティビティを感じないし見ていて辛かった。

中盤以降は、のび太の、人のことを思いやる気持ち、というのが引き出されていて良かったと思う。

映画「STAND BY ME ドラえもん」公式サイト

2014-09-14

StatusCake API を使って監視設定を一括更新する

StatusCake とは基本無料でサイト数の制限なく Web サイトの死活監視を行えるとても便利なサービスです。監視設定は管理画面より一つづつ設定を更新することは可能なのですが、複数の監視設定の変更を一度に行う一括更新機能は無いようなので、StatusCake API を使って変更を行ってみました。

API Key はアカウント情報のページより取得できます。Username はログイン時のユーザー名を入力してください。以下のサンプルコードは Python で requests ライブラリ を使った場合の例です。動作させるには pip install requests を実行してライブラリを追加してみてください。

import requests

urlBase = 'https://www.statuscake.com/API'
authHeaders = {'API':'APIKEY', 'Username':'USERNAME'}

# 各テストをすべて更新する例
for test in requests.get(urlBase + '/Tests', headers=authHeaders).json():
    print test['TestID'], requests.put(urlBase + '/Tests/Update', headers=authHeaders, data={
        'TestID': test['TestID'],
        'Confirmation': 3,
        'TriggerRate': 1,
        'CheckRate': 300,
    }).json()

# テスト詳細の取得
requests.get(urlBase + '/Tests/Details', params={'TestID': 123123}, headers=authHeaders).json()

# コンタクトグループ一覧を取得
requests.get(urlBase + '/ContactGroups', headers=authHeaders).json()

メモ
Web の管理画面ではテストに対してコンタクトグループを複数指定できるのですが、API からは最初の1つのみ更新できるようです。

API の末尾のスラッシュは無くても大丈夫みたいです。

StatusCake に似たサービスで、50個まで監視項目を設定できる Uptime Robot というサービスもあります。

リンク
StatusCake - Website Uptime Monitoring & Alerts – Free Unlimited Downtime Monitoring
StatusCake API Documentation
Requests: HTTP for Humans