Como revisar verificações de tempo de atividade

Esta página mostra como fazer o seguinte:

  • Liste todas as verificações de tempo de atividade.
  • Ver uma lista de endereços IP usados pelas verificações de tempo de atividade.

Para criar, atualizar e excluir as verificações de tempo de atividade, consulte a página Como gerenciar verificações de tempo de atividade. Para visualizar preços e limites nas verificações de tempo de atividade, consulte Preços e limites.

Como listar verificações de tempo de atividade

Console

Basta seguir estas etapas:

  1. No Console do Cloud, selecione Monitoring:

    Acesse o Monitoring

  2. Selecione verificações de tempo de atividade.

Para ver os detalhes de uma verificação de tempo de atividade, clique em seu nome.

Para restringir as verificações de tempo de atividade listadas, adicione filtros. Cada filtro é composto por um nome e um valor. É possível definir o valor como uma correspondência exata para um nome de verificação de tempo de atividade ou uma correspondência parcial. As correspondências não diferenciam maiúsculas de minúsculas. Por exemplo, para listar todas as verificações de tempo de atividade que tem default em seu nome, faça o seguinte:

  • Clique em Filtrar tabela e selecione Exibir nome.
  • Digite default e pressione a tecla Enter.

Se você tiver vários filtros, os filtros serão unidos automaticamente por um AND lógico, a menos que você insira um filtro OR. No exemplo a seguir, o filtro OR é usado para que uma verificação de tempo de atividade seja listada caso seu nome corresponda a default ou testing check:

Visão geral das verificações de tempo de atividade com filtros de exemplo.

API

Para ver uma lista das configurações de tempo de atividade, chame o método projects.uptimeCheckConfigs.list. Especifique os parâmetros a seguir:

  • parent: o projeto com as verificações de tempo de atividade que você quer listar. O formato é:

    projects/[PROJECT_ID]
    

Para receber uma verificação de tempo de atividade específica, chame o método projects.uptimeCheckConfigs.get. Especifique o parâmetro a seguir:

  • name: o nome completo da configuração da verificação de tempo de atividade.

    projects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID]
    

    Você recebe o valor de [UPTIME_CHECK_ID] da resposta de um método create ou list. O código não é mostrado no Console do Google Cloud.

C#

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

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

Ver no GitHub (em inglês) Feedback

// 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: %v", 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: %v", err)
		}
		fmt.Fprintln(w, config)
	}
	fmt.Fprintln(w, "Done listing uptime checks")
	return nil
}

Node.js

Ver no GitHub (em inglês) Feedback
// 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

use Google\Cloud\Monitoring\V3\UptimeCheckServiceClient;

/**
 * Example:
 * ```
 * list_uptime_checks($projectId);
 * ```
 */
function list_uptime_checks($projectId)
{
    $uptimeCheckClient = new UptimeCheckServiceClient([
        'projectId' => $projectId,
    ]);

    $pages = $uptimeCheckClient->listUptimeCheckConfigs(
        $uptimeCheckClient->projectName($projectId)
    );

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

Python

Ver no GitHub (em inglês) Feedback
def list_uptime_check_configs(project_name):
    client = monitoring_v3.UptimeCheckServiceClient()
    configs = client.list_uptime_check_configs(request={"parent": project_name})

    for config in configs:
        pprint.pprint(config)

Ruby

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

Ver os endereços IP da verificação de tempo de atividade

Se o serviço em verificação está protegido por um firewall, é possível configurar esse firewall para aceitar tráfego proveniente do conjunto atual de endereços IP utilizado na verificação de tempo de atividade. Para ver os endereços IP, siga as seguintes instruções:

Console

  1. No Console do Cloud, selecione Monitoring:

    Acesse o Monitoring

  2. Selecione verificações de tempo de atividade.

  3. Clique em Fazer o download de endereços IP do verificador estático .

API

  1. Chame o método uptimeCheckIps.list da API Monitoring.

  2. O método retorna as informações a seguir sobre cada endereço IP:

    • a região: USA, EUROPE, SOUTH_AMERICA ou ASIA_PACIFIC;
    • uma localização mais específica dentro da região;
    • o endereço IP, não um intervalo, nos formatos IPv4 ou IPv6.

C#

public static object ListUptimeCheckIps()
{
    var client = UptimeCheckServiceClient.Create();
    var ips = client.ListUptimeCheckIps(new ListUptimeCheckIpsRequest());
    foreach (UptimeCheckIp ip in ips)
    {
        Console.WriteLine("{0,20} {1}", ip.IpAddress, ip.Location);
    }
    return 0;
}

Java

@SuppressWarnings("checkstyle:AbbreviationAsWordInName")
private static void listUptimeCheckIPs() throws IOException {
  try (UptimeCheckServiceClient client = UptimeCheckServiceClient.create()) {
    ListUptimeCheckIpsPagedResponse response =
        client.listUptimeCheckIps(ListUptimeCheckIpsRequest.newBuilder().build());
    for (UptimeCheckIp config : response.iterateAll()) {
      System.out.println(config.getRegion() + " - " + config.getIpAddress());
    }
  } catch (Exception e) {
    usage("Exception listing uptime IPs: " + e.toString());
    throw e;
  }
}

Go

Ver no GitHub (em inglês) Feedback

// listIPs is an example of listing uptime check IPs.
func listIPs(w io.Writer) error {
	ctx := context.Background()
	client, err := monitoring.NewUptimeCheckClient(ctx)
	if err != nil {
		return fmt.Errorf("NewUptimeCheckClient: %v", err)
	}
	defer client.Close()
	req := &monitoringpb.ListUptimeCheckIpsRequest{}
	it := client.ListUptimeCheckIps(ctx, req)
	for {
		config, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return fmt.Errorf("ListUptimeCheckIps: %v", err)
		}
		fmt.Fprintln(w, config)
	}
	fmt.Fprintln(w, "Done listing uptime check IPs")
	return nil
}

Node.js

Ver no GitHub (em inglês) Feedback
// Imports the Google Cloud client library
const monitoring = require('@google-cloud/monitoring');

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

// List uptime check IPs
const [uptimeCheckIps] = await client.listUptimeCheckIps();
uptimeCheckIps.forEach(uptimeCheckIp => {
  console.log(
    uptimeCheckIp.region,
    uptimeCheckIp.location,
    uptimeCheckIp.ipAddress
  );
});

PHP

use Google\Cloud\Monitoring\V3\UptimeCheckServiceClient;

/**
 * Example:
 * ```
 * list_uptime_check_ips($projectId);
 * ```
 */
function list_uptime_check_ips($projectId)
{
    $uptimeCheckClient = new UptimeCheckServiceClient([
        'projectId' => $projectId,
    ]);

    $pages = $uptimeCheckClient->listUptimeCheckIps();

    foreach ($pages->iteratePages() as $page) {
        $ips = $page->getResponseObject()->getUptimeCheckIps();
        foreach ($ips as $ip) {
            printf(
                'ip address: %s, region: %s, location: %s' . PHP_EOL,
                $ip->getIpAddress(),
                $ip->getRegion(),
                $ip->getLocation()
            );
        }
    }
}

Python

Ver no GitHub (em inglês) Feedback
def list_uptime_check_ips():
    client = monitoring_v3.UptimeCheckServiceClient()
    ips = client.list_uptime_check_ips(request={})
    print(
        tabulate.tabulate(
            [(ip.region, ip.location, ip.ip_address) for ip in ips],
            ("region", "location", "ip_address"),
        )
    )

Ruby

def list_ips
  require "google/cloud/monitoring"
  client = Google::Cloud::Monitoring.uptime_check_service

  # Iterate over all results.
  client.list_uptime_check_ips({}).each do |element|
    puts "#{element.location} #{element.ip_address}"
  end
end

As verificações de tempo de atividade podem vir de qualquer um dos endereços IP, mas apenas um endereço de cada localização geográfica é usado para cada período. As localizações geográficas são listadas no painel de verificações de tempo de atividade, como mostrado na seção anterior. Também é possível usar serviços gratuitos baseados na Web para identificar as localizações registradas dos endereços IP recebidos por download.

Os endereços IP usados pela verificação de tempo de atividade podem mudar. Normalmente, isso ocorre no máximo uma vez por trimestre, com um anúncio.

Identificar o tráfego da verificação de tempo de atividade

É possível identificar solicitações dos servidores de verificação de tempo de atividade de acordo com as informações contidas nos registros de solicitações do serviço:

  • ip: o campo ip contém um dos endereços usados pelos servidores de verificação de tempo de atividade. Consulte Como receber endereços IP.
  • User-Agent: o valor do cabeçalho User-Agent é sempre o seguinte:

    GoogleStackdriverMonitoring-UptimeChecks(https://cloud.google.com/monitoring)
    

    A especificação de um cabeçalho personalizado User-Agent resulta em um erro de validação de formulário e impede que a configuração de verificação seja salva.