APIヘルスチェックのススメ: API Health

これはEnterprise APIs Advent Calendar 2015の12/20のエントリです。(このブログ、ここ数年年末のアドベントカレンダー用のエントリしかない…^^;)

一般向けであれ、特定パートナー向けであれ、Web APIの運用にはサービス監視が重要です。そして、サーバサイドにおける内部的な監視も大切ですが、API利用者に正しくサービスが提供できていることを確認するためには、クライアントから実際にリクエストを送る形態のヘルスチェックは欠かせません。

ApigeeAPI Healthは、このクライアント視点のAPIヘルスチェックを簡単に実現する独立したサービスです。2015年12月現在、ベータ版で提供されており誰でも無料で利用できます。インターネットからアクセス可能ならどんなAPIでも監視対象にすることができます。あらかじめ定義したリクエストを指定した頻度で送信して、エラーの発生やレスポンスタイムの異常があればメールやSlackなどでアラートを送ってくれます。リクエストは世界4地点から送信することが可能で、成功率やレスポンスタイムを発信地点ごとにグラフ表示することなどもできます。

使い方は次の通り(詳細は公式ドキュメントを参照):

  1. (もしまだ持っていなければ)Apigeeアカウントを用意する
  2. API Healthダッシュボードにログイン
  3. 左サイドの"+"、または右上の"Add Prove"ボタンでプローブを作成
    • プローブ名とステップ名をつける。プローブは1個以上のステップ(API呼び出し)からなるヘルスチェックの単位。単一のGETリクエストでもいいし、認証トークンを取得してそれを使うような一連の呼び出しシーケンスでもよい
    • ステップのリクエスURIとメソッド、期待するレスポンスコードを設定
    • "Show Advanced"を使うと、呼び出し前に短いスクリプトを実行したり、リクエストのヘッダを設定したりできる。また、レスポンスヘッダやJSONボディの一部を抽出して変数に設定することも可能(アサーションに使ったり次以降のステップで参照できる)
    • 必要なら"Add new step"でステップを追加
  4. プローブの動作を設定
    • チェック頻度: 30秒/1分/5分/15分/30分/1時間のいずれか
    • アラート条件: レスポンスコードや変数のアサーション失敗回数、レスポンスタイムが閾値を超えた回数、異常な遅延
    • 通知先: メール、HipChatSlack
  5. リクエストの発信地を設定(以下の4地点をon/off)

最後に"I'm Done"を押せば定期ヘルスチェックが始まり、設定した条件でアラートを受けたり、ダッシュボードでこれまでのヘルスチェックの結果を参照することができます。

簡単に設定できる便利な無料サービスですので、監視したいAPIがあるすべての方にオススメです。ぜひお試しあれ!