稼働時間チェックの管理

稼働時間チェックは、リソースが応答するかどうかを確認するためにリソースに送信されるリクエストです。稼働時間チェックを使用して、VM インスタンス、App Engine サービス、URL、AWS ロードバランサが使用できるかを判断できます。

稼働時間チェックが失敗した場合にインシデントを作成するアラート ポリシーを作成することで、リソースが使用できるかをモニタリングできます。アラート ポリシーは、メールまたは別のチャネルで通知するように構成できます。その通知には、応答に失敗したリソースに関する詳細が含まれます。 Monitoring の稼働時間チェック ダッシュボードで稼働時間チェックの結果を確認するオプションもあります。

このページでは、次の方法について説明します。

  • 新しい稼働時間チェックの作成
  • ダッシュボードでの稼働時間チェックの確認
  • 稼働時間チェックの編集
  • 稼働時間チェックの削除

料金ページと稼働時間チェックのモニタリングを説明するページへのリンクについては、次のステップ セクションをご覧ください。

始める前に

  1. 稼働時間チェックの使用は、サービスを保護するファイアウォールの影響を受けます。

    • チェックするリソースが公開されていない場合は、稼働時間チェック サーバーからの着信トラフィックを許可するようにリソースのファイアウォールを構成する必要があります。IP アドレスのリストをダウンロードするには、IP アドレスの取得をご覧ください。
    • チェックするリソースが外部 IP アドレスを持たない場合、稼働時間チェックはそのリソースにアクセスできません。
  2. 稼働時間チェックではページアセットの読み込みや JavaScript の実行は行われません。また稼働時間チェックのデフォルト構成には認証が含まれません。

    HTTP と HTTPS については、レスポンスが別の URL へのリダイレクトである場合、チェックはその URL からデータを取得します。最後にデータを評価し、チェックが成功したかどうかを判断します。

    成功となるには、これらの条件が必要です。

    • HTTP ステータスが Success
    • データに必要とされるコンテンツは指定されていない、もしくは必要なコンテンツが存在する。

稼働時間チェックの作成

ここでは、稼働時間チェックを作成して構成する方法について説明します。

API の使用

API

projects.uptimeCheckConfigs.create メソッドを呼び出します。メソッドのパラメータを次のように設定します。

  • parent: 必須。稼働時間チェックを作成するプロジェクトの名前を指定する必要があります。[PROJECT_ID] を実際の Google Cloud プロジェクト ID に置き換えます。書式は次のとおりです。

    projects/[PROJECT_ID]
    
  • リクエスト本文には、新しい稼働時間チェックの UptimeCheckConfig オブジェクトを含める必要があります。このページでは、いくつかのフィールドについてのみ説明します。このオブジェクトとそのフィールドの詳細については、UptimeCheckConfig のドキュメントをご覧ください。

    • 構成オブジェクトの name フィールドは空白のままにします。このフィールドは、システムがレスポンス構成オブジェクトを作成するときに設定します。

    • HTTP または HTTPS チェックを構成する場合は、UptimeCheckConfig オブジェクトの HttpCheck フィールドに入力する必要があります。このオブジェクトでは、requestMethod フィールドを GET または POST に設定します。このフィールドを省略するか METHOD_UNSPECIFIED に設定すると、GET リクエストが発行されます。

      POST リクエストを構成する場合は、contentType フィールドと body フィールドに入力します。

create メソッドは、新しい構成に応じた UptimeCheckConfig オブジェクトを返します。

作成された稼働時間チェックの構成が想定どおりに機能しない場合は、このページのチェックの失敗セクションをご覧ください。

C#

public static object CreateUptimeCheck(string projectId, string hostName,
    string displayName)
{
    // Define a new config.
    var config = new UptimeCheckConfig()
    {
        DisplayName = displayName,
        MonitoredResource = new MonitoredResource()
        {
            Type = "uptime_url",
            Labels = { { "host", hostName } }
        },
        HttpCheck = new UptimeCheckConfig.Types.HttpCheck()
        {
            Path = "/",
            Port = 80,
        },
        Timeout = TimeSpan.FromSeconds(10).ToDuration(),
        Period = TimeSpan.FromMinutes(5).ToDuration()
    };
    // Create a client.
    var client = UptimeCheckServiceClient.Create();
    ProjectName projectName = new ProjectName(projectId);
    // Create the config.
    var newConfig = client.CreateUptimeCheckConfig(
        projectName,
        config,
        CallSettings.FromExpiration(
            Expiration.FromTimeout(
                TimeSpan.FromMinutes(2))));
    Console.WriteLine(newConfig.Name);
    return 0;
}

Java

private static void createUptimeCheck(
    String projectId, String displayName, String hostName, String pathName) throws IOException {
  CreateUptimeCheckConfigRequest request =
      CreateUptimeCheckConfigRequest.newBuilder()
          .setParent(ProjectName.format(projectId))
          .setUptimeCheckConfig(
              UptimeCheckConfig.newBuilder()
                  .setDisplayName(displayName)
                  .setMonitoredResource(
                      MonitoredResource.newBuilder()
                          .setType("uptime_url")
                          .putLabels("host", hostName))
                  .setHttpCheck(HttpCheck.newBuilder().setPath(pathName).setPort(80))
                  .setTimeout(Duration.newBuilder().setSeconds(10))
                  .setPeriod(Duration.newBuilder().setSeconds(300)))
          .build();
  try (UptimeCheckServiceClient client = UptimeCheckServiceClient.create()) {
    UptimeCheckConfig config = client.createUptimeCheckConfig(request);
    System.out.println("Uptime check created: " + config.getDisplayName());
  } catch (Exception e) {
    usage("Exception creating uptime check: " + e.toString());
    throw e;
  }
}

Go


// create creates an example uptime check.
func create(w io.Writer, projectID string) (*monitoringpb.UptimeCheckConfig, error) {
	ctx := context.Background()
	client, err := monitoring.NewUptimeCheckClient(ctx)
	if err != nil {
		return nil, fmt.Errorf("NewUptimeCheckClient: %v", err)
	}
	defer client.Close()
	req := &monitoringpb.CreateUptimeCheckConfigRequest{
		Parent: "projects/" + projectID,
		UptimeCheckConfig: &monitoringpb.UptimeCheckConfig{
			DisplayName: "new uptime check",
			Resource: &monitoringpb.UptimeCheckConfig_MonitoredResource{
				MonitoredResource: &monitoredres.MonitoredResource{
					Type: "uptime_url",
					Labels: map[string]string{
						"host": "example.com",
					},
				},
			},
			CheckRequestType: &monitoringpb.UptimeCheckConfig_HttpCheck_{
				HttpCheck: &monitoringpb.UptimeCheckConfig_HttpCheck{
					Path: "/",
					Port: 80,
				},
			},
			Timeout: &duration.Duration{Seconds: 10},
			Period:  &duration.Duration{Seconds: 300},
		},
	}
	config, err := client.CreateUptimeCheckConfig(ctx, req)
	if err != nil {
		return nil, fmt.Errorf("CreateUptimeCheckConfig: %v", err)
	}
	fmt.Fprintf(w, "Successfully created uptime check %q\n", config.GetDisplayName())
	return config, nil
}

Node.js

// Imports the Google Cloud client library
const monitoring = require('@google-cloud/monitoring');

// Creates a client
const client = new monitoring.UptimeCheckServiceClient();

/**
 * TODO(developer): Uncomment and edit the following lines of code.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const hostname = 'mydomain.com';

const request = {
  // i.e. parent: 'projects/my-project-id'
  parent: client.projectPath(projectId),
  uptimeCheckConfig: {
    displayName: 'My Uptime Check',
    monitoredResource: {
      // See the Uptime Check docs for supported MonitoredResource types
      type: 'uptime_url',
      labels: {
        host: hostname,
      },
    },
    httpCheck: {
      path: '/',
      port: 80,
    },
    timeout: {
      seconds: 10,
    },
    period: {
      seconds: 300,
    },
  },
};

// Creates an uptime check config for a GCE instance
const [uptimeCheckConfig] = await client.createUptimeCheckConfig(request);
console.log('Uptime check created:');
console.log(`ID: ${uptimeCheckConfig.name}`);
console.log(`Display Name: ${uptimeCheckConfig.displayName}`);
console.log('Resource: %j', uptimeCheckConfig.monitoredResource);
console.log('Period: %j', uptimeCheckConfig.period);
console.log('Timeout: %j', uptimeCheckConfig.timeout);
console.log(`Check type: ${uptimeCheckConfig.check_request_type}`);
console.log(
  'Check: %j',
  uptimeCheckConfig.httpCheck || uptimeCheckConfig.tcpCheck
);
console.log(
  `Content matchers: ${uptimeCheckConfig.contentMatchers
    .map(matcher => matcher.content)
    .join(', ')}`
);
console.log(`Regions: ${uptimeCheckConfig.selectedRegions.join(', ')}`);

PHP

use Google\Cloud\Monitoring\V3\UptimeCheckServiceClient;
use Google\Cloud\Monitoring\V3\UptimeCheckConfig;
use Google\Api\MonitoredResource;

/**
 * Example:
 * ```
 * create_uptime_check($projectId, 'myproject.appspot.com', 'Test Uptime Check!');
 * ```
 *
 * @param string $projectId Your project ID
 * @param string $hostName
 * @param string $displayName
 */
function create_uptime_check($projectId, $hostName = 'example.com', $displayName = 'New uptime check')
{
    $uptimeCheckClient = new UptimeCheckServiceClient([
        'projectId' => $projectId,
    ]);

    $monitoredResource = new MonitoredResource();
    $monitoredResource->setType('uptime_url');
    $monitoredResource->setLabels(['host' => $hostName]);

    $uptimeCheckConfig = new UptimeCheckConfig();
    $uptimeCheckConfig->setDisplayName($displayName);
    $uptimeCheckConfig->setMonitoredResource($monitoredResource);

    $uptimeCheckConfig = $uptimeCheckClient->createUptimeCheckConfig(
        $uptimeCheckClient->projectName($projectId),
        $uptimeCheckConfig
    );

    printf('Created an uptime check: %s' . PHP_EOL, $uptimeCheckConfig->getName());
}

Python

def create_uptime_check_config(project_name, host_name=None,
                               display_name=None):
    config = monitoring_v3.types.uptime_pb2.UptimeCheckConfig()
    config.display_name = display_name or 'New uptime check'
    config.monitored_resource.type = 'uptime_url'
    config.monitored_resource.labels.update(
        {'host': host_name or 'example.com'})
    config.http_check.request_method = monitoring_v3.enums.UptimeCheckConfig.HttpCheck.RequestMethod.GET
    config.http_check.path = '/'
    config.http_check.port = 80
    config.timeout.seconds = 10
    config.period.seconds = 300

    client = monitoring_v3.UptimeCheckServiceClient()
    new_config = client.create_uptime_check_config(project_name, config)
    pprint.pprint(new_config)
    return new_config

Ruby

def create_uptime_check_config project_id: nil, host_name: nil, display_name: nil
  require "google/cloud/monitoring"

  client = Google::Cloud::Monitoring.uptime_check_service
  project_name = client.project_path project: project_id
  config = {
    display_name:       display_name.nil? ? "New uptime check" : display_name,
    monitored_resource: {
      type:   "uptime_url",
      labels: { "host" => host_name.nil? ? "example.com" : host_name }
    },
    http_check:         { path: "/", port: 80 },
    timeout:            { seconds: 10 },
    period:             { seconds: 300 }
  }
  new_config = client.create_uptime_check_config \
    parent:              project_name,
    uptime_check_config: config
  puts new_config.name
  new_config
end

稼働時間チェックの結果が Monitoring に送信され始めるまでに、最大 5 分の遅延が発生する可能性があります。その間、稼働時間チェック ダッシュボードには「データがありません」というステータスが表示されます。

Cloud Console の使用

Cloud Console を使用して稼働時間チェックを作成するプロセスが更新されています。このセクションでは、新しいフローと従来のフローを使用して稼働時間チェックを作成する方法について説明します。両方のフローの最初の数ステップは同じです。 新しいフローと従来のフローのどちらを使用しているかは、[稼働時間チェックの作成] フォームでわかります。

新しいフロー

  1. Cloud Console で、[モニタリング] を選択します。

    [Monitoring] に移動

  2. [稼働時間チェック] をクリックします。

  3. [稼働時間チェックの作成] をクリックします。

  4. [稼働時間チェックの作成] ウィンドウが次のスクリーンショットのような場合は、次の手順に進みます。そうではない場合は、このテーブルの [従来のフロー] タブをクリックして、次の手順に進みます。

    稼働時間チェック ダイアログを作成。

  5. 稼働時間チェックを説明するタイトルを入力し、[次へ] をクリックします。

  6. 稼働時間チェックのターゲットを指定します。

    1. [プロトコル] でプロトコルを選択します。HTTPHTTPSTCP のオプションがあります。

    2. 次のリソースタイプのいずれか 1 つを選択します。

      • URL: 任意の IPv4 アドレスまたはホスト名。パスとポートは別々に入力します。
      • [App Engine]: App Engine アプリケーション(モジュール)
      • [Instance]: Compute Engine または AWS EC2 インスタンス
      • [Elastic Load Balancer]: AWS ロードバランサ
    3. プロトコル固有のフィールドを入力します。

      • TCP チェックでは、ポートを入力します。

      • HTTP チェックと HTTPS チェックでは、ホストまたはリソース内のパスを入力するオプションがあります。これらのプロトコルを使用するすべての稼働時間チェックは、http://target/path にリクエストを送信します。この式において、URL リソースでは、target はホスト名または IP アドレスです。 App Engine リソースでは、target はサービス名に由来するホスト名です。インスタンスとロードバランサのリソースでは、target はリソースまたはリソースのグループに指定した名前に由来する IP アドレスです。

        path フィールドを空白のままにするか、値を / に設定すると、リクエストは http://target/ に発行されます。

        URL リソース example.com/tester に稼働時間チェックを発行するには、ホスト名フィールドを example.com に、パスフィールドを /tester に設定します。

        //hello をサポートするコーディネーターによってサーバーを App Engine にデプロイしたとします。パスフィールドを空白のままにした場合、稼働時間チェックが / ハンドラに送信されます。稼働時間チェックを /hello ハンドラに発行するには、パスフィールドの値を /hello に設定します。

    4. リソース固有のフィールドを入力します。

      • URL リソースでは、ホスト名フィールドにホスト名を入力します。たとえば、「example.com」と入力します。

      • App Engine リソースでは、[サービス] フィールドにサービス名を入力します。

      • エラスティック ロードバランサインスタンスのリソースの場合は、次のフィールドに入力します。

        • 単一のインスタンスまたはロードバランサに稼働時間チェックを発行するには、[適用先] フィールドで [Single] を選択し、メニューを使用して特定のインスタンスまたはロードバランサを選択します。
        • モニタリング グループに稼働時間チェックを発行するには、[適用先] フィールドで [Group] を選択し、メニューを使用してグループ名を選択します。
    5. [チェックの頻度] フィールドでは、稼働時間チェックの実行頻度を制御します。デフォルト値のままにすることも、オプションのメニューから値を選択することもできます。

    6. チェッカー リージョンを構成するか、SSL 証明書、認証、ヘッダー、および HTTP チェックと HTTPS チェックのポートを構成するには、[その他のターゲット オプション] をクリックします。

      • リージョン: 稼働時間チェックがリクエストを受信するリージョンを選択します。稼働時間チェックには少なくとも 3 つのチェッカーが必要です。 米国を除くすべてのリージョンに 1 つのチェッカーがあり、米国には 3 つのチェッカーがあります。デフォルト設定の [Global] にはすべてのリージョンが含まれます。
      • General: 仮想ホストをチェックする場合に入力します。このフィールドは TCP チェックには使用できません。
      • Port: ポート番号を指定します。
      • Custom Headers: カスタム ヘッダーを追加し、必要に応じて暗号化します。暗号化すると、ヘッダーの値はフォームに表示されません。 認証に関連するヘッダーを他のユーザーに表示しないように暗号化を使用します。

      • [Authentication]: 単一のユーザー名とパスワードを指定します。これらの値は Authorization ヘッダーとして送信されます。ここで値を設定する場合、これとは別に Authorization ヘッダーを設定しないでください。Authorization ヘッダーを設定する場合は、ここに値を設定しないでください。フォームではパスワードは常に非表示です。このフィールドは TCP チェックには使用できません。

      • SSL 証明書の検証: URL リソースに HTTPS を選択すると、デフォルトでサービスは HTTPS で接続しようとして、SSL 証明書を検証します。URL に無効な証明書がある場合、稼働時間チェックは失敗します。無効な証明書には、期限切れの証明書、自己署名証明書、ドメイン名が一致しない証明書、AIA 拡張機能を使用する証明書が含まれます。

        HTTPS 稼働時間チェックによって SSL 証明書を検証させるには、[SSL 証明書を検証する] が選択されていることを確認します。

        SSL 証明書の検証を無効にするには、[SSL 証明書を検証する] がクリアされていることを確認します。

        Authority Information Access(AIA)拡張機能を使用した SSL 証明書がある場合は、SSL 証明書の検証を無効にする必要があります。これらのタイプの証明書はサポートされておらず、検証シーケンスは失敗します。 通常、エラーメッセージは「10000 ミリ秒の SSL ハンドシェイク エラーで応答」です。

        指標 monitoring.googleapis.com/uptime_check/time_until_ssl_cert_expires では、証明書が期限切れになる前に通知するアラートを作成できます。詳細については、サンプル ポリシー: 稼働時間チェック ポリシーをご覧ください。

        [SSL 証明書を検証する] チェックボックスを選択オンにします。

    7. [次へ] をクリックします。

  7. [レスポンスの検証] ペインに入力します。

    • オプションのメニューから [レスポンスのタイムアウト] を選択します。160 秒の範囲から任意の値を選択できます。このタイムアウト時間内に複数のロケーションからレスポンスを受け取らなかった場合、稼働時間チェックは失敗となります。 いずれかのロケーションがレスポンスすると、稼働時間チェックは合格となります。
    • コンテンツ マッチングでは、トグルラベルが [コンテンツ マッチングが有効] になっていることを確認します。

      • オプションのメニューから [レスポンスのコンテンツのマッチタイプ] を選択します。 このフィールドは、レスポンスのコンテンツと返されたデータをどのように比較するかを指定します。たとえば、レスポンスのコンテンツが abcd で、コンテンツのマッチタイプが [含む] の場合、レスポンスのデータに abcd が含まれていれば、稼働時間チェックは成功となります。レスポンスに abcd が含まれていない場合、稼働時間チェックは失敗します。
      • [レスポンスのコンテンツ] を入力します。1024 バイト以下の文字列を指定する必要があります。API では、これは ContentMatcher オブジェクトです。
    • 稼働時間チェックを Cloud Logging に送信しない場合は、[チェックの失敗をログする] をオフにします。

    • [次へ] をクリックします。

  8. [アラートと通知] ペインに入力します。

    稼働時間チェックをモニタリングする場合は、アラート ポリシーを作成します。 アラート ポリシーを作成すると、稼働時間チェックに失敗したときにインシデントが作成され、ポリシーに関連付けられているすべての通知チャネルに通知が送信されます。たとえば、ポリシーにメールアドレスを追加すると、インシデントの作成時にそのアドレスにメールが送信されます。

    このステップでアラート ポリシーを作成することも、チェックの作成後にアラート ポリシーを追加することもできます。 稼働時間チェックのアラート ポリシーの作成は、ボタンで制御します。

    • ボタンのテキストが [アラートを作成しない] の場合、アラート ポリシーは作成されず、すべてのフィールドが無効になります。アラート ポリシーを作成する場合は、ボタンをクリックします。
    • ボタンのテキストが [アラートを作成する] の場合、アラート ポリシーが作成され、すべてのフィールドが有効になります。アラート ポリシーを作成しない場合は、ボタンをクリックします。

    このフローの一環としてアラート ポリシーを作成するには、次のとおりにします。

    1. ボタンのテキストが [アラートを作成する] になっていることを確認します。
    2. 名前フィールドに、アラート ポリシーの名前を入力するか、デフォルトの名前を使用します。
    3. 1 つ以上の通知チャネルをアラート ポリシーに追加するには、[通知チャネル] とラベル付けされたテキスト ボックスで [メニュー] をクリックします。追加するチャネルを選択し、[OK] をクリックします。 通知チャネルは、チャネルタイプごとにアルファベット順にグループ化されます。

      アラート ポリシーに追加する通知チャネルがリストにない場合は、[通知チャネルを管理する] をクリックします。

      [更新] ボタンと [チャンネルを管理する] ボタンを表示する通知ダイアログ。

      新しいブラウザタブの [通知チャネル] ウィンドウに移動します。通知チャネルを追加し、このタブに戻って [更新] をクリックし、アラート ポリシーに追加する通知チャネルを選択します。

    4. 期間フィールドで、稼働時間チェックの失敗のインシデントが作成されるまでの時間を選択します。デフォルトでは、少なくとも 2 つのリージョンで 1 分間の稼働時間チェックの失敗が報告された場合に、アラート ポリシーが構成されます。

    アラート ポリシーの無効化、編集、削除については、ポリシーの管理をご覧ください。

  9. 稼働時間チェックの構成を確認するには、[TEST] をクリックします。結果が期待どおりでない場合は、下記のチェックの失敗セクションを参照して構成を修正し、検証ステップを繰り返します。

  10. [作成] をクリックします。必要なデータがない場合、保存操作が失敗し、ダイアログ ボタンの横にデータが不足しているフィールドの一覧が表示されます。変更を保存すると、[Uptime check created] ダイアログが表示されます。

従来のフロー

  1. Cloud Console で、[モニタリング] を選択します。

    [Monitoring] に移動

  2. [稼働時間チェック] をクリックします。

  3. [稼働時間チェックの作成] をクリックします。

  4. [稼働時間チェックの作成] ウィンドウが次のスクリーンショットのようになっている場合は、次の手順に進みます。それ以外の場合は、この表の [新しいフロー] タブをクリックして、次の手順に進みます。

    稼働時間チェック ダイアログの従来の表示。

  5. [New uptime check] ウィンドウで、基本オプションの説明に従って、稼働時間チェックに関するフィールドに値を入力します。

  6. (省略可)[SHOW ADVANCED OPTIONS] をクリックします。詳細オプションについて詳しくは、詳細オプションをご覧ください。

  7. 稼働時間チェックの構成を確認するには、[TEST] をクリックします。結果が期待どおりでない場合は、下記のチェックの失敗セクションを参照して構成を修正し、検証ステップを繰り返します。

  8. [SAVE] をクリックします。必要なデータがない場合、保存操作が失敗し、ダイアログ ボタンの横にデータが不足しているフィールドの一覧が表示されます。変更を保存すると、[Uptime check created] ダイアログが表示されます。

  9. (省略可)稼働時間チェックの失敗を通知するには、[CREATE ALERET POLICY] をクリックします。アラート ポリシーを今すぐ作成しない場合は、[No, Thanks] をクリックします。稼働時間チェックのアラート ポリシーはいつでも作成できます。詳細については、稼働時間チェックのモニタリングをご覧ください。

    [Uptime check created] ダイアログ。

稼働時間チェックの結果が Monitoring に送信され始めるまでに、最大 5 分の遅延が発生する可能性があります。その間、稼働時間チェック ダッシュボードには「データがありません」というステータスが表示されます。

従来のインターフェースの基本オプション

このセクションでは、Cloud Console の従来のインターフェースまたは API を使用して稼働時間チェックを作成するときに使用するフィールドについて説明します。API を使用する場合は、対応する値を UptimeCheckConfig オブジェクトで指定します。

  1. Title: チェックを識別するための名前です。例: Example.com uptime check

  2. Check Type: HTTPHTTPSTCP プロトコルから選択します。

    API を使用していて、チェックタイプが HTTP または HTTPS の場合は、POST リクエストを発行するようにチェックを構成できます。上記の API の例をご覧ください。

    HTTPS を選択すると、サービスは HTTPS で接続しようとして、SSL 証明書を検証します。デフォルトでは、期限切れの証明書または自己署名証明書では稼働時間チェックは失敗します。

    SSL 証明書の検証を無効にするには、[SSL 証明書の検証] チェックボックスをオフにします。

  3. Resource type: 次のリソースタイプのいずれか 1 つを選択します。

    • [App Engine]: App Engine アプリケーション(モジュール)
    • [Elastic Load Balancer]: AWS ロードバランサ
    • Instance: Compute Engine または AWS EC2 インスタンス。API では、これは gce_instanceaws_ec2_instance に分かれています。
    • URL: 任意の IPv4 アドレスまたはホスト名。パスとポートは別々に入力します。
  4. プロトコル固有のフィールドを入力します。

    • TCP チェックでは、ポートを入力します。

    • HTTP チェックと HTTPS チェックでは、ホストまたはリソース内のパスを入力するオプションがあります。これらのプロトコルを使用するすべての稼働時間チェックは、http://target/path にリクエストを送信します。この式において、URL リソースでは、target はホスト名または IP アドレスです。 App Engine リソースでは、target はサービス名に由来するホスト名です。インスタンスとロードバランサでは、target はリソースまたはリソースのグループに指定した名前に由来する IP アドレスです。

      path フィールドを空白のままにするか、値を / に設定すると、HTTP リクエストは http://target/ に発行されます。

      URL リソース example.com/tester に稼働時間チェックを発行するには、ホスト名フィールドを example.com に、パスフィールドを /tester に設定します。

      //hello をサポートするコーディネーターによってサーバーを App Engine にデプロイしたとします。パスフィールドを空白のままにした場合、稼働時間チェックが / ハンドラに送信されます。稼働時間チェックを /hello ハンドラに発行するには、パスフィールドの値を /hello に設定します。

  5. リソース固有のフィールドを入力します。

    • [リソースタイプ] として [URL] を選択した場合は、ホスト名を入力します。 たとえば、「example.com」と入力します。

    • [リソースタイプ] として [App Engine] を選択した場合は、サービス名を選択します。

    • [リソースタイプ] として [エラスティック ロードバランサ] または [インスタンス] を選択した場合は、稼働時間チェックを Single のリソースと Group のリソースのどちらに適用するかを指定します。インスタンスまたはロードバランサに稼働時間チェックを適用するには、[Single] を選択し、特定のインスタンスまたはロードバランサを選択します。稼働時間チェックをインスタンスのグループまたはロードバランサのグループに適用するには、[Group] を選択してグループ名を選択します。API を使用する場合は、モニタリング対象リソースのリストのとおりに、モニタリング対象リソースと必要なリソースラベルを記述します。

  6. Check type: 151015 分から選択します。この値により、稼働時間チェックの頻度が決定されます。たとえば 5 分を選択した場合、各ロケーションで稼働時間チェックが 5 分ごとに実行されます。

従来のインターフェースの詳細オプション

すべての詳細設定を表示するには、[SHOW ADVANCED OPTIONS] をクリックしてください。使用可能な詳細設定はチェックの種類によって異なります。

  • General: 仮想ホストをチェックする場合に入力します。このフィールドは TCP チェックには使用できません。
  • Port: ポート番号を指定します。
  • Response Content Match Type: レスポンスのコンテンツに入力された文字列を実際に返されたデータとどのように比較するかを指定します。たとえば、レスポンスのコンテンツが abcd で、[Contains] のコンテンツの一致タイプを選択した場合、レスポンス データに abcd が含まれていれば稼働時間チェックが成功します。レスポンスに abcd が含まれていない場合、稼働時間チェックは失敗します。
  • Response content: 文字列(最大 1,024 バイト)を入力します。API では、これは ContentMatcher オブジェクトです。

  • Locations: チェックがリクエストを受け取るリージョンを選択します。デフォルト設定は [Global] で、チェッカーの数は 6 です。チェッカーは 3 つ以上必要です。United States リージョンには、チェッカーが 3 つあります。それ以外のリージョンには、チェッカーが 1 つあります。

  • Custom Headers: カスタム ヘッダーを追加し、必要に応じて暗号化します。暗号化すると、ヘッダーの値はフォームに表示されません。認証に関連するヘッダーをチームの他のメンバーに見られたくない場合は、暗号化を使用してください。

  • Healthcheck Timeout: タイムアウトを 160 秒の範囲で指定します。複数のロケーションからのヘルスチェックが、構成されたタイムアウト期間内にレスポンスを受け取らなかった場合、稼働時間チェックは失敗となります。レスポンスを受け取らなかったヘルスチェックが 1 つだけの場合、稼働時間チェックは失敗にはなりません。

  • [Authentication]: 単一のユーザー名とパスワードを指定します。これらの値は Authorization ヘッダーとして送信されます。ここで値を設定する場合、これとは別に Authorization ヘッダーを設定しないでください。Authorization ヘッダーを設定する場合は、ここに値を設定しないでください。フォームではパスワードは常に非表示です。このフィールドは TCP チェックには使用できません。

  • SSL Certificate Validation: [Validate SSL certificates] チェックボックスをオンにします。URL に無効な証明書がある場合、稼働時間チェックは失敗します。無効な証明書には、期限切れの証明書、ドメイン名が一致しない証明書、自己署名証明書が含まれます。SSL 証明書の検証は、URL リソースの HTTPS チェックでのみ使用できます。

    Authority Information Access(AIA)拡張機能を使用する SSL 証明書はサポートされていないため、検証シーケンスは失敗します。通常、エラーメッセージは「10000 ミリ秒の SSL ハンドシェイク エラーで応答」です。このタイプの SSL 証明書がある場合は、[SSL 証明書を検証する] チェックボックスをオフにしていることを確認します。

    指標 monitoring.googleapis.com/uptime_check/time_until_ssl_cert_expires では、証明書が期限切れになる前に通知するアラートを作成できます。サンプル ポリシー: 稼働時間チェック ポリシーをご覧ください。

稼働時間チェックで使用する識別子

稼働時間チェックが作成されると、Monitoring によって識別子が割り当てられます。この識別子は稼働時間チェック ID と呼ばれています。稼働時間チェック ID は次のように、新しく作成された稼働時間チェックのリソース名に埋め込まれます。

projects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID]

メソッド呼び出しのレスポンスで返された稼働時間チェック ID を使用して、稼働時間チェックの作成や一覧表示を行えます。稼働時間チェック ID は、[構成] セクションの下の [稼働時間の詳細] ウィンドウから確認することもできます。

稼働時間チェックの確認

Cloud Console で稼働時間チェックを作成する際、保存前にその構成をテストできます。

チェックの成功

次の 2 つの条件に当てはまる場合、稼働時間チェックが成功します。

  • HTTP ステータスが Success
  • レスポンスに必要なコンテンツが指定されていない、もしくは、レスポンスを検索して必要なコンテンツが見つかった。

チェックの失敗

以下に、稼働時間チェックが失敗する原因の一部を示します。

  • Connection Error - Refused: デフォルトの HTTP 接続タイプを使用している場合、HTTP リクエストに応答しているウェブサーバーがインストールされていることを確認します。これは、新しいインスタンスにウェブサーバーがインストールされていない場合に発生する可能性があります。Compute Engine のクイックスタートをご覧ください。HTTPS 接続タイプを使用する場合は、追加の構成手順を実行しなければならないことがあります。ファイアウォールの問題については、IP アドレスの取得をご覧ください。
  • 名前またはサービスが見つかりません: ホスト名が正しくない可能性があります。
  • 403 Forbidden: サービスが稼働時間チェッカーにエラーコードを返しています。たとえば、Apache ウェブサーバーのデフォルト構成は、Amazon Linux ではこのコードを返しますが、他のいくつかの Linux バージョンではコード 200 (Success) を返します。Amazon Linux の LAMP チュートリアルまたはご使用のウェブサーバーのドキュメントをご覧ください。
  • 404 Not found: パスが正しくない可能性があります。
  • 408 Request timeout、またはレスポンスなし: ポート番号が正しくない、サービスが稼働していない、サービスがアクセスできない状態になっている、あるいはタイムアウト値が小さすぎる可能性があります。ファイアウォールが稼働時間サーバーからのトラフィックを許可していることを確認してください。詳しくは IP アドレスの取得をご覧ください。タイムアウト時間は、[Advanced Options] の [Healthcheck] で指定します。

稼働時間チェックを表示する

稼働時間チェックを表示するには、次の手順に従います。

Console

単一の稼働時間チェックの詳細ステータスを表示する方法は次のとおりです。

  1. Cloud Console で、[モニタリング] を選択します。

    [Monitoring] に移動

  2. [稼働時間チェック] をクリックします。

  3. [稼働時間の詳細] ウィンドウを表示するには、表示する稼働時間チェックを見つけて、稼働時間チェックの名前をクリックします。

    次のスクリーンショットは、「My Uptime Check」という名前の稼働時間チェックの稼働時間の詳細を示しています。

    稼働時間チェック ダッシュボードの例。

    [稼働時間の詳細] ウィンドウには以下の情報が含まれます。

    • 選択した時間間隔。デフォルトの間隔は 1 時間です。
    • 稼働時間チェックの名前。この例では、チェックの名前は My Uptime Check です。
    • 稼働率と平均レイテンシ。[Percent uptime] の値は、(S/T)*100 として計算されるパーセンテージです。ここで、S は成功したチェック レスポンスの数で、T は、すべてのロケーションからのチェック レスポンスの合計数です。グループ チェックの場合、S および T の値は、現在のすべてのグループ メンバーにわたって合計されます。

      たとえば、すべてのリージョンで 1 分間の稼働時間チェックを 25 分間にわたって実行すると、6 つのロケーションそれぞれから 25 件のリクエストが取得されるため、合計で 150 件のリクエストになります。また、ダッシュボードで 83.3% の稼働時間がレポートされた場合、150 件のリクエストのうち 125 件が成功したことを意味します。

    • [Passed checks] と [Uptime check latency] ペインには、渡されたチェックの数と各チェックのレイテンシを時間の関数としてグラフで表示します。

    • [Current status] ペインには、最新のチェックのステータスが表示されます。リージョンの隣にあるチェックマークのついた緑色の丸は、そのリージョンで最後に実行されたチェックが成功したことを示します。バツ印のついた赤い丸は失敗を示します。

    • [Configuration] ペインに、稼働時間チェックの構成が表示されます。このデータは、稼働時間チェックの作成時に割り当てられます。[Check Id] の値は、API 呼び出しの [UPTIME_CHECK_ID] 値に対応しています。

    • [Alert Policy] ペインには、関連するアラート ポリシーの情報が表示されます。このサンプル ダッシュボードでは、1 つのアラート ポリシーが構成されています。

C#

public static object GetUptimeCheckConfig(string configName)
{
    var client = UptimeCheckServiceClient.Create();
    UptimeCheckConfig config = client.GetUptimeCheckConfig(configName);
    if (config == null)
    {
        Console.Error.WriteLine(
            "No configuration found with the name {0}", configName);
        return -1;
    }
    Console.WriteLine("Name: {0}", config.Name);
    Console.WriteLine("Display Name: {0}", config.DisplayName);
    Console.WriteLine("Http Path: {0}", config.HttpCheck.Path);
    return 0;
}

Java

private static void getUptimeCheckConfig(String projectId, String checkName) throws IOException {
  try (UptimeCheckServiceClient client = UptimeCheckServiceClient.create()) {
    String fullCheckName = UptimeCheckConfigName.format(projectId, checkName);
    UptimeCheckConfig config = client.getUptimeCheckConfig(fullCheckName);
    if (config != null) {
      System.out.println(config.toString());
    } else {
      System.out.println(
          "No uptime check config found with name " + checkName + " in project " + projectId);
    }
  } catch (Exception e) {
    usage("Exception getting uptime check: " + e.toString());
    throw e;
  }
}

Go


// get is an example of getting an uptime check. resourceName should be
// of the form `projects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID]`.
func get(w io.Writer, resourceName string) (*monitoringpb.UptimeCheckConfig, error) {
	ctx := context.Background()
	client, err := monitoring.NewUptimeCheckClient(ctx)
	if err != nil {
		return nil, fmt.Errorf("NewUptimeCheckClient: %v", err)
	}
	defer client.Close()
	req := &monitoringpb.GetUptimeCheckConfigRequest{
		Name: resourceName,
	}
	config, err := client.GetUptimeCheckConfig(ctx, req)
	if err != nil {
		return nil, fmt.Errorf("GetUptimeCheckConfig: %v", err)
	}
	fmt.Fprintf(w, "Config: %v", config)
	return config, nil
}

Node.js

// Imports the Google Cloud client library
const monitoring = require('@google-cloud/monitoring');

// Creates a client
const client = new monitoring.UptimeCheckServiceClient();

/**
 * TODO(developer): Uncomment and edit the following lines of code.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const uptimeCheckConfigId = 'YOUR_UPTIME_CHECK_CONFIG_ID';

const request = {
  // i.e. name: 'projects/my-project-id/uptimeCheckConfigs/My-Uptime-Check
  name: client.projectUptimeCheckConfigPath(projectId, uptimeCheckConfigId),
};

console.log(`Retrieving ${request.name}`);

// Retrieves an uptime check config
const [uptimeCheckConfig] = await client.getUptimeCheckConfig(request);
console.log(`ID: ${uptimeCheckConfig.name}`);
console.log(`Display Name: ${uptimeCheckConfig.displayName}`);
console.log('Resource: %j', uptimeCheckConfig.monitoredResource);
console.log('Period: %j', uptimeCheckConfig.period);
console.log('Timeout: %j', uptimeCheckConfig.timeout);
console.log(`Check type: ${uptimeCheckConfig.check_request_type}`);
console.log(
  'Check: %j',
  uptimeCheckConfig.httpCheck || uptimeCheckConfig.tcpCheck
);
console.log(
  `Content matchers: ${uptimeCheckConfig.contentMatchers
    .map(matcher => matcher.content)
    .join(', ')}`
);
console.log(`Regions: ${uptimeCheckConfig.selectedRegions.join(', ')}`);

PHP

use Google\Cloud\Monitoring\V3\UptimeCheckServiceClient;

/**
 * Example:
 * ```
 * get_uptime_check($projectId, $configName);
 * ```
 *
 * @param string $projectId Your project ID
 * @param string $configName
 */
function get_uptime_check($projectId, $configName)
{
    $uptimeCheckClient = new UptimeCheckServiceClient([
        'projectId' => $projectId,
    ]);

    $uptimeCheck = $uptimeCheckClient->getUptimeCheckConfig($configName);

    print('Retrieved an uptime check:' . PHP_EOL);
    print($uptimeCheck->serializeToJsonString() . PHP_EOL);
}

Python

def get_uptime_check_config(config_name):
    client = monitoring_v3.UptimeCheckServiceClient()
    config = client.get_uptime_check_config(config_name)
    pprint.pprint(config)

Ruby

def get_uptime_check_config config_name
  require "google/cloud/monitoring"

  client = Google::Cloud::Monitoring.uptime_check_service
  config = client.get_uptime_check_config name: config_name
  pp config.to_h
  config
end

稼働時間チェックを編集する

稼働時間チェックのプロトコル、リソースタイプ、モニタリング対象リソースは変更できません。これらのフィールドを変更する場合は、適切な構成で稼働時間チェックを作成する必要があります。ただし、稼働時間チェックの他のすべてのフィールドは、チェックの作成後に変更できます。

稼働時間チェックに関連付けられたアラート ポリシーを編集するには、[Monitoring] ナビゲーションペインで [Alerting] をクリックし、編集するポリシーを選択して [Edit] をクリックします。

稼働時間チェックを編集するには、次の手順に従います。

Console

  1. Cloud Console で、[Monitoring] を選択します。

    [Monitoring] に移動

  2. [稼働時間チェック] をクリックします。

  3. 編集する稼働時間チェックを見つけ、次のいずれかの操作を行います。

    • クリック[その他] をクリックして、[編集] を選択します。
    • 稼働時間チェックの詳細を表示し、[Edit] をクリックします。
  4. 必要に応じてフィールドの値を変更します。一部のフィールドは変更できません。チェックのカスタム ヘッダーの値が非表示になっている場合は、表示できません。

  5. チェックが動作するかどうかを確認するには、[TEST] をクリックします。テストが失敗した場合は、チェックの失敗を参照して考えられる原因を特定します。

  6. [SAVE] をクリックします。

API

projects.uptimeCheckConfigs.patch メソッドを呼び出します。メソッドのパラメータを次のように設定します。

  • uptimeCheckConfig.name: 必須。これは REST URL の一部で、編集する稼働時間チェックのリソース名です。

    projects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID]
    

    [UPTIME_CHECK_ID] は create または list メソッドのレスポンスから取得できます。この ID は Cloud Console に表示されません。

  • updateMask: 任意。これは次のようなクエリ パラメータになります。?updateMask=[FIELD_LIST][FIELD_LIST] には、変更する UptimeCheckConfig オブジェクト内のフィールドをカンマ区切りのリストとして指定します。例:

    "resource.type,httpCheck.path"
    
  • リクエスト本文には、新しいフィールド値を指定した UptimeCheckConfig を含める必要があります。

updateMask が設定されている場合は、updateMask にリストされたフィールドについてのみ、既存構成の対応するフィールドが置換されます。サブフィールドが存在するフィールドについては、フィールド マスクのリストにフィールドだけ含まれ、サブフィールドが含まれていない場合でも、そのフィールド値に応じてサブフィールドの値が適宜置き換えられます。

updateMask が設定されていない場合、リクエスト本文中の構成が既存の構成全体と置き換わります。

patch メソッドは、変更後の構成が反映された UptimeCheckConfig オブジェクトを返します。

C#

public static object UpdateUptimeCheck(string configName,
    string newHttpPath, string newDisplayName)
{
    var client = UptimeCheckServiceClient.Create();
    var config = client.GetUptimeCheckConfig(configName);
    var fieldMask = new FieldMask();
    if (newDisplayName != null)
    {
        config.DisplayName = newDisplayName;
        fieldMask.Paths.Add("display_name");
    }
    if (newHttpPath != null)
    {
        config.HttpCheck.Path = newHttpPath;
        fieldMask.Paths.Add("http_check.path");
    }
    client.UpdateUptimeCheckConfig(config);
    return 0;
}

Java

private static void updateUptimeCheck(
    String projectId, String displayName, String hostName, String pathName) throws IOException {
  String fullCheckName = UptimeCheckConfigName.format(projectId, displayName);

  UpdateUptimeCheckConfigRequest request =
      UpdateUptimeCheckConfigRequest.newBuilder()
          .setUpdateMask(FieldMask.newBuilder().addPaths("http_check.path"))
          .setUptimeCheckConfig(
              UptimeCheckConfig.newBuilder()
                  .setName(fullCheckName)
                  .setMonitoredResource(
                      MonitoredResource.newBuilder()
                          .setType("uptime_url")
                          .putLabels("host", hostName))
                  .setHttpCheck(HttpCheck.newBuilder().setPath(pathName).setPort(80))
                  .setTimeout(Duration.newBuilder().setSeconds(10))
                  .setPeriod(Duration.newBuilder().setSeconds(300)))
          .build();
  try (UptimeCheckServiceClient client = UptimeCheckServiceClient.create()) {
    UptimeCheckConfig config = client.updateUptimeCheckConfig(request);
    System.out.println("Uptime check updated: \n" + config.toString());
  } catch (Exception e) {
    usage("Exception updating uptime check: " + e.toString());
    throw e;
  }
}

Go


// update is an example of updating an uptime check. resourceName should be
// of the form `projects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID]`.
func update(w io.Writer, resourceName, displayName, httpCheckPath string) (*monitoringpb.UptimeCheckConfig, error) {
	ctx := context.Background()
	client, err := monitoring.NewUptimeCheckClient(ctx)
	if err != nil {
		return nil, fmt.Errorf("NewUptimeCheckClient: %v", err)
	}
	defer client.Close()
	getReq := &monitoringpb.GetUptimeCheckConfigRequest{
		Name: resourceName,
	}
	config, err := client.GetUptimeCheckConfig(ctx, getReq)
	if err != nil {
		return nil, fmt.Errorf("GetUptimeCheckConfig: %v", err)
	}
	config.DisplayName = displayName
	config.GetHttpCheck().Path = httpCheckPath
	req := &monitoringpb.UpdateUptimeCheckConfigRequest{
		UpdateMask: &field_mask.FieldMask{
			Paths: []string{"display_name", "http_check.path"},
		},
		UptimeCheckConfig: config,
	}
	config, err = client.UpdateUptimeCheckConfig(ctx, req)
	if err != nil {
		return nil, fmt.Errorf("UpdateUptimeCheckConfig: %v", err)
	}
	fmt.Fprintf(w, "Successfully updated %v", resourceName)
	return config, nil
}

Node.js

// Imports the Google Cloud client library
const monitoring = require('@google-cloud/monitoring');

// Creates a client
const client = new monitoring.UptimeCheckServiceClient();

/**
 * TODO(developer): Uncomment and edit the following lines of code.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const uptimeCheckConfigId = 'YOUR_UPTIME_CHECK_CONFIG_ID';
// const displayName = 'A New Display Name';
// const path = '/some/path';

const request = {
  // i.e. name: 'projects/my-project-id/uptimeCheckConfigs/My-Uptime-Check
  name: client.projectUptimeCheckConfigPath(projectId, uptimeCheckConfigId),
};

console.log(`Updating ${request.name} to ${displayName}`);

// Updates the display name and path on an uptime check config
request.uptimeCheckConfig = {
  name: request.name,
  displayName: displayName,
  httpCheck: {
    path: path,
  },
};

request.updateMask = {
  paths: ['display_name', 'http_check.path'],
};

const [response] = await client.updateUptimeCheckConfig(request);
console.log(`${response.name} config updated.`);

PHP

use Google\Cloud\Monitoring\V3\UptimeCheckServiceClient;
use Google\Protobuf\FieldMask;

/**
 * Example:
 * ```
 * update_uptime_checks($projectId);
 * ```
 */
function update_uptime_checks($projectId, $configName, $newDisplayName = null, $newHttpCheckPath = null)
{
    $uptimeCheckClient = new UptimeCheckServiceClient([
        'projectId' => $projectId,
    ]);

    $uptimeCheck = $uptimeCheckClient->getUptimeCheckConfig($displayName);
    $fieldMask = new FieldMask();
    if ($newDisplayName) {
        $fieldMask->getPaths()[] = 'display_name';
        $uptimeCheck->setDisplayName($newDisplayName);
    }
    if ($newHttpCheckPath) {
        $fieldMask->getPaths()[] = 'http_check.path';
        $uptimeCheck->getHttpCheck()->setPath($newHttpCheckPath);
    }

    $uptimeCheckClient->updateUptimeCheckConfig($uptimeCheck, $fieldMask);

    print($uptimeCheck->serializeToString() . PHP_EOL);
}

Python

def update_uptime_check_config(config_name, new_display_name=None,
                               new_http_check_path=None):
    client = monitoring_v3.UptimeCheckServiceClient()
    config = client.get_uptime_check_config(config_name)
    field_mask = monitoring_v3.types.FieldMask()
    if new_display_name:
        field_mask.paths.append('display_name')
        config.display_name = new_display_name
    if new_http_check_path:
        field_mask.paths.append('http_check.path')
        config.http_check.path = new_http_check_path
    client.update_uptime_check_config(config, field_mask)

Ruby

def update_uptime_check_config config_name:         nil,
                               new_display_name:    nil,
                               new_http_check_path: nil
  require "google/cloud/monitoring"

  client = Google::Cloud::Monitoring.uptime_check_service
  config = { name: config_name }
  field_mask = { paths: [] }
  unless new_display_name.to_s.empty?
    field_mask[:paths].push "display_name"
    config[:display_name] = new_display_name
  end
  unless new_http_check_path.to_s.empty?
    field_mask[:paths].push "http_check.path"
    config[:http_check] = { path: new_http_check_path }
  end
  client.update_uptime_check_config uptime_check_config: config,
                                    update_mask:         field_mask
end

新しい稼働時間チェックの結果が表示されるまでに最大 5 分の遅延が発生する可能性があります。その間は、変更前の稼働時間チェックの結果がダッシュボードに表示され、アラート ポリシーで使用されます。

稼働時間チェックを削除する

Cloud Console を使用して稼働時間チェックを削除しようとして、稼働時間チェックに依存するアラート ポリシーが存在する場合、削除オペレーションは失敗します。チェックを使用するすべてのアラート ポリシーから稼働時間チェックを削除してから、再び削除を試みてください。

Cloud Monitoring API を使用して稼働時間チェックを削除しようとすると、そのチェックに依存するアラート ポリシーがある場合でも、稼働時間チェックは削除されます。エラーは生成されません。消えたチェックのインシデントは作成されません。 稼働時間チェックを削除する前に、このチェックに依存するアラート ポリシーがないことを確認します。

稼働時間チェックを削除するには、次の手順に従います。

Console

  1. Cloud Console で、[Monitoring] を選択します。

    [Monitoring] に移動

  2. [稼働時間チェック] をクリックします。

  3. 編集する稼働時間チェックを見つけ、次のいずれかの操作を行います。

    • [その他] をクリックして、[削除] を選択します。
    • 稼働時間チェックの詳細を表示して、[Delete] をクリックします。

API

projects.uptimeCheckConfigs.delete メソッドを呼び出します。パラメータを次のように設定します。

  • name: 必須。削除する稼働時間チェック構成のリソース名を次の書式で指定します。

    projects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID]
    

    [UPTIME_CHECK_ID] は create または list メソッドのレスポンスから取得できます。この ID は Cloud Console に表示されません。

C#

public static object DeleteUptimeCheckConfig(string configName)
{
    var client = UptimeCheckServiceClient.Create();
    client.DeleteUptimeCheckConfig(configName);
    Console.WriteLine($"Deleted {configName}");
    return 0;
}

Java

private static void deleteUptimeCheckConfig(String projectId, String checkName)
    throws IOException {
  try (UptimeCheckServiceClient client = UptimeCheckServiceClient.create()) {
    client.deleteUptimeCheckConfig(UptimeCheckConfigName.format(projectId, checkName));
  } catch (Exception e) {
    usage("Exception deleting uptime check: " + e.toString());
    throw e;
  }
}

Go


// delete is an example of deleting an uptime check. resourceName should be
// of the form `projects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID]`.
func delete(w io.Writer, resourceName string) error {
	ctx := context.Background()
	client, err := monitoring.NewUptimeCheckClient(ctx)
	if err != nil {
		return fmt.Errorf("NewUptimeCheckClient: %v", err)
	}
	defer client.Close()
	req := &monitoringpb.DeleteUptimeCheckConfigRequest{
		Name: resourceName,
	}
	if err := client.DeleteUptimeCheckConfig(ctx, req); err != nil {
		return fmt.Errorf("DeleteUptimeCheckConfig: %v", err)
	}
	fmt.Fprintf(w, "Successfully deleted %q", resourceName)
	return nil
}

Node.js

// Imports the Google Cloud client library
const monitoring = require('@google-cloud/monitoring');

// Creates a client
const client = new monitoring.UptimeCheckServiceClient();

/**
 * TODO(developer): Uncomment and edit the following lines of code.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const uptimeCheckConfigId = 'YOUR_UPTIME_CHECK_CONFIG_ID';

const request = {
  // i.e. name: 'projects/my-project-id/uptimeCheckConfigs/My-Uptime-Check
  name: client.projectUptimeCheckConfigPath(projectId, uptimeCheckConfigId),
};

console.log(`Deleting ${request.name}`);

// Delete an uptime check config
await client.deleteUptimeCheckConfig(request);
console.log(`${request.name} deleted.`);

PHP

use Google\Cloud\Monitoring\V3\UptimeCheckServiceClient;

/**
 * Example:
 * ```
 * delete_uptime_check($projectId, $configName);
 * ```
 *
 * @param string $projectId Your project ID
 * @param string $configName
 */
function delete_uptime_check($projectId, $configName)
{
    $uptimeCheckClient = new UptimeCheckServiceClient([
        'projectId' => $projectId,
    ]);

    $uptimeCheckClient->deleteUptimeCheckConfig($configName);

    printf('Deleted an uptime check: ' . $configName . PHP_EOL);
}

Python

def delete_uptime_check_config(config_name):
    client = monitoring_v3.UptimeCheckServiceClient()
    client.delete_uptime_check_config(config_name)
    print('Deleted ', config_name)

Ruby

def delete_uptime_check_config config_name
  require "google/cloud/monitoring"

  client = Google::Cloud::Monitoring.uptime_check_service
  client.delete_uptime_check_config name: config_name
  puts "Deleted #{config_name}"
end

次のステップ

  • 稼働時間チェックの料金と上限を確認するには、料金と上限をご覧ください。
  • すべての稼働時間チェックを一覧表示するには、稼働時間チェックの確認をご覧ください。
  • 稼働時間チェックで使用される IP アドレスの一覧を取得するには、IP アドレスの取得をご覧ください。
  • API を使用して稼働時間チェックのステータスを確認するには、指標 monitoring.googleapis.com/uptime_check/check_passed をモニタリングします。詳細については、Google Cloud 指標の一覧をご覧ください。