Instrumentar apps C# para o Error Reporting

O conjunto de bibliotecas Google.Cloud.Diagnostics permite enviar eventos de erro diretamente dos seus aplicativos C# para o Error Reporting, para que você possa diagnosticar e monitorar falhas de execução. A instrumentação do aplicativo com a biblioteca permite informar eventos de erro personalizados e capturar erros mesmo quando os buckets de registros usam chaves de criptografia gerenciadas pelo cliente (CMEK).

Para aplicativos executados em serviços integrados do Google Cloud , incluindo funções do Cloud Run, App Engine, Compute Engine e Google Kubernetes Engine, o Error Reporting também pode inferir eventos de erro automaticamente do Cloud Logging sem o conjunto de bibliotecas Google.Cloud.Diagnostics. Para que o Error Reporting infira eventos de erro dos registros, as entradas de registro precisam seguir os requisitos de formatação de erros e ser armazenadas em um bucket de registros sem CMEK pertencente ao projeto de origem ou ao projeto de destino para onde os registros foram encaminhados.

Antes de começar

  1. Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloudagora, crie uma conta para avaliar o desempenho dos 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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Error Reporting API , if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Error Reporting API , if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

Instale a biblioteca de cliente

O conjunto de bibliotecas Google.Cloud.Diagnostics permite monitorar e visualizar eventos de erro informados por aplicativos C# executados em quase qualquer lugar.

  1. Para aplicativos direcionados ao ASP.NET Core 3 ou posterior, use a biblioteca Google.Cloud.Diagnostics.AspNetCore3. Você pode instalar essa biblioteca em NuGet.
  2. Para aplicativos destinados a versões anteriores do ASP.NET Core, use a biblioteca Google.Cloud.Diagnostics.AspNetCore. Você pode instalar essa biblioteca em NuGet.
  3. Para aplicativos direcionados a frameworks não ASP.NET Core, use a biblioteca Google.Cloud.Diagnostics.Common. Você pode instalar essa biblioteca em NuGet.

Para mais informações sobre a instalação, leia a documentação do conjunto de bibliotecas do Google.Cloud.Diagnostics. Você também pode informar problemas usando o Issue Tracker.

Configurar a biblioteca de cliente

Para mais informações e exemplos, consulte os seguintes recursos:

  • Documentação do Google.Cloud.Diagnostics.AspNetCore3 (link em inglês)
  • Documentação do Google.Cloud.Diagnostics.AspNetCore (link em inglês)
  • Documentação do Google.Cloud.Diagnostics.Common (link em inglês)
  • Executar apps no Google Cloud

    Para criar grupos de erros usando projects.events.report, sua conta de serviço precisa do papel Gravador do Error Reporting (roles/errorreporting.writer).

    Alguns serviços do Google Cloud concedem automaticamente o papel de gravador do Error Reporting (roles/errorreporting.writer) à conta de serviço apropriada. No entanto, é necessário conceder esse papel à conta de serviço apropriada para alguns serviços.

    Cloud Run e Cloud Run Functions

    A conta de serviço padrão usada pelo Cloud Run tem as permissões do papel de gravador do Error Reporting (roles/errorreporting.writer).

    O conjunto de bibliotecas Google.Cloud.Diagnostics pode ser usado sem a necessidade de fornecer credenciais explicitamente.

    O Cloud Run é configurado para usar o Error Reporting automaticamente. Exceções JavaScript não processadas vão aparecer no Logging e serão processadas pelo Error Reporting sem precisar usar o conjunto de bibliotecas Google.Cloud.Diagnostics.

    Ambiente flexível do App Engine

    O App Engine concede o papel de gravador do Error Reporting (roles/errorreporting.writer) à sua conta de serviço padrão automaticamente.

    O conjunto de bibliotecas Google.Cloud.Diagnostics pode ser usado sem a necessidade de fornecer credenciais explicitamente.

    O Error Reporting é ativado automaticamente para aplicativos do ambiente flexível do App Engine. Nenhuma outra configuração é necessária. Mensagens escritas do App Engine para stderr são analisadas e, se houver um stack trace, serão exibidas pelo Error Reporting.

    Consulte Como ver erros para instruções sobre como acessar dados de erros e exceções do seu aplicativo no console doGoogle Cloud .

    Google Kubernetes Engine

    Para usar o Error Reporting com o Google Kubernetes Engine, faça o seguinte:

    1. Verifique se a conta de serviço que será usada pelo contêiner recebeu o papel Gravador do Error Reporting (roles/errorreporting.writer).

      É possível usar a conta de serviço padrão do Compute Engine ou uma conta de serviço personalizada.

      Para saber mais sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

    2. Crie o cluster e conceda a ele o escopo de acesso cloud-platform.

      Por exemplo, o comando de criação a seguir especifica o escopo de acesso cloud-platform e uma conta de serviço:

      gcloud container clusters create CLUSTER_NAME --service-account  SERVICE_ACCT_NAME --scopes=cloud-platform
      

    Compute Engine

    Para usar o Error Reporting com instâncias de VM do Compute Engine, faça o seguinte:

    1. Verifique se a conta de serviço a ser usada pela instância de VM recebeu o papel Gravador do Error Reporting (roles/errorreporting.writer).

      É possível usar a conta de serviço padrão do Compute Engine ou uma conta de serviço personalizada.

      Para saber mais sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

    2. No Google Cloud console, acesse a página Instâncias de VM:

      Acessar Instâncias de VM

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

    3. Selecione a instância de VM que vai receber o escopo de acesso do cloud-platform.

    4. Clique em Parar e em