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.

Elenco di tutti i controlli di uptime

Console

  1. Nella console Google Cloud, vai alla pagina  Controlli di uptime:

    Vai a Controlli di uptime

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.

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

    Panoramica dei controlli di uptime di esempio con filtri.

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

    Ogni filtro è composto da un nome e un valore. Puoi impostare il valore in modo che corrisponda esattamente al nome di un controllo dell'uptime o a una corrispondenza parziale. Le corrispondenze non sono sensibili alle maiuscole. Ad esempio, per elencare tutti i controlli di uptime il cui nome contiene default, procedi nel seguente modo:

    • Fai clic su Tabella dei filtri e seleziona Nome visualizzato.
    • Inserisci default e premi il tasto Invio.

    Se hai 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 un controllo dell'uptime venga elencato se il nome corrisponde a default o Testing check.

gcloud

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

gcloud monitoring uptime list-configs

I dati restituiti includono quanto segue:

  • Nome e nome visualizzato.
  • Controlla l'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 monitoraggi 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 eseguire un controllo di uptime specifico, chiama il metodo projects.uptimeCheckConfigs.get. Specifica il seguente parametro:

C#

Per autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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. Nella console Google Cloud, vai alla pagina  Controlli di uptime:

    Vai a Controlli di uptime

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.

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

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

    Dashboard di esempio del controllo di uptime.

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

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

      Ad esempio, in un periodo di 25 minuti, un controllo dell'uptime con un periodo di un minuto eseguito in tutte le regioni riceverebbe 25 richieste da ciascuna delle sei località, per un totale di 150 richieste. Se la dashboard indica un tempo di attività dell'83,3%, significa che 125 su 150 richieste sono andate a buon fine.

    • I riquadri Controlli superati e Latenza del controllo di uptime mostrano in modo grafico il numero di controlli superati e la latenza di ciascun controllo in funzione del tempo.

    • Il riquadro Stato corrente 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 è riuscita; 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 Check Id corrisponde al valore CHECK_ID nelle chiamate API.

    • Il riquadro Criteri di avviso elenca le informazioni relative ai criteri di avviso associati. Nella dashboard di esempio è 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 dell'uptime o del monitoraggio sintetico. Puoi trovare l'identificatore eseguendo il comando gcloud monitoring uptime list-configs ed esaminando il campo name. Per ulteriori informazioni, consulta Trovare l'identificatore univoco di un controllo di uptime.

I dati restituiti per il controllo dell'uptime includono quanto segue:

  • Nome e nome visualizzato.
  • Controlla l'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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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

Modificare un controllo di uptime

Puoi modificare alcuni campi di un controllo dell'uptime. Ad esempio, potresti volere che il controllo venga eseguito più di frequente o aumentare il timeout associato alla convalida della risposta. Tuttavia, se il controllo dell'uptime non è configurato con il protocollo, il tipo di risorsa o la risorsa corretti, elimina il controllo dell'uptime corrente 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 la procedura in una delle seguenti schede. Per modificare un controllo dell'uptime privato, utilizza la scheda Console o API:

Console

  1. Nella console Google Cloud, vai alla pagina  Controlli di uptime:

    Vai a Controlli di uptime

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.

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

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

  4. Per verificare se il controllo funziona, fai clic su Test. 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, segui questi passaggi:

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

  • Definisci i campi che vuoi modificare.

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

gcloud monitoring uptime update CHECK_ID --period=10

API

Chiama il metodo projects.uptimeCheckConfigs.patch. Imposta i parametri del metodo come segue:

  • uptimeCheckConfig.name: obbligatorio. Questa è parte dell'URL REST. Si tratta del nome della risorsa del controllo di uptime da modificare:

    projects/PROJECT_ID/uptimeCheckConfigs/CHECK_ID
    

    Per saperne di più sull'identificatore del controllo 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 UptimeCheckConfig con i nuovi valori di campo.

Se updateMask è impostato, solo i campi elencati in updateMask sostituiranno i campi corrispondenti nella configurazione esistente. Se un campo ha subcampi e il campo è elencato nella maschera di campo, ma nessuno dei suoi subcampi è elencato, tutti i subcampi 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 essere necessario attendere fino a 5 minuti prima di visualizzare i risultati del nuovo controllo del tempo di attività. Durante questo periodo, i risultati del precedente controllo di uptime 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 siano presenti criteri di avviso che lo monitorano. Quando un criterio di avviso monitora un controllo di uptime, la console Google Cloud impedisce l'eliminazione di questo controllo. Tuttavia, l'API Cloud Monitoring non genera un errore né impedisce l'eliminazione. Non viene creato alcun incidente per il controllo mancante.

Per eliminare un controllo di uptime:

Console

  1. Nella console Google Cloud, vai alla pagina  Controlli di uptime:

    Vai a Controlli di uptime

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.

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

    • Fai clic su Altro e seleziona Elimina.
    • Visualizza i dettagli del controllo di uptime e poi 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 dell'uptime o del monitoraggio sintetico. Puoi trovare l'identificatore eseguendo il comando gcloud monitoring uptime list-configs ed esaminando il campo name. Per ulteriori 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. Si tratta del nome della risorsa della configurazione del controllo di uptime da eliminare:

    projects/PROJECT_ID/uptimeCheckConfigs/CHECK_ID
    

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

C#

Per autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 autenticarti in Monitoraggio, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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 saperne di più, 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 identificativo, 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 controllo-uptime è incluso nella risposta dei metodi dell'API Cloud Monitoring che creano o elencano i controlli di uptime. Puoi trovare l'ID del controllo dell'uptime anche nel riquadro Configurazione della pagina Dettagli sull'uptime nella console Google Cloud. Per informazioni su come visualizzare la pagina Dettagli uptime, consulta la sezione Visualizzare i dettagli di un controllo di uptime di questo documento.

Passaggi successivi