Importar paneles de Grafana a Cloud Monitoring

En este documento se describe cómo importar archivos de panel de control en formato JSON de Grafana a Cloud Monitoring. Puedes importar paneles de control de Grafana de las siguientes formas:

El proceso de importación convierte los archivos de panel de control del formato JSON que usa Grafana al formato JSON que usa Cloud Monitoring. Un panel de control convertido puede ser diferente del panel de control de Grafana original. Por ejemplo, si un panel de control de Grafana usa funciones que no están disponibles en los paneles de control de Cloud Monitoring, esos aspectos del panel de control de Grafana no se convertirán. Estas diferencias se indican en los resultados de la importación.

Solo puede importar paneles de control que usen expresiones PromQL y fuentes de datos de Prometheus. Es posible que los paneles de control que usen otras formas de consulta o fuentes de datos no se importen correctamente.

Para obtener información sobre cómo importar alertas de Prometheus a Cloud Monitoring, consulta el artículo sobre cómo migrar reglas y receptores de alertas de Prometheus.

Para obtener información general sobre cómo gestionar los paneles de control importados, consulta el artículo Crear y gestionar paneles de control personalizados.

Antes de empezar

Tanto si usas la Google Cloud consola como la herramienta de importación para importar tus paneles de control, debes tener la autorización suficiente y paneles de control que importar. Cuando se usa la herramienta de importación, hay requisitos adicionales.

Autorización

Para obtener los permisos que necesitas para crear y modificar paneles de control personalizados, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Editor de Monitoring (roles/monitoring.editor) en tu proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Para obtener más información sobre los roles, consulta Controlar el acceso con Gestión de Identidades y Accesos.

Recopila los paneles de control de Grafana que quieras importar.

Para importar paneles de control de Grafana, debes tenerlos almacenados localmente como archivos en formato JSON. Te recomendamos que crees un directorio específico para estos archivos de panel de control.

Importar paneles de control con la consola Google Cloud

Puedes importar paneles de control de Grafana a Cloud Monitoring desde la página Paneles de control de Monitoring en la Google Cloud consola.

Importar paneles de control de Grafana

Para importar uno o varios paneles de control de Grafana, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página  Paneles de control:

    Ve a Paneles.

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.

  2. En la barra de herramientas de la Google Cloud consola, selecciona tu Google Cloud proyecto. En el caso de las configuraciones de App Hub, seleccione el proyecto host de App Hub o el proyecto de gestión de la carpeta habilitada para aplicaciones.

  3. Haz clic en Importar panel de control.

  4. Haz clic en Browse (Examinar) para ir al directorio donde has almacenado tus paneles de control de Grafana en formato JSON y selecciona los que quieras importar.

    Cada archivo JSON se añade a la lista después de seleccionarlo. El panel Archivos añadidos indica si hay algún problema en la conversión.

    • Haz clic en  Ver JSON convertido para ver los resultados de la conversión.
    • Haga clic en  Quitar archivo para quitar un panel de control de la operación de importación.
  5. Haz clic en  Importar. En el panel Resultados de la importación se indica si cada panel de control se ha importado correctamente o no.

  6. Para ver un panel de control que se ha importado correctamente, haz clic en  Ver.

Ver los paneles de control importados

Para ver los paneles de control que ha importado, siga estos pasos:

  1. En la Google Cloud consola, ve a la página  Paneles de control:

    Ve a Paneles.

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.

  2. En la barra de herramientas de la Google Cloud consola, selecciona tu Google Cloud proyecto. En el caso de las configuraciones de App Hub, seleccione el proyecto host de App Hub o el proyecto de gestión de la carpeta habilitada para aplicaciones.
  3. Busca en la lista el panel que quieras ver. Para filtrar la lista de paneles de control, puede hacer lo siguiente:

    • En el menú Tipo, selecciona Personalizado.
    • En el panel Etiquetas, selecciona la etiqueta cloud-monitoring-dashboard-importer para ver solo los paneles de Grafana importados mediante la consola Google Cloud .

    • Usa la barra de filtros para buscar por nombre.

Añadir o quitar etiquetas definidas por el usuario

Solo puedes añadir etiquetas a los paneles de control personalizados, incluidos los que importes. Cuando en un panel de control se muestra el botón Añadir etiquetas al panel de control, puede configurar las etiquetas que se aplican al panel.

Para añadir o quitar etiquetas definidas por el usuario de un panel de control, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página  Paneles de control:

    Ve a Paneles.

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.

  2. En la lista de paneles de control, busca el panel y haz clic en Añadir etiquetas al panel de control.
  3. Realiza una de estas acciones:
    • Para crear una etiqueta y añadirla a tu panel de control, ve a la sección Crear etiqueta, introduce el nombre de la etiqueta en el cuadro de texto y haz clic en Crear y aplicar.

    • Para configurar las etiquetas que se añaden a tu panel de control, haz clic en Seleccionar etiquetas que aplicar, selecciona las etiquetas y, a continuación, haz clic en Aceptar.
  4. Para guardar los cambios, haz clic en Confirmar.

Importar paneles de control con la herramienta de importación

Puedes usar la herramienta de importación para convertir los paneles de Grafana y subirlos a Cloud Monitoring en una sola operación, o bien puedes realizar los pasos de conversión y subida por separado. Puedes elegir este método si quieres editar los paneles de control convertidos antes de subirlos.

Requisitos previos adicionales

Para poder instalar y ejecutar el importador de paneles de control, debes hacer lo siguiente:

  1. Usa un entorno que admita secuencias de comandos de shell Bash.
  2. Tener o instalar Git.
  3. Tener o instalar Node.js, versión 20.4.1 o posterior.
  4. Tener o instalar Google Cloud CLI. Si ya tienes instalada la CLI de gcloud, asegúrate de que tienes la versión más reciente ejecutando el comando gcloud components update.

Obtener el importador de paneles de control

El importador de paneles de control se almacena en el monitoring-dashboard-samplesrepositorio de GitHub. Para obtener y configurar el importador, sigue estos pasos:

  1. Clona el repositorio:

    git clone https://github.com/GoogleCloudPlatform/monitoring-dashboard-samples
    
  2. Cambia al directorio del importador de paneles de control:

    cd monitoring-dashboard-samples/scripts/dashboard-importer
    
  3. Instala los módulos de nodo y compila los archivos

    npm install && npm run build
    

El importador de paneles de control incluye las siguientes secuencias de comandos:

  • import.sh, que convierte los paneles de control y, opcionalmente, los sube a Cloud Monitoring.

  • upload.sh, que sube los paneles de control convertidos (o cualquier panel de control de Monitoring) a Cloud Monitoring. La secuencia de comandos import.sh llama a esta secuencia de comandos para realizar la subida.

Cuando usas la secuencia de comandos import.sh, debes especificar la ubicación de los paneles de control de Grafana que quieras convertir. El importador crea un directorio que contiene los paneles de control convertidos y otra información. En las siguientes secciones se describen estos directorios.

Paneles de control de Grafana que se van a convertir

Puedes usar el importador de paneles de control para convertir uno o varios paneles a la vez especificando la ruta a los archivos de los paneles.

  • Puedes especificar la ruta a un directorio que contenga paneles de control. Solo se procesan los archivos del directorio que tengan la extensión .json.

  • Puedes especificar la ruta a un único archivo JSON. El nombre del archivo debe tener la extensión .json.

Paneles convertidos y otra información

Cuando el importador se ejecuta por primera vez, crea un subdirectorio reports. Cada vez que ejecutas el importador, se crea un nuevo directorio de salida en el directorio reports, cuyo nombre se compone de la fecha y la hora. El nombre del directorio de salida tiene la siguiente estructura:
reports/YYYY-M-D/HH:MM:SS

En cada invocación del importador, el directorio de salida contiene lo siguiente:

  • Uno o varios archivos con los mismos nombres que los paneles de Grafana originales, pero ahora en formato JSON de Cloud Monitoring.
  • Un archivo report.json, que registra la siguiente información de cada panel convertido:
    • Nombre y ubicación del archivo del panel de Grafana que se ha convertido.
    • Nombre y ubicación del archivo del panel de control de Monitoring convertido.
    • Avisos sobre las funciones del panel de control de Grafana que no tienen una función correspondiente en Cloud Monitoring y, por lo tanto, no se han podido incluir en el panel de control convertido.
    • Los errores que se hayan producido durante la conversión.

Si has subido los paneles de control, el directorio de informes también incluye un archivo upload_HH:MM:SS.txt, que contiene la URL a la que se ha subido el panel de control.

Importar paneles de control de Grafana

Para convertir paneles de control de Grafana y subirlos a Cloud Monitoring, usa la secuencia de comandos import.sh:

./import.sh PATH_TO_DIRECTORY_OR_FILE PROJECT_ID

Este script hace lo siguiente:

  1. Convierte los paneles de control de PATH_TO_DIRECTORY_OR_FILE del formato JSON que usa Grafana al formato JSON que usa Cloud Monitoring.
  2. Sube los paneles de control convertidos a tu Google Cloud proyectoPROJECT_ID mediante Google Cloud CLI.

    Si no te has autenticado en la CLI de gcloud, ejecuta el comando gcloud auth login antes de ejecutar la secuencia de comandos import.sh.

Puede importar todos los paneles de Grafana de un directorio o especificar un único panel del directorio que quiera importar.

  • Para importar todos los paneles de control del directorio GRAFANA_DASHBOARDS_DIR al proyecto PROJECT_ID Google Cloud , especifica el directorio (en relación con el directorio del importador) y el ID del proyecto de destino al invocar la secuencia de comandos:

    ./import.sh GRAFANA_DASHBOARDS_DIR PROJECT_ID
    
  • Para convertir solo el panel de control MY_GRAFANA_DASHBOARD.json del directorio GRAFANA_DASHBOARDS_DIR, incluye el nombre del archivo del panel de control, relativo al directorio del importador, al invocar la secuencia de comandos:

    ./import.sh GRAFANA_DASHBOARDS_DIR/MY_GRAFANA_DASHBOARD.json PROJECT_ID
    

El importador de paneles de control incluye un panel de control de Grafana de ejemplo como examples/k8s_cluster_example.json. El siguiente comando importa ese panel de control al proyecto especificado:

./import.sh examples/k8s_cluster_example.json PROJECT_ID

Cuando se invoca con PROJECT_ID my-project-test-1, el resultado es similar al siguiente:

Converting: Kubernetes Cluster Overview
✓ Kubernetes Cluster Overview converted successfully

Conversion of examples/k8s_cluster_example.json complete. Conversion Report located at: reports/2023-9-28/22:14:57/report.json

To upload these dashboard(s) manually, you can run:
./upload.sh reports/2023-9-28/22:14:57/ <PROJECT_ID>

Conversion Complete. Proceeding to uploading...

Now running: ./upload.sh reports/2023-9-28/22:14:57/ my-project-test-1

Uploading 1 dashboard(s) from a directory with the following args:
Directory: reports/2023-9-28/22:14:57/
Project: my-project-test-1

The following are your dashboards:
- k8s_cluster_example.json

Una vez que la secuencia de comandos import.sh haya creado el directorio de salida y convertido los paneles de control, pero antes de subir los paneles de control convertidos a tu proyecto, te pedirá que confirmes la acción. Introduce y y la secuencia de comandos sube el panel de control e imprime la URL del nuevo panel:

Would you like to continue? (y/n) y

✓ k8s_cluster_example.json successfully uploaded:
https://console.cloud.google.com/monitoring/dashboards/builder/9c341ef8-cfef-4bdd-98d5-821571c520ef?project=my-project-test-1

Upload log created in reports/2023-9-28/22:14:57/upload_22:14:57.txt

Need to troubleshoot? Please visit:
https://github.com/GoogleCloudPlatform/monitoring-dashboard-samples/tree/master/scripts/dashboard-importer/README.md#troubleshooting

Convertir paneles de Grafana sin subirlos

Si quieres inspeccionar o editar los paneles de control convertidos antes de subirlos, omite el valor PROJECT_ID al invocar la secuencia de comandos import.sh:

./import.sh PATH_TO_DIRECTORY_OR_FILE

El importador convierte los paneles de control tal como se describe en Importar paneles de control de Grafana, pero no sube los paneles de control convertidos a Cloud Monitoring.

Puedes ejecutar el paso de subida más adelante mediante la secuencia de comandos upload.sh manualmente.

Subir paneles de control manualmente

Para subir manualmente paneles de control en formato JSON de Cloud Monitoring, usa la secuencia de comandos upload.sh.

    ./upload.sh PATH_TO_DIRECTORY_OR_FILE PROJECT_ID

La secuencia de comandos upload.sh usa la CLI de Google Cloud para subir los archivos JSON. Si no te has autenticado en la interfaz de línea de comandos de gcloud, ejecuta el comando gcloud auth login antes de ejecutar la secuencia de comandos upload.sh.

  • Para subir todos los paneles de control de un directorio reports/YYYY-M-D/HH:MM:SS, especifica el directorio, en relación con el directorio del importador, y el ID del proyecto de destino al invocar la secuencia de comandos:

    ./upload.sh reports/YYYY-M-D/HH:MM:SS PROJECT_ID
    

    Cuando subas todos los paneles de control de un directorio, la secuencia de comandos te pedirá que confirmes si quieres continuar o salir antes de subir los paneles de control.

  • Para subir un panel de control específico en un directorio reports/YYYY-M-D/HH:MM:SS, especifica el directorio y el nombre del archivo, en relación con el directorio del importador, y el ID del proyecto de destino al invocar la secuencia de comandos:

    ./upload.sh reports/YYYY-M-D/HH:MM:SS/MY_MONITORING_DASHBOARD.json PROJECT_ID
    

    Cuando se sube un solo panel de control desde un directorio, la secuencia de comandos se ejecuta sin pedirte confirmación antes de subir los paneles.

Por ejemplo, el siguiente comando sube un panel de control almacenado en un subdirectorio reports al proyecto Google Cloud my-project-test-1:

./upload.sh reports/2023-9-26/22:48:31/k8s_cluster_example.json my-project-test-1
Uploading json file: k8s_cluster_example.json to project: my-project-test-1...

✓ k8s_cluster_example.json successfully uploaded:
https://console.cloud.google.com/monitoring/dashboards/builder/25956d9a-93e2-410c-ada1-ec6872cb6665?project=my-project-test-1

Ver los paneles de control que has subido

Para ver los paneles de control que ha subido, siga estos pasos:

  1. En la Google Cloud consola, ve a la página  Paneles de control:

    Ve a Paneles.

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.

  2. Busca en la lista el panel que quieras ver. Para filtrar la lista de paneles de control, puede hacer lo siguiente:

    • Selecciona la categoría Personalizado para ver solo los paneles de control definidos por el usuario.
    • Selecciona la etiqueta cloud-ops-grafana-importer para ver solo los paneles de Grafana importados con la herramienta de importación.
    • Usa la barra de filtros para buscar por nombre.

Solución de problemas

De vez en cuando, publicamos pequeñas actualizaciones y correcciones de errores en la herramienta. Antes de intentar solucionar el problema, prueba a corregirlo usando git pull para descargar la versión más reciente del repositorio y, a continuación, vuelve a importarlo.

Para obtener información sobre los problemas con los paneles de control convertidos, como que los gráficos no muestren datos, consulta el archivo README del importador.

Siguientes pasos