Gestire i controlli di uptime

Questo documento descrive come gestire i controlli di uptime utilizzando la console Google Cloud, Google Cloud CLI, l'API Cloud Monitoring e le librerie client.

Elenca tutti i controlli di uptime

Console

  1. Nel pannello di navigazione della console Google Cloud, seleziona Monitoring, quindi  Controlli di uptime:

    Vai a Controlli di uptime

    L'esempio seguente mostra una pagina di esempio Controlli di uptime:

    Panoramica dei controlli di uptime di esempio con filtri.

  2. (Facoltativo) Per limitare i controlli di uptime elencati, aggiungi filtri.

    Ciascun filtro è composto da un nome e da un valore. Puoi impostare il valore in modo che sia una corrispondenza esatta per un nome di controllo di uptime o una corrispondenza parziale. Le corrispondenze non fanno distinzione tra maiuscole e minuscole. Ad esempio, per elencare tutti i controlli di uptime il cui nome contiene default:

    • Fai clic su Filtra tabella e seleziona Nome visualizzato.
    • Inserisci default e premi il tasto Invio.

    Se disponi di più filtri, questi vengono uniti automaticamente da un AND logico a meno che non inserisci un filtro OR. L'esempio precedente utilizza il filtro OR in modo che venga elencato un controllo di uptime se il nome corrisponde a default o Testing check.

gcloud

Per elencare i controlli di uptime e dei monitoraggi sintetici, esegui il comando gcloud monitoring uptime list-configs:

gcloud monitoring uptime list-configs

I dati restituiti includono:

  • Nome e nome visualizzato.
  • Controlla identificatore.
  • Risorsa monitorata.
  • Periodo tra i controlli.

Puoi configurare il comando Google Cloud CLI per filtrare e ordinare i risultati.

API

Per elencare i controlli di uptime e i monitor sintetici, chiama il metodo projects.uptimeCheckConfigs.list. Specifica i seguenti parametri:

  • parent: il progetto di cui vuoi elencare i controlli di uptime. Il formato è:

    projects/PROJECT_ID
    

Per ottenere un controllo di uptime specifico, chiama il metodo projects.uptimeCheckConfigs.get. Specifica il seguente parametro:

C#

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.


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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

def list_uptime_check_configs project_id
  require "google/cloud/monitoring"

  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

Visualizzare i dettagli di un controllo di uptime

Console

  1. Nel pannello di navigazione della console Google Cloud, seleziona Monitoring, quindi  Controlli di uptime:

    Vai a Controlli di uptime

  2. Individua il controllo di uptime che vuoi visualizzare e fai clic sul nome.

    Lo screenshot seguente mostra i dettagli di uptime per un controllo di uptime con il nome "Il mio controllo di uptime":

    Dashboard di esempio dei controlli di uptime.

    La pagina Dettagli sul tempo di attività contiene le seguenti informazioni:

    • L'intervallo di tempo selezionato. Per impostazione predefinita, l'intervallo è di 1 ora.
    • Il nome del controllo di uptime. Nell'esempio, il nome è My Uptime Check.
    • Le etichette che hai aggiunto al controllo di uptime.
    • La percentuale di uptime e la latenza media. Il valore Tempo di attività percentuale è una percentuale calcolata come (S/T)*100, dove S è il numero di risposte di controllo riuscite e T è il numero totale di risposte di controllo, da tutte le posizioni. Per i controlli di gruppo, i valori di S e T vengono sommati per tutti i membri attuali del gruppo.

      Ad esempio, in un periodo di 25 minuti, un controllo di uptime con un periodo di un minuto eseguito da tutte le regioni riceverebbe 25 richieste da ciascuna delle 6 località, per un totale di 150 richieste. Se la dashboard segnala un tempo di attività dell'83,3%, significa che 125 delle 150 richieste hanno avuto esito positivo.

    • I riquadri Controlli superati e Latenza dei controlli di uptime mostrano graficamente il numero di controlli superati e la latenza di ogni controllo in funzione del tempo.

    • Il riquadro Stato attuale mostra lo stato dei controlli più recenti. Un cerchio verde con un segno di spunta accanto a una regione indica che l'ultima esecuzione del controllo in quella regione è andata a buon fine; un cerchio rosso con una x indica un errore.

    • Il riquadro Configurazione mostra la configurazione del controllo di uptime. Questi dati vengono assegnati al momento della creazione del controllo di uptime. Il valore ID controllo corrisponde al valore CHECK_ID nelle chiamate API.

    • Il riquadro Criteri di avviso elenca le informazioni sui criteri di avviso associati. Nella dashboard di esempio viene configurato un criterio di avviso.

gcloud

Per elencare i dettagli di un controllo di uptime o di un monitoraggio sintetico, esegui il comando gcloud monitoring uptime describe:

gcloud monitoring uptime describe CHECK_ID

Prima di eseguire il comando precedente, sostituisci CHECK_ID con l'identificatore del controllo di uptime o del monitoraggio sintetico. Puoi trovare l'identificatore eseguendo il comando gcloud monitoring uptime list-configs ed esaminando il campo name. Per maggiori informazioni, consulta Trovare l'identificatore univoco di un controllo di uptime.

I dati restituiti per il controllo di uptime includono quanto segue:

  • Nome e nome visualizzato.
  • Controlla identificatore.
  • Risorsa monitorata.
  • Periodo tra i controlli.

API

Per elencare i dettagli di un controllo di uptime o di un monitoraggio sintetico, chiama il metodo projects.uptimeCheckConfigs.get. Specifica il seguente parametro:

C#

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.


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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Modifica un controllo di uptime

Puoi modificare alcuni campi di un controllo di uptime. Ad esempio, potresti volere che il controllo venga eseguito più spesso oppure aumentare il timeout associato alla convalida della risposta. Tuttavia, se il controllo di uptime non è configurato con il protocollo, il tipo di risorsa o la risorsa corretti, elimina l'attuale controllo di uptime e creane uno nuovo.

Per informazioni su come modificare un criterio di avviso che monitora un controllo di uptime, consulta i seguenti documenti:

Per modificare un controllo di uptime pubblico, puoi utilizzare il processo in una delle seguenti schede. Per modificare un controllo di uptime privato, utilizza la scheda Console o API:

Console

  1. Nel pannello di navigazione della console Google Cloud, seleziona Monitoring, quindi  Controlli di uptime:

    Vai a Controlli di uptime

  2. Individua il controllo di uptime che vuoi modificare, quindi esegui una delle seguenti operazioni:

    • Fai clic su Altro e seleziona Modifica.
    • Visualizza i dettagli dei controlli di uptime e fai clic su Modifica.
  3. Modifica i valori dei campi in base alle tue esigenze. Non puoi modificare tutti i campi. Se i valori dell'intestazione personalizzata di un controllo sono nascosti, non puoi renderli visibili.

  4. Per verificare se il controllo funziona, fai clic su Prova. Se il test non va a buon fine, consulta la sezione Controlli non riusciti per conoscere le possibili cause.

  5. Fai clic su Salva.

gcloud

Per modificare un controllo di uptime o un monitoraggio sintetico, esegui il comando gcloud monitoring uptime update:

gcloud monitoring uptime update CHECK_ID OPTIONAL_FLAGS

Prima di eseguire il comando precedente:

  • Sostituisci CHECK_ID con l'identificatore del controllo di uptime o del monitoraggio sintetico. Puoi trovare l'identificatore eseguendo il comando gcloud monitoring uptime list-configs ed esaminando il campo name. Per maggiori informazioni, consulta Trovare l'identificatore univoco di un controllo di uptime.

  • Definisci i campi da modificare.

Ad esempio, per impostare il periodo di un controllo di uptime su 10 minuti, esegui questo comando:

gcloud monitoring uptime update CHECK_ID --period=10

API

Richiama il metodo projects.uptimeCheckConfigs.patch. Imposta i parametri sul metodo come segue:

  • uptimeCheckConfig.name: obbligatorio. Fa parte dell'URL REST. È il nome della risorsa del controllo di uptime da modificare:

    projects/PROJECT_ID/uptimeCheckConfigs/CHECK_ID
    

    Per saperne di più sull'identificatore dei controlli di uptime, consulta Trovare l'identificatore univoco di un controllo di uptime.

  • updateMask: facoltativo. Questo è un parametro di query: ?updateMask=[FIELD_LIST]. [FIELD_LIST] è un elenco separato da virgole di campi nell'oggetto UptimeCheckConfig che devono essere modificati. Ad esempio:

    "resource.type,httpCheck.path"
    
  • Il corpo della richiesta deve contenere un elemento UptimeCheckConfig con i nuovi valori del campo.

Se il criterio updateMask è impostato, solo i campi elencati in updateMask sostituiranno i campi corrispondenti nella configurazione esistente. Se un campo ha dei sottocampi e il campo è elencato nella maschera del campo ma nessuno dei suoi campi secondari lo è, tutti i sottocampi di quel campo sostituiscono i campi corrispondenti.

Se updateMask non è impostato, la configurazione nel corpo della richiesta sostituisce l'intera configurazione esistente.

Il metodo patch restituisce l'oggetto UptimeCheckConfig per la configurazione modificata.

C#

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.


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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Potrebbe verificarsi un ritardo fino a 5 minuti prima che vengano visualizzati i risultati dei nuovi controlli di uptime. Durante questo periodo, i risultati del controllo di uptime precedente vengono visualizzati nelle dashboard e utilizzati nei criteri di avviso.

Eliminazione di un controllo di uptime

Ti consigliamo di eliminare un controllo di uptime quando disattivi il servizio o la risorsa che monitora. Nota: prima di eliminare un controllo di uptime, assicurati che non esistano criteri di avviso che monitorino il controllo di uptime. Quando un criterio di avviso monitora un controllo di uptime, la console Google Cloud impedisce l'eliminazione di quel controllo. Tuttavia, l'API Cloud Monitoring non genera un errore né impedisce l'eliminazione. Non viene creato nessun incidente per il controllo mancante.

Per eliminare un controllo di uptime:

Console

  1. Nel pannello di navigazione della console Google Cloud, seleziona Monitoring, quindi  Controlli di uptime:

    Vai a Controlli di uptime

  2. Individua il controllo di uptime che vuoi modificare, quindi esegui una delle seguenti operazioni:

    • Fai clic su Altro e seleziona Elimina.
    • Visualizza i dettagli dei controlli di uptime e fai clic su Elimina

gcloud

Per eliminare un controllo di uptime o un monitoraggio sintetico, esegui il comando gcloud monitoring uptime delete:

gcloud monitoring uptime delete CHECK_ID

Prima di eseguire il comando precedente, sostituisci CHECK_ID con l'identificatore del controllo di uptime o del monitoraggio sintetico. Puoi trovare l'identificatore eseguendo il comando gcloud monitoring uptime list-configs ed esaminando il campo name. Per maggiori informazioni, consulta Trovare l'identificatore univoco di un controllo di uptime.

API

Per eliminare un controllo di uptime o un monitoraggio sintetico, chiama il metodo projects.uptimeCheckConfigs.delete. Compila il parametro come segue:

  • name: obbligatorio. Questo è il nome della risorsa della configurazione dei controlli di uptime da eliminare:

    projects/PROJECT_ID/uptimeCheckConfigs/CHECK_ID
    

    Per saperne di più sull'identificatore dei controlli di uptime, consulta Trovare l'identificatore univoco di un controllo di uptime.

C#

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Java

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.


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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

# `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

Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Monitorare un controllo di uptime

Ti consigliamo di creare un criterio di avviso per ricevere una notifica quando il controllo di uptime non va a buon fine. Per maggiori informazioni, consulta Creare criteri di avviso per i controlli di uptime.

Trovare l'identificatore univoco di un controllo di uptime

Quando viene creato il controllo di uptime, Monitoring gli assegna un identificatore, chiamato ID controllo di uptime. Questo identificatore è incorporato nel nome della risorsa per il controllo di uptime:

projects/PROJECT_ID/uptimeCheckConfigs/CHECK_ID

L'ID dei controlli di uptime è incluso nella risposta dei metodi dell'API Cloud Monitoring che creano o elencano i controlli di uptime. Puoi trovare l'ID del controllo di uptime anche nel riquadro Configurazione della pagina Dettagli uptime nella console Google Cloud. Per informazioni su come visualizzare la pagina Dettagli sul tempo di attività, consulta la sezione Visualizzare i dettagli di un controllo di uptime di questo documento.

Passaggi successivi