Monitorización y consultas multitenant

En este documento se describe cómo puedes dar acceso a diferentes conjuntos de proyectos a distintos equipos. Puedes establecer este tipo de monitorización multiempresa usando permisos de métricas en combinación con varias instancias de Grafana y varios sincronizadores de fuentes de datos.

Solo tienes que configurar una instancia de Grafana y un sincronizador de fuentes de datos por cada permiso de métricas, independientemente del número de proyectos que haya en el permiso de métricas o de las Google Cloud regiones que utilices:

  • Las consultas a Monarch se amplían automáticamente a todos los proyectos de un ámbito de métricas, a menos que se incluya un filtro project_id.

  • Las consultas se ejecutan en todas las regiones, a menos que se incluya un filtro location.

No es necesario que cambie nada en la parte de la ingestión para conseguir una monitorización multiinquilino.

En el siguiente diagrama se muestra una configuración para la monitorización multicliente:

Puedes configurar Managed Service para Prometheus con una combinación de recogida gestionada y autodesplegada.

Para configurar y usar una configuración como la del diagrama, configura los ámbitos de tus métricas, las instancias de Grafana y los sincronizadores de fuentes de datos de la siguiente manera:

  • Quieres que el equipo de desarrollo A pueda leer y acceder a los proyectos 1 y 2. Para configurar este acceso, sigue estos pasos:

    • Incluye el proyecto 1 y el proyecto 2 en el ámbito de las métricas de scoping_project_A.

    • Coloca un sincronizador de fuentes de datos en el proyecto 1 y configúralo para que use scoping_project_A. Concede a la cuenta de servicio del sincronizador los permisos de lector de Monitoring para scoping_project_A.

    Cuando un usuario envía consultas desde la instancia de Grafana asociada a este sincronizador de fuentes de datos, Monarch amplía scoping_project_A a los proyectos monitorizados que lo componen y devuelve resultados de los proyectos 1 y 2 en todas las Google Cloud regiones. Como la instancia de Grafana y el sincronizador de fuentes de datos se encuentran en el proyecto 1, solo los usuarios que tengan acceso al proyecto 1 podrán consultar scoping_project_A.

  • Quieres que el equipo de desarrollo B pueda leer y acceder a los proyectos 3 y 4. Para configurar este acceso, sigue estos pasos:

    • Incluye los proyectos 3 y 4 en el ámbito de métricas de scoping_project_B.

    • Coloca un sincronizador de fuentes de datos en el proyecto 3 y configúralo para que use scoping_project_B. Concede a la cuenta de servicio del sincronizador los permisos de lector de Monitoring para scoping_project_B.

    Cuando un usuario envía consultas desde la instancia de Grafana asociada a este sincronizador de fuentes de datos, Monarch amplía scoping_project_B a sus proyectos monitorizados constituyentes y devuelve resultados de los proyectos 3 y 4 en todas las Google Cloud regiones. Como la instancia de Grafana y el sincronizador de fuentes de datos se encuentran en el proyecto 3, solo los usuarios que tengan acceso a este proyecto podrán consultar scoping_project_B.

  • Quieres que el equipo de ingenieros de fiabilidad del sitio pueda leer y acceder a los proyectos 1, 2, 3, 4 y 5. Para configurar este acceso, haz lo siguiente:

    • Incluye todos los proyectos en el ámbito de las métricas de scoping_project_C.

    • Coloca un sincronizador de fuentes de datos en el proyecto 5 y configúralo para que use scoping_project_C. Da a la cuenta de servicio del sincronizador permisos de lector de Monitoring para scoping_project_C.

    Cuando un usuario envía consultas desde la instancia de Grafana asociada a este sincronizador de fuentes de datos, Monarch amplía scoping_project_C a sus proyectos monitorizados constituyentes y devuelve resultados de los proyectos 1, 2, 3, 4 y 5 en todas las Google Cloud regiones. Como la instancia de Grafana y el sincronizador de fuentes de datos se encuentran en el proyecto 5, solo los usuarios que tengan acceso a este proyecto podrán consultar scoping_project_C.