稼働時間アラートの設定

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

目標

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

料金

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

始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

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

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

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

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

  5. Google 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 コンソールに移動
  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. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.