Configura una aplicación de gRPC en Google Cloud con observabilidad de microservicios

Las herramientas de observabilidad de microservicios permiten instrumentar aplicaciones para recopilar y presentar datos de telemetría en Cloud Monitoring, Cloud Logging y Cloud Trace desde cargas de trabajo de gRPC implementadas en Google Cloud y en otros lugares. La observabilidad de los microservicios funciona con cualquier implementación a la que se le haya otorgado permiso para acceder a Monitoring, Logging y Trace habilitando la API de microservicios.

En este instructivo, aprenderás a usar las funciones de observabilidad de microservicios. Para esto, debes crear una aplicación sencilla de gRPC en Google Cloud con Compute Engine y, además, instrumentarla con la observabilidad de microservicios. Luego, verás cómo funcionan con Monitoring y Logging.

Objetivos

En términos generales, puedes seguir los pasos que se indican a continuación:

  • Como desarrollador de servicios, puedes hacer lo siguiente:

    • Crear una aplicación de gRPC con el lenguaje que prefieras (C++, Go o Java)
    • Habilitar la aplicación y controlar el complemento de observabilidad de microservicios
    • Implementar la aplicación en una VM de Compute Engine
  • Como operador de servicios, puedes consumir los datos recopilados de varias maneras:

    • Visualizando rastros en Trace
    • Visualizando métricas en el panel de supervisión llamado Microservices (gRPC) Monitoring
    • Visualizando métricas en el Explorador de métricas
    • Inspeccionando entradas de registros en el Explorador de registros

Costos

En este documento, usarás los siguientes componentes facturables de Google Cloud:

Para obtener una estimación de costos en función del uso previsto, usa la calculadora de precios.

Es posible que los usuarios de Google Cloud nuevos cumplan con los requisitos para acceder a una prueba gratuita.

Cuando completes las tareas que se describen en este documento, podrás borrar los recursos que creaste para evitar que se te siga facturando. Para obtener más información, consulta Realiza una limpieza.

Antes de empezar

Console

  1. Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  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. Habilita las APIs de Compute Engine y de Microservices.

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

    Habilitar las API

  5. Asegúrate de tener los roles de IAM de creador de cuentas de servicio (roles/iam.serviceAccountCreator) y administrador de IAM del proyecto (roles/resourcemanager.projectIamAdmin). Obtén más información para otorgar roles.
  6. En la consola de Google Cloud , ve a la página Crear cuenta de servicio.

    Ve a Crear cuenta de servicio
  7. Elige tu proyecto.
  8. Escribe un nombre en el campo Nombre de cuenta de servicio. La consola de Google Cloud completa el campo ID de cuenta de servicio según este nombre.

    Opcional: en el campo Descripción de la cuenta de servicio, escribe una descripción. Por ejemplo, Service account for quickstart.

  9. Haz clic en Crear y continuar.
  10. Otorga los siguientes roles a la cuenta de servicio: Logging > Visualizador de registros > Escritor de registros, Monitoring > Editor de Monitoring > Escritor de métricas, Trace > Administrador de Trace > Agente de Trace.

    Para otorgar un rol, busca la lista Selecciona un rol y, luego, selecciona el rol.

    Para otorgar roles adicionales, haz clic en Agregar otro rol y agrega cada rol adicional.

  11. Haz clic en Continuar.
  12. En el campo Rol de los usuarios de la cuenta de servicio, ingresa el identificador del principal que conectará la cuenta de servicio a otros recursos, como las instancias de Compute Engine.

    Por lo general, esta es la dirección de correo electrónico de una Cuenta de Google.

  13. Haz clic en Listo para terminar de crear la cuenta de servicio.

  • 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

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

  • Habilita las APIs de Compute Engine y de Microservices.

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

    Habilitar las API

  • Asegúrate de tener los roles de IAM de creador de cuentas de servicio (roles/iam.serviceAccountCreator) y administrador de IAM del proyecto (roles/resourcemanager.projectIamAdmin). Obtén más información para otorgar roles.
  • En la consola de Google Cloud , ve a la página Crear cuenta de servicio.

    Ve a Crear cuenta de servicio
  • Elige tu proyecto.
  • Escribe un nombre en el campo Nombre de cuenta de servicio. La consola de Google Cloud completa el campo ID de cuenta de servicio según este nombre.

    Opcional: en el campo Descripción de la cuenta de servicio, escribe una descripción. Por ejemplo, Service account for quickstart.

  • Haz clic en Crear y continuar.
  • Otorga los siguientes roles a la cuenta de servicio: Logging > Visualizador de registros > Escritor de registros, Monitoring > Editor de Monitoring > Escritor de métricas, Trace > Administrador de Trace > Agente de Trace.

    Para otorgar un rol, busca la lista Selecciona un rol y, luego, selecciona el rol.

    Para otorgar roles adicionales, haz clic en Agregar otro rol y agrega cada rol adicional.

  • Haz clic en Continuar.
  • En el campo Rol de los usuarios de la cuenta de servicio, ingresa el identificador del principal que conectará la cuenta de servicio a otros recursos, como las instancias de Compute Engine.

    Por lo general, esta es la dirección de correo electrónico de una Cuenta de Google.

  • Haz clic en Listo para terminar de crear la cuenta de servicio.

  • Lee la descripción general de la observabilidad de microservicios.
  • Lee sobre las dos variables de entorno compatibles, decide cuál vas a usar y determina los valores que requiere la variable de entorno.
  • CLI

    1. Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
    2. Instala Google Cloud CLI.

    3. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

    4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

      gcloud init
    5. Crea o selecciona un Google Cloud proyecto.

      Roles necesarios para seleccionar o crear un proyecto

      • Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
      • Crear un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos (roles/resourcemanager.projectCreator), que contiene el permiso resourcemanager.projects.create. Obtén más información para otorgar roles.
      • Crea un Google Cloud proyecto:

        gcloud projects create PROJECT_ID

        Reemplaza PROJECT_ID por un nombre para el proyecto Google Cloud que estás creando.

      • Selecciona el proyecto Google Cloud que creaste:

        gcloud config set project PROJECT_ID

        Reemplaza PROJECT_ID por el nombre de tu Google Cloud proyecto.

    6. Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .

    7. Habilita las APIs de Compute Engine y de Microservices:

      Roles necesarios para habilitar las APIs

      Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

      gcloud services enable compute.googleapis.com microservices.googleapis.com
    8. Configura la autenticación:

      1. Asegúrate de tener los roles de IAM de creador de cuentas de servicio (roles/iam.serviceAccountCreator) y administrador de IAM del proyecto (roles/resourcemanager.projectIamAdmin). Obtén más información para otorgar roles.
      2. Crea la cuenta de servicio:

        gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

        Reemplaza SERVICE_ACCOUNT_NAME por un nombre para la cuenta de servicio.

      3. Otorga roles a la cuenta de servicio. Ejecuta el siguiente comando una vez para cada uno de los siguientes roles de IAM: roles/logging.logWriter, roles/monitoring.metricWriter, roles/cloudtrace.agent:

        gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE

        Reemplaza lo siguiente:

        • SERVICE_ACCOUNT_NAME: el nombre de la cuenta de servicio
        • PROJECT_ID: el ID del proyecto en el que creaste la cuenta de servicio
        • ROLE: el rol a otorgar
      4. Otorga el rol requerido a la principal que conectará la cuenta de servicio a otros recursos.

        gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser

        Reemplaza lo siguiente:

        • SERVICE_ACCOUNT_NAME: el nombre de la cuenta de servicio
        • PROJECT_ID: el ID del proyecto en el que creaste la cuenta de servicio
        • USER_EMAIL: La dirección de correo electrónico de una Cuenta de Google
    9. Instala Google Cloud CLI.

    10. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

    11. Para inicializar gcloud CLI, ejecuta el siguiente comando:

      gcloud init
    12. Crea o selecciona un Google Cloud proyecto.

      Roles necesarios para seleccionar o crear un proyecto

      • Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
      • Crear un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos (roles/resourcemanager.projectCreator), que contiene el permiso resourcemanager.projects.create. Obtén más información para otorgar roles.
      • Crea un Google Cloud proyecto:

        gcloud projects create PROJECT_ID

        Reemplaza PROJECT_ID por un nombre para el proyecto Google Cloud que estás creando.

      • Selecciona el proyecto Google Cloud que creaste:

        gcloud config set project PROJECT_ID

        Reemplaza PROJECT_ID por el nombre de tu Google Cloud proyecto.

    13. Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .

    14. Habilita las APIs de Compute Engine y de Microservices:

      Roles necesarios para habilitar las APIs

      Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

      gcloud services enable compute.googleapis.com microservices.googleapis.com
    15. Configura la autenticación:

      1. Asegúrate de tener los roles de IAM de creador de cuentas de servicio (roles/iam.serviceAccountCreator) y administrador de IAM del proyecto (roles/resourcemanager.projectIamAdmin). Obtén más información para otorgar roles.
      2. Crea la cuenta de servicio:

        gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

        Reemplaza SERVICE_ACCOUNT_NAME por un nombre para la cuenta de servicio.

      3. Otorga roles a la cuenta de servicio. Ejecuta el siguiente comando una vez para cada uno de los siguientes roles de IAM: roles/logging.logWriter, roles/monitoring.metricWriter, roles/cloudtrace.agent:

        gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE

        Reemplaza lo siguiente:

        • SERVICE_ACCOUNT_NAME: el nombre de la cuenta de servicio
        • PROJECT_ID: el ID del proyecto en el que creaste la cuenta de servicio
        • ROLE: el rol a otorgar
      4. Otorga el rol requerido a la principal que conectará la cuenta de servicio a otros recursos.

        gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser

        Reemplaza lo siguiente:

        • SERVICE_ACCOUNT_NAME: el nombre de la cuenta de servicio
        • PROJECT_ID: el ID del proyecto en el que creaste la cuenta de servicio
        • USER_EMAIL: La dirección de correo electrónico de una Cuenta de Google
    16. Lee la descripción general de la observabilidad de microservicios.
    17. Lee sobre las dos variables de entorno compatibles, decide cuál vas a usar y determina los valores que requiere la variable de entorno.