稼働時間アラートの設定

このチュートリアルでは、Cloud Monitoring を使用して App Engine フレキシブル環境で実行する Python Hello World アプリ用の稼働時間アラートを設定する方法を示します。稼働時間アラートは、アプリがトラフィックを処理していない場合に通知を行います。Compute Engine または Google Kubernetes Engine(GKE)で実行するアプリの稼働時間アラートを設定することもできます。

目標

  • 基本的な Hello World アプリを実行します。
  • アプリが HTTP「200」ステータス コードを返すかどうかを監視する稼働時間チェックを作成します。
  • 稼働時間チェックが失敗したときにメール メッセージを送信するアラートを作成します。
  • アプリを再起動してアラートをトリガーします。

料金

Monitoring は現在、ベータ版のユーザーに無償で提供されています。

始める前に

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  4. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  5. Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

サンプルアプリのクローン作成

サンプルアプリは GitHub の GoogleCloudPlatform/getting-started-python で入手できます。

  1. リポジトリのクローンを作成します。

    git clone https://github.com/GoogleCloudPlatform/getting-started-python.git
    
  2. サンプル ディレクトリに移動します。

    cd getting-started-python/gce
    
  3. アプリは「Hello World!」を返すだけなので、設定は不要で、すぐに実行できます。

    gcloud app deploy
    
  4. 返されたメッセージを表示するには、ブラウザに次の URL を入力します。

    https://PROJECT_ID.REGION_ID.r.appspot.com

    以下を置き換えます。

プロジェクト用の Cloud Monitoring の構成

Monitoring を構成してアプリをデプロイすると、Monitoring を使用して稼働時間チェックを作成できます。チェックはデプロイされたアプリに継続的に ping を実行し、アプリが確実に正常なレスポンスを返すようにします。

Cloud Monitoring にアクセスする方法は、次のとおりです。
  1. Cloud Console で、Google Cloud プロジェクトを選択します。
    Cloud Console に移動
  2. ナビゲーション パネルで [Monitoring] を選択します。

稼働時間チェックの作成

  1. Cloud Console で、[Monitoring] に移動します。

    [モニタリング] に移動

  2. ナビゲーション パネルで [Uptime Checks] をクリックし、[Create an Uptime Check] をクリックします。

  3. チェックに Check Hello World などのタイトルを指定してから、[次へ] をクリックします。

  4. [ターゲット] セクションで、稼働時間チェックのモニタリング対象を指定します。

    1. App Engine にデプロイしたため、[Resource Type] を [URL] ではなく [App Engine] に変更します(URL は Compute Engine インスタンスでカスタム URL を生成するためのものです)。
    2. 稼働時間チェックでモニタリングする Service を選択します。
    3. [Path] を空白のままにすると、デフォルトでメイン インデックス ページが表示されます。
    4. [チェック頻度] は、デフォルトの [1] 分のままにします。
    5. [次へ] をクリックします。
  5. [レスポンスの確認] フィールドはデフォルト値のままにして、[次へ] をクリックします。

  6. [アラートと通知] セクションで、アラートが発生した場合の通知方法を指定します。

    • トグルのラベルが [アラートが有効] になっていることを確認します。
    • 名前と期間のフィールドはデフォルト値のままにします。
    • アラート ポリシーに通知チャネルを追加するには、[通知チャネル] というラベルのテキスト ボックスで ]メニュー] をクリックします。追加するチャネルを選択し、[OK] をクリックします。通知は、チャネルタイプごとにアルファベット順にグループ化されます。

      チェックボックス リストにエントリを追加するには、[通知チャネルを管理] をクリックし、指示に従います。このダイアログに戻ったら、[更新] をクリックします。

  7. [作成] をクリックします。作成アクションが成功すると、Check and alert created というメッセージが表示され、その後 [Uptime checks] ダッシュボード ページが表示されます。

    この [Uptime checks] ダッシュボードには、新しい稼働時間チェックが一覧表示されます。チェック名をクリックすると、その稼働時間チェックの詳細ビューが開きます。このビューには複数のグラフが表示され、稼働時間の割合と構成情報が表示されます。また、構成済みのアラート ポリシーも一覧表示されます。ポリシーを表示するには、その名前をクリックします。

    [アラート] ページから開始しても、アラート ポリシーを確認できます。アラートページの [ポリシー] ペインには、ポリシーのサブセットが一覧表示されます。すべてのポリシーを一覧表示するには、[すべてのポリシーを見る] をクリックします。

停止のシミュレーション

稼働時間チェックが作成されたので、HTTP 200 OK レスポンスではなく HTTP 404 Sorry, we can't find that page エラーで応答するようにアプリを変更して、停止をシミュレートできます。

  1. 次のコードを見ると、Hello World アプリは「Hello World!」というメッセージだけを返していて、レスポンスのステータス コードはデフォルトの 200 OK になっています。このコードを Hello World アプリで表示するには、ビュー関数を使用します。

    # Copyright 2019 Google LLC All Rights Reserved.
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #     http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    
    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/', methods=['GET'])
    def say_hello():
        return "Hello, world!"
    
    if __name__ == '__main__':
        app.run(host='127.0.0.1', port=8080, debug=True)
    
  2. Hello World アプリから HTTP 404 エラーコードが返されるようにするには、return 行を変更して戻り値の 2 番目の部分に 404 値を追加します。

    return 'Hello World', 404
  3. 新たに意図的にエラーを組み込んだアプリをデプロイします。

    gcloud app deploy

    30 分以内に、稼働時間チェックの失敗を示すメール メッセージが送信されます。

クリーンアップ

このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。

課金をなくす最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。

プロジェクトを削除する手順は次のとおりです。

  1. Cloud Console で [リソースの管理] ページに移動します。

    [リソースの管理] に移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。