ניהול בדיקות זמני פעילות

במאמר הזה מוסבר איך לנהל את בדיקות זמני הפעילות באמצעותGoogle Cloud המסוף, Google Cloud CLI,‏ Cloud Monitoring API והספריות של הלקוח.

התכונה הזו נתמכת רק בפרויקטים Google Cloud . בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.

לפני שמתחילים

מבצעים את הפעולות הבאות Google Cloud בפרויקט שבו מאוחסנים בדיקות זמני פעילות:

הצגת רשימה של כל בדיקות זמני הפעילות

המסוף

  1. במסוף Google Cloud , עוברים לדף  בדיקת זמני פעילות:

    לדף בדיקת זמני פעילות

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שבה הכותרת המשנית היא Monitoring.

    בדוגמה הבאה מוצג דף לדוגמה של בדיקת זמני פעילות:

    דוגמה לסקירה כללית של בדיקות זמני פעילות עם מסננים.

  2. בסרגל הכלים של מסוף Google Cloud , בוחרים את Google Cloud הפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את הפרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.

  3. (אופציונלי) כדי להגביל את בדיקות זמני הפעילות שמוצגות, מוסיפים מסננים.

    כל מסנן מורכב משם ומערך. אפשר להגדיר את הערך כך שיהיה התאמה מדויקת לשם של בדיקת זמינות, או התאמה חלקית. ההתאמות לא תלויות באותיות רישיות (case-sensitive). לדוגמה, כדי להציג רשימה של כל בדיקות זמני הפעילות שהשם שלהן מכיל את default, מבצעים את הפעולות הבאות:

    • לוחצים על סינון הטבלה ובוחרים באפשרות שם לתצוגה.
    • מזינים default ולוחצים על מקש Enter.

    אם יש לכם כמה מסננים, הם יצורפו אוטומטית באמצעות הלוגיקה AND, אלא אם תוסיפו מסנן OR. בדוגמה הקודמת נעשה שימוש במסנן OR כדי שיוצג בדיקת זמן פעולה אם השם שלה תואם ל-default או ל-Testing check.

gcloud

כדי להציג את בדיקות זמני הפעילות ואת המעקב הסינתטי, מריצים את הפקודה gcloud monitoring uptime list-configs:

gcloud monitoring uptime list-configs --project=PROJECT_ID

לפני שמריצים את הפקודה הקודמת, מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את הפרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.

הנתונים שמוחזרים כוללים את:

  • השם והשם המוצג.
  • בדיקת המזהה.
  • משאב במעקב.
  • התקופה בין הבדיקות.

אפשר להגדיר את הפקודה Google Cloud CLI כדי לסנן ולמיין את התוצאות.

REST

כדי להציג את רשימת בדיקות זמני הפעילות ואת רשימת המוניטורים הסינתטיים, צריך לבצע קריאה ל-method‏ projects.uptimeCheckConfigs.list. מציינים את הפרמטרים הבאים:

  • parent: חובה. הפרויקט שמופיעות בו בדיקות זמני הפעילות. בהגדרות של מרכז האפליקציות, בוחרים את הפרויקט המארח או את פרויקט הניהול של מרכז האפליקציות. הפורמט של השדה הזה הוא:

    projects/PROJECT_ID
    

C#

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

public static object ListUptimeCheckConfigs(string projectId)
{
    var client = UptimeCheckServiceClient.Create();
    var configs = client.ListUptimeCheckConfigs(new ProjectName(projectId));
    foreach (UptimeCheckConfig config in configs)
    {
        Console.WriteLine(config.Name);
    }
    return 0;
}

Java

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

private static void listUptimeChecks(String projectId) throws IOException {
  ListUptimeCheckConfigsRequest request =
      ListUptimeCheckConfigsRequest.newBuilder().setParent(ProjectName.format(projectId)).build();
  try (UptimeCheckServiceClient client = UptimeCheckServiceClient.create()) {
    ListUptimeCheckConfigsPagedResponse response = client.listUptimeCheckConfigs(request);
    for (UptimeCheckConfig config : response.iterateAll()) {
      System.out.println(config.getDisplayName());
    }
  } catch (Exception e) {
    usage("Exception listing uptime checks: " + e.toString());
    throw e;
  }
}

Go

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.


// list is an example of listing the uptime checks in projectID.
func list(w io.Writer, projectID string) error {
	ctx := context.Background()
	client, err := monitoring.NewUptimeCheckClient(ctx)
	if err != nil {
		return fmt.Errorf("NewUptimeCheckClient: %w", err)
	}
	defer client.Close()
	req := &monitoringpb.ListUptimeCheckConfigsRequest{
		Parent: "projects/" + projectID,
	}
	it := client.ListUptimeCheckConfigs(ctx, req)
	for {
		config, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return fmt.Errorf("ListUptimeCheckConfigs: %w", err)
		}
		fmt.Fprintln(w, config)
	}
	fmt.Fprintln(w, "Done listing uptime checks")
	return nil
}

Node.js

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

// 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 request = {
  parent: client.projectPath(projectId),
};

// Retrieves an uptime check config
const [uptimeCheckConfigs] = await client.listUptimeCheckConfigs(request);

uptimeCheckConfigs.forEach(uptimeCheckConfig => {
  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

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

use Google\Cloud\Monitoring\V3\Client\UptimeCheckServiceClient;
use Google\Cloud\Monitoring\V3\ListUptimeCheckConfigsRequest;

/**
 * Example:
 * ```
 * list_uptime_checks($projectId);
 * ```
 */
function list_uptime_checks(string $projectId): void
{
    $projectName = 'projects/' . $projectId;
    $uptimeCheckClient = new UptimeCheckServiceClient([
        'projectId' => $projectId,
    ]);
    $listUptimeCheckConfigsRequest = (new ListUptimeCheckConfigsRequest())
        ->setParent($projectName);

    $pages = $uptimeCheckClient->listUptimeCheckConfigs($listUptimeCheckConfigsRequest);

    foreach ($pages->iteratePages() as $page) {
        foreach ($page as $uptimeCheck) {
            print($uptimeCheck->getName() . PHP_EOL);
        }
    }
}

Python

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

def list_uptime_check_configs(project_id: str) -> pagers.ListUptimeCheckConfigsPager:
    """Gets all uptime checks defined in the Google Cloud project

    Args:
        project_id: Google Cloud project id

    Returns:
        A list of configurations.
        Iterating over this object will yield results and resolve additional pages automatically.
    """
    client = monitoring_v3.UptimeCheckServiceClient()
    configs = client.list_uptime_check_configs(request={"parent": project_id})

    for config in configs:
        pprint.pprint(config)
    return configs

Ruby

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

gem "google-cloud-monitoring"
require "google/cloud/monitoring"

def list_uptime_check_configs project_id
  client = Google::Cloud::Monitoring.uptime_check_service
  project_name = client.project_path project: project_id
  configs = client.list_uptime_check_configs parent: project_name

  configs.each { |config| puts config.name }
end

הצגת פרטים של בדיקת זמינות

המסוף

  1. במסוף Google Cloud , עוברים לדף  בדיקת זמני פעילות:

    לדף בדיקת זמני פעילות

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שבה הכותרת המשנית היא Monitoring.

  2. בסרגל הכלים של מסוף Google Cloud , בוחרים את Google Cloud הפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את הפרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
  3. מאתרים את בדיקת זמני הפעילות שרוצים להציג ולוחצים על השם שלה.

    בצילום המסך הבא מוצגים פרטי זמינות של בדיקת זמינות בשם 'בדיקת בדיקה':

    דוגמה לדף הפרטים של בדיקת זמן הפעולה.

    הדף פרטי זמינות מכיל את המידע הבא:

    • פרק הזמן שנבחר. כברירת מחדל, המרווח הוא שעה אחת.
    • השם של בדיקת זמני הפעילות. בדוגמה, השם הוא Testing check.
    • התוויות שהוספתם לבדיקת הזמינות.
    • אחוז הזמינות וזמן האחזור הממוצע. הערך של אחוז הזמינות הוא אחוז שמחושב לפי הנוסחה: (S/T)*100, כאשר S הוא מספר התגובות המוצלחות לבדיקה ו-T הוא מספר התגובות הכולל לבדיקה, מכל המיקומים. בבדיקות קבוצתיות, הערכים של S ו-T מסוכמים עבור כל חברי הקבוצה הנוכחיים.

      לדוגמה, במהלך תקופה של 25 דקות, בדיקת זמינות עם תקופה של דקה אחת שמופעלת מכל האזורים תקבל 25 בקשות מכל אחד מ-6 מיקומים, ובסך הכול 150 בקשות. אם לוח הבקרה מציג זמן פעולה של 83.3%, זה אומר ש-125 מתוך 150 בקשות הצליחו.

    • בחלוניות Passed checks ו-Uptime check latency מוצג באופן גרפי מספר הבדיקות שעברו והזמן שחלף בכל בדיקה כפונקציה של הזמן.

    • בחלונית הסטטוס הנוכחי מוצג הסטטוס של הבדיקות האחרונות. עיגול ירוק עם סימן וי ליד אזור מסוים מציין שההפעלה האחרונה של הבדיקה באזור הזה הסתיימה בהצלחה. עיגול אדום עם סימן X מציין שההפעלה נכשלה. אם הפעלתם את רישום הכשלים בבדיקת זמינות ביומן, בחלונית יופיע הקישור View logs (הצגת היומנים).

    • בחלונית Configuration מוצגת ההגדרה של בדיקת הזמינות. הנתונים האלה מוקצים כשיוצרים את בדיקת זמני הפעילות. הערך של Check Id תואם לערך CHECK_ID בקריאות ל-API.

    • בחלונית Alert Policies מופיע מידע על מדיניות ההתראות המשויכת. בלוח הבקרה לדוגמה, מוגדרת מדיניות התראה אחת.

gcloud

כדי להציג את הפרטים של בדיקת זמינות או של בדיקה סינתטית, מריצים את הפקודה gcloud monitoring uptime describe:

gcloud monitoring uptime describe CHECK_ID --project=PROJECT_ID

לפני שמריצים את הפקודה הקודמת, מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את הפרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
  • CHECK_ID: המזהה של בדיקת הזמינות או של המוניטור הסינתטי. כדי למצוא את המזהה, מריצים את הפקודה gcloud monitoring uptime list-configs ובודקים את השדה name. מידע נוסף זמין במאמר איך מוצאים את המזהה הייחודי של בדיקת זמינות.

הנתונים שמוחזרים לבדיקת זמן הפעולה כוללים את הפרטים הבאים:

  • השם והשם המוצג.
  • בדיקת המזהה.
  • משאב במעקב.
  • התקופה בין הבדיקות.

REST

כדי לקבל פירוט של בדיקת זמני פעילות או של בדיקה סינתטית, מפעילים את השיטה projects.uptimeCheckConfigs.get ומציינים את הפרמטר הבא:

  • name: השם המלא של הגדרת בדיקת זמני הפעילות.

    projects/PROJECT_ID/uptimeCheckConfigs/CHECK_ID
    

    בביטוי הקודם:

C#

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

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

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

private static void getUptimeCheckConfig(String checkName) throws IOException {
  // Create UptimeCheckServiceSettings instance for add retry mechanism
  UptimeCheckServiceSettings.Builder uptimeCheckServiceSettingsBuilder =
      UptimeCheckServiceSettings.newBuilder();
  uptimeCheckServiceSettingsBuilder
      .getUptimeCheckConfigSettings()
      .setRetrySettings(
          uptimeCheckServiceSettingsBuilder
              .getUptimeCheckConfigSettings()
              .getRetrySettings()
              .toBuilder()
              .setInitialRetryDelay(org.threeten.bp.Duration.ofMillis(100L))
              .setRetryDelayMultiplier(1.3)
              .setMaxRetryDelay(MAX_RECONNECT_BACKOFF_TIME)
              .setInitialRpcTimeout(MAX_RECONNECT_BACKOFF_TIME)
              .setRpcTimeoutMultiplier(1.0)
              .setMaxRpcTimeout(MAX_RECONNECT_BACKOFF_TIME)
              .setTotalTimeout(MAX_RECONNECT_BACKOFF_TIME)
              .setMaxAttempts(6)
              .build());
  UptimeCheckServiceSettings uptimeCheckServiceSettings =
      uptimeCheckServiceSettingsBuilder.build();

  // create UptimeCheckServiceClient with retry setting
  try (UptimeCheckServiceClient client =
      UptimeCheckServiceClient.create(uptimeCheckServiceSettings)) {
    UptimeCheckConfig config = client.getUptimeCheckConfig(checkName);
    if (config != null) {
      System.out.println(config.toString());
    } else {
      System.out.println("No uptime check config found with ID " + checkName);
    }
  } catch (Exception e) {
    usage("Exception getting uptime check: " + e.toString());
    throw e;
  }
}

Go

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.


// 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: %w", err)
	}
	defer client.Close()
	req := &monitoringpb.GetUptimeCheckConfigRequest{
		Name: resourceName,
	}
	config, err := client.GetUptimeCheckConfig(ctx, req)
	if err != nil {
		return nil, fmt.Errorf("GetUptimeCheckConfig: %w", err)
	}
	fmt.Fprintf(w, "Config: %v", config)
	return config, nil
}

Node.js

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

// 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

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

use Google\Cloud\Monitoring\V3\Client\UptimeCheckServiceClient;
use Google\Cloud\Monitoring\V3\GetUptimeCheckConfigRequest;

/**
 * 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,
    ]);
    $getUptimeCheckConfigRequest = (new GetUptimeCheckConfigRequest())
        ->setName($configName);

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

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

Python

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

def get_uptime_check_config(config_name: str) -> uptime.UptimeCheckConfig:
    """Reads the uptime check configuration

    Args:
        config_name: Uptime check configuration identity

    Returns:
        A structure that describes the updated uptime check
    """
    client = monitoring_v3.UptimeCheckServiceClient()
    config = client.get_uptime_check_config(request={"name": config_name})
    pprint.pprint(config)
    return config

Ruby

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

gem "google-cloud-monitoring"
require "google/cloud/monitoring"

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

עריכה של בדיקת זמני פעילות

אפשר לשנות חלק מהשדות בבדיקת זמינות. לדוגמה, יכול להיות שתרצו שהבדיקה תתבצע בתדירות גבוהה יותר, או שתרצו להגדיל את הזמן הקצוב לתפוגה שמשויך לאימות התשובה. עם זאת, אם בדיקת הזמינות לא מוגדרת עם הפרוטוקול, סוג המשאב או המשאב הנכונים, צריך למחוק את בדיקת הזמינות הנוכחית וליצור בדיקה חדשה.

מידע על עריכת מדיניות התראות שעוקבת אחרי בדיקת זמינות מופיע במסמכים הבאים:

כדי לערוך בדיקת זמינות ציבורית, אפשר להשתמש בתהליך שמוסבר באחת מהכרטיסיות הבאות. כדי לערוך בדיקת זמינות פרטית, אפשר להשתמש בכרטיסייה Console או בכרטיסייה API:

המסוף

  1. במסוף Google Cloud , עוברים לדף  בדיקת זמני פעילות:

    לדף בדיקת זמני פעילות

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שבה הכותרת המשנית היא Monitoring.

  2. בסרגל הכלים של מסוף Google Cloud , בוחרים את Google Cloud הפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את הפרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
  3. מאתרים את בדיקת הזמינות שרוצים לערוך, ואז מבצעים אחת מהפעולות הבאות:

    • לוחצים על סמל האפשרויות הנוספות ובוחרים באפשרות עריכה.
    • מעיינים בפרטים של בדיקת הזמינות ולוחצים על עריכה.
  4. משנים את הערכים של השדות לפי הצורך. אי אפשר לשנות את כל השדות. אם הערכים של הכותרות המותאמות אישית של בדיקה מוסתרים, אי אפשר להציג אותם.

  5. כדי לוודא שהבדיקה פועלת, לוחצים על בדיקה. אם הבדיקה נכשלת, כדאי לעיין בקטע בדיקות שנכשלו כדי לראות מהן הסיבות האפשריות.

  6. לוחצים על Save.

gcloud

כדי לשנות בדיקת זמינות או בדיקה סינתטית, מריצים את הפקודה gcloud monitoring uptime update:

gcloud monitoring uptime update CHECK_ID OPTIONAL_FLAGS --project=PROJECT_ID

לפני שמריצים את הפקודה הקודמת, מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את הפרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
  • CHECK_ID: המזהה של בדיקת הזמינות או של המוניטור הסינתטי. כדי למצוא את המזהה, מריצים את הפקודה gcloud monitoring uptime list-configs ובודקים את השדה name. מידע נוסף זמין במאמר איך מוצאים את המזהה הייחודי של בדיקת זמינות.

צריך גם להגדיר אילו שדות רוצים לשנות.

לדוגמה, כדי להגדיר את התקופה של בדיקת זמינות ל-10 דקות, מריצים את הפקודה הבאה:

gcloud monitoring uptime update CHECK_ID --period=10

REST

מבצעים קריאה לשיטה projects.uptimeCheckConfigs.patch. מגדירים את הפרמטרים של השיטה באופן הבא:

  • uptimeCheckConfig.name: חובה. זהו חלק מכתובת ה-URL של REST. זהו שם המשאב של בדיקת זמני הפעילות שרוצים לערוך:

    projects/PROJECT_ID/uptimeCheckConfigs/CHECK_ID
    

    בביטוי הקודם:

  • updateMask: אופציונלי. זהו פרמטר של שאילתה: ?updateMask=[FIELD_LIST]. ‫[FIELD_LIST] היא רשימה מופרדת בפסיקים של שדות באובייקט UptimeCheckConfig שצריך לשנות. לדוגמה:

    "resource.type,httpCheck.path"
    
  • גוף הבקשה חייב להכיל את השדה UptimeCheckConfig עם הערכים החדשים.

אם השדה updateMask מוגדר, רק השדות שמפורטים בו יחליפו את השדות התואמים בהגדרה הקיימת. אם לשדה יש שדות משנה, והשדה מפורט במסכת השדות אבל אף אחד משדות המשנה שלו לא מפורט, אז כל שדות המשנה של השדה הזה יחליפו את השדות התואמים.updateMask

אם לא מוגדר updateMask, ההגדרה בגוף הבקשה מחליפה את כל ההגדרה הקיימת.

השיטה patch מחזירה את האובייקט UptimeCheckConfig של ההגדרה ששונתה.

C#

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

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

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

private static void updateUptimeCheck(String checkName, String hostName, String pathName)
    throws IOException {

  UpdateUptimeCheckConfigRequest request =
      UpdateUptimeCheckConfigRequest.newBuilder()
          .setUpdateMask(FieldMask.newBuilder().addPaths("http_check.path"))
          .setUptimeCheckConfig(
              UptimeCheckConfig.newBuilder()
                  .setName(checkName)
                  .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

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.


// 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: %w", err)
	}
	defer client.Close()
	getReq := &monitoringpb.GetUptimeCheckConfigRequest{
		Name: resourceName,
	}
	config, err := client.GetUptimeCheckConfig(ctx, getReq)
	if err != nil {
		return nil, fmt.Errorf("GetUptimeCheckConfig: %w", 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: %w", err)
	}
	fmt.Fprintf(w, "Successfully updated %v", resourceName)
	return config, nil
}

Node.js

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

// 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

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

use Google\Cloud\Monitoring\V3\Client\UptimeCheckServiceClient;
use Google\Cloud\Monitoring\V3\GetUptimeCheckConfigRequest;
use Google\Cloud\Monitoring\V3\UpdateUptimeCheckConfigRequest;
use Google\Protobuf\FieldMask;

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

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

    $uptimeCheckClient->updateUptimeCheckConfig($updateUptimeCheckConfigRequest);

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

Python

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

def update_uptime_check_config(
    config_name: str, new_display_name: str = None, new_http_check_path: str = None
) -> uptime.UptimeCheckConfig:
    """Creates a new uptime check configuration

    Args:
        config_name: Uptime check configuration identity
        new_display_name: A new human friendly name of the configuration
        new_http_check_path: A new HTTP endpoint of the configuration

    Returns:
        A structure that describes the updated uptime check
    """
    client = monitoring_v3.UptimeCheckServiceClient()
    config = client.get_uptime_check_config(request={"name": config_name})
    field_mask = field_mask_pb2.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
    changed_config = client.update_uptime_check_config(
        request={"uptime_check_config": config, "update_mask": field_mask}
    )
    pprint.pprint(changed_config)
    return changed_config

Ruby

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

gem "google-cloud-monitoring"
require "google/cloud/monitoring"

def update_uptime_check_config config_name:         nil,
                               new_display_name:    nil,
                               new_http_check_path: nil
  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 Run.
  1. במסוף Google Cloud , עוברים לדף  בדיקת זמני פעילות:

    לדף בדיקת זמני פעילות

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שבה הכותרת המשנית היא Monitoring.

  2. בסרגל הכלים של מסוף Google Cloud , בוחרים את Google Cloud הפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את הפרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
  3. מאתרים את בדיקת הזמינות שרוצים לערוך, ואז מבצעים אחת מהפעולות הבאות:

    • לוחצים על סמל האפשרויות הנוספות ובוחרים באפשרות מחיקה.
    • בודקים את פרטי הבדיקה של זמן הפעולה ולוחצים על מחיקה.

gcloud

כדי למחוק בדיקת זמינות או בדיקה סינתטית, מריצים את הפקודה gcloud monitoring uptime delete:

gcloud monitoring uptime delete CHECK_ID --project=PROJECT_ID

לפני שמריצים את הפקודה הקודמת, מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את הפרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
  • CHECK_ID: המזהה של בדיקת הזמינות או של המוניטור הסינתטי. כדי למצוא את המזהה, מריצים את הפקודה gcloud monitoring uptime list-configs ובודקים את השדה name. מידע נוסף זמין במאמר איך מוצאים את המזהה הייחודי של בדיקת זמינות.

REST

כדי למחוק בדיקת זמינות או בדיקה סינתטית, צריך להפעיל את השיטה projects.uptimeCheckConfigs.delete ולמלא את הפרמטר באופן הבא:

  • name: חובה. זהו שם המשאב של הגדרת בדיקת זמני הפעילות שרוצים למחוק:

    projects/PROJECT_ID/uptimeCheckConfigs/CHECK_ID
    

    בביטוי הקודם:

C#

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

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

Java

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

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

Go

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.


// 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: %w", err)
	}
	defer client.Close()
	req := &monitoringpb.DeleteUptimeCheckConfigRequest{
		Name: resourceName,
	}
	if err := client.DeleteUptimeCheckConfig(ctx, req); err != nil {
		return fmt.Errorf("DeleteUptimeCheckConfig: %w", err)
	}
	fmt.Fprintf(w, "Successfully deleted %q", resourceName)
	return nil
}

Node.js

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

// 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

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

use Google\Cloud\Monitoring\V3\Client\UptimeCheckServiceClient;
use Google\Cloud\Monitoring\V3\DeleteUptimeCheckConfigRequest;

/**
 * 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,
    ]);
    $deleteUptimeCheckConfigRequest = (new DeleteUptimeCheckConfigRequest())
        ->setName($configName);

    $uptimeCheckClient->deleteUptimeCheckConfig($deleteUptimeCheckConfigRequest);

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

Python

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

# `config_name` is the `name` field of an UptimeCheckConfig.
# See https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.uptimeCheckConfigs#UptimeCheckConfig.
def delete_uptime_check_config(config_name: str) -> None:
    """Deletes the uptime check configuration

    Args:
        config_name: Uptime check configuration identity
    """
    client = monitoring_v3.UptimeCheckServiceClient()
    client.delete_uptime_check_config(request={"name": config_name})
    print("Deleted ", config_name)

Ruby

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

gem "google-cloud-monitoring"
require "google/cloud/monitoring"

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

מעקב אחרי בדיקת זמני פעילות

מומלץ ליצור מדיניות התראות כדי לקבל התראה אם בדיקת זמני פעילות נכשלת. מידע נוסף זמין במאמר יצירת מדיניות התראות לבדיקות זמני פעילות.

איך מוצאים את המזהה הייחודי של בדיקת זמני פעילות

כשיוצרים בדיקת זמינות, שירות Monitoring מקצה לה מזהה שנקרא מזהה בדיקת זמינות. המזהה הזה מוטמע בשם המשאב של בדיקת הזמינות:

projects/PROJECT_ID/uptimeCheckConfigs/CHECK_ID

PROJECT_ID הוא המזהה של הפרויקט שבו מאוחסנת בדיקת זמני הפעילות. בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.

מזהה בדיקת זמני הפעילות נכלל בתשובה של שיטות Cloud Monitoring API שיוצרות או מפרטות בדיקות של זמני פעילות. אפשר למצוא את מזהה בדיקת הזמינות גם בחלונית Configuration בדף Uptime details במסוףGoogle Cloud . בקטע הצגת הפרטים של בדיקת זמינות במסמך הזה מוסבר איך לצפות בדף פרטי זמן הפעולה.

המאמרים הבאים