Como configurar o Cloud Logging para PHP

É possível gravar registros no Cloud Logging de aplicativos PHP usando a biblioteca do Cloud Logging para PHP diretamente.

Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.

  4. Ative a Cloud Logging API.

    Ative a API

  5. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  6. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.

  7. Ative a Cloud Logging API.

    Ative a API

Como instalar a biblioteca do Cloud Logging para PHP

A biblioteca do Cloud Logging para PHP oferece uma implementação de registrador PSR-3 simples para bibliotecas da Web do PHP.

Para registros a partir do aplicativo, adicione a biblioteca do Cloud Logging para PHP ao composer.json:

composer require google/cloud-logging

Como criar um registrador PSR-3

Use o código a seguir para criar um registrador PSR-3:

use Google\Cloud\Logging\LoggingClient;
$logging = new LoggingClient([
    'projectId' => $projectId
]);
$logger = $logging->psrLogger('app');

Como ativar a opção de lote

O registrador PSR-3 envia os registros de maneira síncrona. Isso significa que, sempre que você emitir um registro, ele vai adicionar latência de RPC (remote procedure call) à solicitação do usuário. Se você emitir vários registros em uma única solicitação, a latência adicional será significativa. Portanto, o melhor é evitar isso.

O código a seguir cria um registrador PSR-3 que registrará em lote vários registros em uma única chamada RPC:

$logger = LoggingClient::psrBatchLogger('app');

Por padrão, esse registrador realiza um único processo para fazer registros em lote. No ambiente flexível do App Engine, é possível configurar a biblioteca do Cloud Logging para PHP para uma capacidade ainda maior e menor latência. Para ver detalhes, consulte Como configurar o daemon da geração de registros.

Como configurar a biblioteca do Cloud Logging para PHP

Personalize o comportamento da biblioteca do Cloud Logging para PHP. Consulte o documento de configuração para ver uma lista das opções possíveis.

Como usar o registrador PSR-3

Depois de criar o registrador, use-o no seu aplicativo:

$logger->info('Hello World');
$logger->error('Oh no');

Para mais informações sobre a instalação, consulte a documentação da biblioteca do Cloud Logging para PHP (em inglês). Além disso, use o rastreador de problemas (em inglês) para informá-los.

Usar a biblioteca de cliente do Cloud diretamente

Para informações sobre como usar diretamente a biblioteca de cliente do Cloud Logging para PHP, consulte Bibliotecas de cliente do Cloud Logging (em inglês).

Executar no Google Cloud

O uso da biblioteca do Cloud Logging para PHP requer o papel de gravador de registros do IAM no Google Cloud. A maioria dos ambientes do Google Cloud fornece esse papel por padrão.

App Engine

O Cloud Logging é ativado automaticamente para o App Engine, e a conta de serviço padrão do aplicativo tem as permissões do IAM por padrão para gravar entradas de registro.

Para gravar entradas de registro do seu app, recomendamos que você use o Bunyan ou o Winston (links em inglês), conforme descrito nesta página. Saiba mais em Como gravar e visualizar registros do App Engine.

No entanto, recomendamos usar o registrador PSR-3 porque ele adiciona metadados automaticamente aos registros. Dessa forma, os registros do aplicativo serão correlacionados aos da solicitação.

Como configurar o daemon para o ambiente flexível do App Engine

No ambiente flexível do App Engine, configure a biblioteca do Cloud Logging para PHP a fim de usar um programa de daemon externo e maximizar a capacidade do log e minimizar a latência do aplicativo. Para ativar esse recurso, adicione esta linha à seção runtime_config em app.yaml:

enable_stackdriver_integration: true

Google Kubernetes Engine (GKE)

O GKE concede o papel de gravador de registros por padrão.

Se necessário, também é possível usar o seguinte comando para adicionar o escopo de acesso logging.write ao criar o cluster:

gcloud container clusters create example-cluster-name \
    --scopes https://www.googleapis.com/auth/logging.write

Compute Engine

Ao usar instâncias de VM do Compute Engine, adicione o escopo de acesso cloud-platform a cada instância. Ao criar uma nova instância por meio do Console do Google Cloud, é possível adicionar o escopo na seção Identidade e acesso à API do painel Criar instância. Use a conta de serviço padrão do Compute Engine ou outra de sua escolha e selecione Permitir acesso completo a todas as APIs do Cloud na seção Identidade e acesso à API. Independentemente da conta de serviço selecionada, verifique se ela recebeu o papel de gravador de registros na seção IAM e administrador do Console do Cloud.

Execute localmente e em outro lugar

Para usar a biblioteca do Cloud Logging para PHP fora do Google Cloud (incluindo a execução da biblioteca na sua própria estação de trabalho, nos computadores do seu centro de dados ou nas instâncias de VM de outro provedor de nuvem), forneça o código do projeto do Google Cloud e as credenciais da conta de serviço apropriada diretamente para a biblioteca do Cloud Logging para PHP.

É possível criar e receber credenciais da conta de serviço manualmente. Ao especificar o campo Papel, use o papel de gravador de registros. Para mais informações sobre papéis de gerenciamento de identidade e acesso, consulte o guia de controle de acesso.

Ver os registros

Após a implantação, é possível ver os registros no Explorador de registros.

Acessar o Explorador de registros

No Explorador de registros, é preciso especificar um ou mais recursos, mas a escolha deles pode não ser óbvia. Veja a seguir algumas dicas para ajudar você a começar:

  • Se você estiver implantando seu aplicativo no App Engine ou usando as bibliotecas específicas dele, defina seu recurso como Aplicativo do GAE.

  • Se você estiver implantando seu aplicativo no Compute Engine, defina o recurso como Instância de VM do GCE.

  • Se você estiver implantando seu aplicativo no Google Kubernetes Engine, a configuração de geração de registros do cluster determinará o tipo de recurso das entradas de registro. Para uma discussão detalhada sobre o pacote de operações do Google Cloud legado e as soluções do Kubernetes Monitoring do pacote de operações do Google Cloud, e sobre como essas opções afetam o tipo de recurso, consulte Como migrar para o Kubernetes Monitoring do pacote de operações do Google Cloud.

  • Se o aplicativo estiver usando a API Cloud Logging diretamente, o recurso dependerá da API e da configuração. Por exemplo, no seu aplicativo, é possível especificar um recurso ou usar um recurso padrão.

  • Se você não vir registros no Explorador de registros, alterne para o modo de consulta avançada e use uma consulta vazia para ver todas as entradas de registro.

    1. Se quiser alternar para o modo de consulta avançada, clique no menu (▾) na parte superior do Explorador de registros e selecione Converter para filtro avançado.
    2. Limpe o conteúdo que aparece na caixa de filtro.
    3. Clique em Enviar filtro.

    É possível examinar as entradas individuais para identificar seus recursos.

Para mais informações, consulte Como visualizar registros e Consultas avançadas de registros.