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 a cobrança está ativada para o seu projeto do Google Cloud.

  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 a cobrança está ativada para o seu projeto do Google Cloud.

  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 um PSR-3 implementação de logger para frameworks da Web em 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

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

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.

Gravar registros com a biblioteca de cliente do Cloud Logging

Para informações sobre como usar a biblioteca de cliente do Cloud Logging para PHP diretamente, consulte Bibliotecas de cliente do Cloud Logging.

Executar no Google Cloud

Para que um aplicativo grave registros usando a biblioteca do Cloud Logging para PHP, a classe a conta de serviço do recurso subjacente precisa ter o Gravador de registros (roles/logging.logWriter) papel do IAM. A maioria dos ambientes do Google Cloud configura automaticamente conta de serviço para ter esse papel.

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 mais informações, consulte Como gravar e visualizar registros do Terraform.

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 automaticamente a conta de serviço o papel do IAM Gravador de registros (roles/logging.logWriter). Se você usar Identidade da carga de trabalho com essa conta de serviço padrão para permitir que cargas de trabalho acessem APIs do Google Cloud, nenhuma outra configuração é necessária. No entanto, se você usar a Identidade da carga de trabalho com um conta de serviço do IAM personalizada e garanta que o serviço personalizado tem o papel de Gravador de registros (roles/logging.logWriter).

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, faça isso 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. Seja qual for o serviço da conta selecionada, verifique se ela recebeu o Papel de Gravador de registros na documentação IAM e Admin da console do Google Cloud.

Execute localmente e em outro lugar

Para usar a biblioteca do Cloud Logging para PHP fora do Google Cloud, faça o seguinte: incluindo a execução da biblioteca em sua própria estação de trabalho, no sistema computadores ou nas instâncias de VM de outro provedor de nuvem, é preciso informe o ID do projeto do Google Cloud e as permissões conta de serviço diretamente para a biblioteca do Cloud Logging para PHP.

Para contas de serviço atuais, faça o seguinte:

  1. Conceda à conta de serviço o IAM Papel do IAM Gravador de registros (roles/logging.logWriter). Para mais informações sobre o IAM, consulte Controle de acesso.

  2. Configure o Application Default Credentials.

Se você não tiver uma conta de serviço, crie uma. Para informações sobre processo, consulte Criar contas de serviço.

Para informações gerais sobre os métodos que você pode usar para autenticação, consulte Terminologia: contas de serviço.

Visualize os registros

No console do Google Cloud, acesse a página Análise de registros:

Acessar a Análise de registros

Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.

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 um discussão sobre a observabilidade do Google Cloud legado e a observabilidade soluções do Kubernetes Monitoring e como elas afetam tipo de recurso, consulte Como migrar para o Google Cloud Observability Kubernetes Monitoring (em inglês).

  • 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 usar a Análise de registros.