设置正常运行时间提醒

本教程介绍如何使用 Cloud Monitoring 为在 App Engine 柔性环境中运行的 Python Hello World 应用设置正常运行时间提醒。正常运行时间提醒可让您在应用不提供流量时接收通知。您还可以为在 Compute EngineGoogle Kubernetes Engine (GKE) 上运行的应用设置正常运行时间提醒。

目标

  • 运行基本的 Hello World 应用。
  • 创建一个监视应用是否返回 HTTP '200' 状态码的正常运行时间检查。
  • 创建一个在正常运行时间检查失败时向您发送电子邮件的提醒。
  • 重新启动该应用以触发提醒。

费用

Monitoring 目前免费提供给 Beta 版用户。

准备工作

  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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

克隆示例应用

示例应用可在 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. 要查看返回的消息,请在浏览器中输入以下网址:

    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

    转到 Monitoring

  2. 在导航窗格中,点击正常运行时间检查,然后点击创建正常运行时间检查

  3. 检查标题(例如 Check Hello World),然后点击下一步

  4. 目标部分中,您可以指定要监控的正常运行时间检查:

    1. 由于您已部署到 App Engine,因此请将资源类型更改为 App Engine,而不是网址。(网址用于在 Compute Engine 实例上生成自定义网址。)
    2. 选择要通过正常运行时间检查监控的服务
    3. 路径留空,以默认为主索引页面。
    4. 检查频率保留为默认值 1 分钟。
    5. 点击下一步
  5. 保留响应验证字段的默认值,然后点击下一步

  6. 提醒和通知部分,您可以指定在发生提醒时要如何接收通知:

    • 确保切换开关的标签为已启用提醒 (Alerting is enabled)。
    • 保留名称和时长字段的默认值。
    • 要向提醒政策添加通知渠道,请在通知渠道文本框中点击菜单。选择要添加的渠道,然后点击确定。系统会针对每种渠道类型按字母顺序排列通知。

      要向复选框列表添加条目,请点击管理通知渠道,然后按照说明操作。返回此对话框后,点击刷新

  7. 点击创建。创建操作成功后,会显示检查和提醒已创建消息,然后显示正常运行时间检查信息中心页面。

    正常运行时间检查信息中心内会列出新的正常运行时间检查。点击检查名称可打开该正常运行时间检查的详细信息视图。此视图会显示多个图表,显示正常运行时间百分比和配置信息,并列出已配置的提醒政策。如需查看某个政策,请点击其名称。

    您还可以从提醒页面查看提醒政策。在提醒页面中,政策窗格会列出一部分政策。如需查看所有政策的列表,请点击查看所有政策

模拟中断

现在您已创建一个正常运行时间检查,您可以通过更改应用以响应 HTTP 404 Sorry, we can't find that page 错误(而不是 HTTP 200 OK 响应)来模拟中断。

  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 错误代码,请在返回值的第二部分添加 404 值以更改返回行。

    return 'Hello World', 404
  3. 部署故意损坏后的新应用。

    gcloud app deploy

    在半小时内,您会收到一封电子邮件,指出您的正常运行时间检查失败。

清理

为避免因本教程中使用的资源导致您的 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.