Usa el archivo adicional de Prometheus para Cloud Run

El archivo adicional para Cloud Run del servicio administrado para Prometheus es la forma recomendada de Google para obtener la supervisión al estilo de Prometheus para los servicios de Cloud Run. Si tu servicio de Cloud Run escribe métricas de OTLP, puedes usar el archivo adicional de OpenTelemetry. Sin embargo, para los servicios que escriben métricas de Prometheus, usa el archivo adicional del servicio administrado para Prometheus que se describe en este documento.

En este documento, se describe cómo hacer lo siguiente:

El archivo adicional usa Google Cloud Managed Service para Prometheus en el servidor y una distribución del recopilador de OpenTelemetry, creado de forma personalizada para las cargas de trabajo sin servidores, en la parte del cliente. Esta distribución personalizada incluye algunos cambios para admitir Cloud Run. El colector realiza una recopilación de inicio después de 10 segundos y realiza una recopilación, sin importar qué tan corta sea la instancia. Para obtener la máxima confiabilidad, recomendamos que los servicios de Cloud Run que ejecutan el archivo adicional también usen una CPU siempre asignada. Para obtener más información, consulta Asignación de CPU (servicios). Algunos intentos de recopilación pueden fallar si la asignación de CPU está limitada debido a una cantidad baja de consultas por segundo (QPS). Una CPU siempre asignada permanece disponible.

El archivo adicional se basa en la función de varios contenedores (archivo adicional) de Cloud Run para ejecutar el recopilador como un contenedor de archivos adicionales junto con el contenedor de carga de trabajo. Para obtener más información sobre los archivos adicionales en Cloud Run, consulta Implementa varios contenedores en un servicio (archivos adicionales).

El servicio administrado para el archivo adicional de Prometheus para Cloud Run ingresa una configuración nueva, RunMonitoring, un subconjunto del recurso personalizado PodMonitoring de Kubernetes. La mayoría de los usuarios pueden usar la configuración RunMonitoring predeterminada, pero también puedes crear configuraciones personalizadas. Para obtener más información sobre las opciones de configuración RunMonitoring predeterminadas y personalizadas, consulta Agrega el archivo adicional a un servicio de Cloud Run.

Antes de comenzar

Esta sección describe la configuración necesaria para usar este documento.

Instala y configura gcloud CLI

Muchos de los pasos que se describen en este documento usan Google Cloud CLI. Para obtener información sobre cómo instalar gcloud CLI, consulta Administra los componentes de Google Cloud CLI.

Cuando invocas comandos de gcloud, debes especificar el identificador para tu proyecto de Google Cloud. Puedes configurar un proyecto predeterminado para Google Cloud CLI y eliminar la necesidad de ingresarlo con cada comando. Para establecer tu proyecto como predeterminado, ingresa el siguiente comando:

gcloud config set project PROJECT_ID

También puedes configurar una región predeterminada para el servicio de Cloud Run. Para establecer una región predeterminada, ingresa el siguiente comando:

gcloud config set run/region REGION

Habilita las APIs

Debes habilitar las siguientes APIs en tu proyecto de Google Cloud:

  • API de Cloud Run Admin: run.googleapis.com
  • API de Artifact Registry: artifactregistry.googleapis.com
  • API de Cloud Monitoring: monitoring.googleapis.com
  • API de Cloud Logging: logging.googleapis.com
  • Si creas una configuración de RunMonitoring personalizada, debes habilitar la API de Secret Manager: secretmanager.googleapis.com
  • (Opcional) Si decides ejecutar la app de muestra mediante Cloud Build, también debes habilitar las siguientes APIs:
    • API de Cloud Build: cloudbuild.googleapis.com.
    • API de Identity and Access Management: iam.googleapis.com Para obtener más información, consulta Compila y ejecuta la app de muestra.

Para ver las APIs habilitadas en tu proyecto, ejecuta el siguiente comando:

gcloud services list

Para habilitar una API que no está habilitada, ejecuta uno de los siguientes comandos:

gcloud services enable run.googleapis.com
gcloud services enable artifactregistry.googleapis.com
gcloud services enable secretmanager.googleapis.com
gcloud services enable monitoring.googleapis.com
gcloud services enable logging.googleapis.com
gcloud services enable cloudbuild.googleapis.com
gcloud services enable iam.googleapis.com

Cuenta de servicio para Cloud Run

De forma predeterminada, los trabajos y servicios de Cloud Run usan la cuenta de servicio predeterminada de Compute Engine, PROJECT_NUMBER-compute@developer.gserviceaccount.com. Por lo general, esta cuenta de servicio tiene los roles de Identity and Access Management (IAM) necesarios para escribir las métricas y los registros que se describen en este documento:

  • roles/monitoring.metricWriter
  • roles/logging.logWriter

Si creas una configuración de RunMonitoring personalizada, tu cuenta de servicio también debe tener los siguientes roles:

  • roles/secretmanager.admin
  • roles/secretmanager.secretAccessor

También puedes configurar una cuenta de servicio administrada por el usuario para Cloud Run. Una cuenta de servicio administrada por el usuario también debe tener estas funciones. Para obtener más información sobre las cuentas de servicio de Cloud Run, consulta Configura la identidad del servicio.

Configura y agrega el archivo adicional a un servicio de Cloud Run

El servicio administrado para el archivo adicional de Prometheus para Cloud Run presenta una configuración nueva, RunMonitoring, que es un subconjunto del recurso personalizado PodMonitoring de Kubernetes. La configuración RunMonitoring usa las opciones PodMonitoring existentes para admitir Cloud Run y, a la vez, eliminar algunas opciones específicas de Kubernetes.

Puedes usar la configuración RunMonitoring predeterminada o crear una personalizada. En las siguientes secciones, se describen ambos enfoques. No es necesario que lo hagas desde ambos servicios. Para obtener más información sobre el uso de configuraciones predeterminadas o personalizadas, selecciona la pestaña correspondiente.

Configuración predeterminada

Usa la configuración predeterminada de RunMonitoring

Si no creas una configuración RunMonitoring personalizada, el colector de archivo adicional sintetiza la siguiente configuración predeterminada para recopilar métricas del puerto 8080 en la ruta de métricas /metrics cada 30 segundos:

apiVersion: monitoring.googleapis.com/v1beta
kind: RunMonitoring
metadata:
  name: run-gmp-sidecar
spec:
  endpoints:
  - port: 8080
    path: /metrics
    interval: 30s

El uso de la configuración predeterminada no requiere ninguna configuración adicional además de agregar el archivo adicional a tu servicio de Cloud Run.

Agrega el archivo adicional a un servicio de Cloud Run

Si quieres usar el archivo adicional con la configuración RunMonitoring predeterminada, debes modificar tu configuración existente de Cloud Run para agregar el archivo adicional. Para agregar el archivo adicional, haz lo siguiente:

  • Agrega una anotación de dependencia de contenedor que especifique el orden de inicio y apagado de los contenedores. En el siguiente ejemplo, el contenedor del archivo adicional, llamado “collector”, comienza y se cierra antes del contenedor de la aplicación, llamado “app” en el ejemplo.
  • Crea un contenedor para el recopilador, llamado “collector” en el ejemplo siguiente.

Por ejemplo, agrega las líneas precedidas por el carácter + (más) a tu configuración de Cloud Run y, luego, vuelve a implementar el servicio:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  annotations:
    run.googleapis.com/launch-stage: ALPHA
    run.googleapis.com/cpu-throttling: 'false'
  name: my-cloud-run-service
spec:
  template:
    metadata:
      annotations:
        run.googleapis.com/execution-environment: gen2
+       run.googleapis.com/container-dependencies: '{"collector":["app"]}'
    spec:
      containers:
      - image: "REGION-docker.pkg.dev/PROJECT_ID/run-gmp/sample-app"
        name: app
        startupProbe:
          httpGet:
            path: /startup
            port: 8000
        livenessProbe:
          httpGet:
            path: /liveness
            port: 8000
        ports:
        - containerPort: 8000
+     - image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/cloud-run-gmp-sidecar/cloud-run-gmp-sidecar:1.1.1"
+       name: collector

Para volver a implementar el servicio de Cloud Run con el archivo de configuración run-service.yaml, ejecuta el siguiente comando:

gcloud run services replace run-service.yaml --region=REGION

Configuración personalizada

Crea una configuración personalizada de RunMonitoring

Puedes crear una configuración RunMonitoring para un servicio de Cloud Run si la configuración predeterminada no es suficiente. Por ejemplo, podrías crear un conjunto de datos como el que se muestra a continuación:

apiVersion: monitoring.googleapis.com/v1beta
kind: RunMonitoring
metadata:
  name: my-custom-cloud-run-job
spec:
  endpoints:
  - port: 8080
    path: /metrics
    interval: 10s
    metricRelabeling:
    - action: replace
      sourceLabels:
      - __address__
      targetLabel: label_key
      replacement: label_value
  targetLabels:
    metadata:
    - service
    - revision

Esta configuración hace lo siguiente:

  • Extrae métricas del puerto 8080 y usa la ruta de acceso de métricas predeterminada /metrics.
  • Usa un intervalo de extracción de 10 segundos.
  • Usa el reetiquetado para agregar la etiqueta label_key con el valor label_value a cada métrica extraída.
  • Agrega las etiquetas de metadatos service y revision a cada métrica extraída.

Para obtener más información sobre las opciones de configuración disponibles, consulta las Especificación de RunMonitoring: opciones de configuración.

Cuando usas una configuración de RunMonitoring personalizada, debes realizar la siguiente configuración adicional:

Almacena la configuración mediante Secret Manager

Para proporcionar una configuración personalizada RunMonitoring, haz lo siguiente:

  • Crea un archivo que contenga la configuración personalizada.
  • Crea un secreto de Secret Manager que contenga la configuración personalizada.

El siguiente comando crea un Secret llamado mysecret desde el archivo custom-config.yaml:

gcloud secrets create mysecret --data-file=custom-config.yaml

Para detectar un cambio en la configuración después de modificar el archivo custom-config.yaml, debes borrar y volver a crear el Secret y, luego, volver a implementar el servicio de Cloud Run.

Actualiza la configuración en Secret Manager

Si quieres actualizar la configuración RunMonitoring personalizada en cualquier momento, puedes agregar una versión nueva del secreto existente a Secret Manager.

Por ejemplo, para actualizar mysecret con una configuración nueva almacenada en el archivo custom-config-updated.yaml, puedes ejecutar lo siguiente:

gcloud secrets versions add mysecret --data-file=custom-config-updated.yaml

El archivo adicional se vuelve a cargar y aplica de forma automática los cambios a su configuración.

Agrega el archivo adicional a un servicio de Cloud Run

Después de crear un Secret de Secret Manager para la configuración de RunMonitoring, debes modificar la configuración de Cloud Run a fin de que realice lo siguiente:

  • Agregar el archivo adicional del servicio administrado para Prometheus
    • Agrega una anotación de dependencia de contenedor que especifique el orden de inicio y apagado de los contenedores. En el siguiente ejemplo, el contenedor del archivo adicional, llamado “collector”, comienza y se cierra antes del contenedor de la aplicación, llamado “app” en el ejemplo.
    • Crea un contenedor para el recopilador, llamado “collector” en el ejemplo siguiente.
  • Para agregar el Secret, actívalo en la ubicación /etc/rungmp/config.yaml:
    • Agrega una anotación de Secrets que apunte al Secret que contiene tu configuración RunMonitoring personalizada.
    • Crea un volumen, llamado “config” en el siguiente ejemplo, para el Secret que apunta al archivo config.yaml.
    • Activa el volumen como parte de la imagen de recopilador en la ruta de activación /etc/rungmp.

Por ejemplo, agrega las líneas precedidas por el carácter + (más) a tu configuración de Cloud Run y, luego, vuelve a implementar el servicio:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  annotations:
    run.googleapis.com/launch-stage: ALPHA
    run.googleapis.com/cpu-throttling: 'false'
  name: my-cloud-run-service
spec:
  template:
    metadata:
      annotations:
        run.googleapis.com/execution-environment: gen2
+       run.googleapis.com/container-dependencies: '{"collector":["app"]}'
+       run.googleapis.com/secrets: 'mysecret:projects/PROJECT_ID/secrets/mysecret'
    spec:
      containers:
      - image: "REGION-docker.pkg.dev/PROJECT_ID/run-gmp/sample-app"
        name: app
        startupProbe:
          httpGet:
            path: /startup
            port: 8000
        livenessProbe:
          httpGet:
            path: /liveness
            port: 8000
        ports:
        - containerPort: 8000
+     - image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/cloud-run-gmp-sidecar/cloud-run-gmp-sidecar:1.1.1"
+       name: collector
+       volumeMounts:
+       - mountPath: /etc/rungmp/
+         name: config
+     volumes:
+     - name: config
+       secret:
+         items:
+         - key: latest
+           path: config.yaml
+         secretName: 'mysecret'

Para volver a implementar el servicio de Cloud Run con el archivo de configuración run-service.yaml, ejecuta el siguiente comando:

gcloud run services replace run-service.yaml --region=REGION

Especificación de RunMonitoring: opciones de configuración

En esta sección, se describe las especificación de configuración de RunMonitoring para el archivo adicional del servicio administrado para Prometheus. A continuación, se muestra un ejemplo de configuración personalizada:

apiVersion: monitoring.googleapis.com/v1beta
kind: RunMonitoring
metadata:
  name: my-custom-cloud-run-job
spec:
  endpoints:
  - port: 8080
    path: /metrics
    interval: 10s
    metricRelabeling:
    - action: replace
      sourceLabels:
      - __address__
      targetLabel: label_key
      replacement: label_value
  targetLabels:
    metadata:
    - service
    - revision

RunMonitoring

La configuración RunMonitoring supervisa un Service de Cloud Run.

Campo Descripción Esquema Requeridos
metadata Metadatos que deben tener todos los recursos persistentes. metav1.ObjectMeta falso
spec Especificación de la implementación de Cloud Run seleccionada para el descubrimiento de destino por Prometheus. RunMonitoringSpec true
RunMonitoringSpec

En esta especificación, se describe cómo la configuración RunMonitoring supervisa un servicio de Cloud Run.

Campo Descripción Esquema Requeridos
endpoints Extremos para recopilar en los Pods seleccionados. []ScrapeEndpoint true
targetLabels Etiquetas para agregar al destino de Prometheus para los extremos descubiertos. La etiqueta instance siempre se configura como el ID de la instancia de Cloud Run. RunTargetLabels falso
limits Límites para aplicar en el momento de la extracción. *ScrapeLimits falso
RunTargetLabels

La configuración RunTargetLabels te permite incluir etiquetas de Cloud Run de los destinos de Prometheus detectados.

Campo Descripción Esquema Requeridos
metadata Son las etiquetas de metadatos de Cloud Run que se establecen en todos los destinos extraídos.

Las claves permitidas son instance, revision, service y configuration.

Si se configuran claves permitidas, el archivo adicional agrega el valor correspondiente de la instancia de Cloud Run como etiquetas de métrica a cada métrica: instanceID ,revision_name ,service_name yconfiguration_name.

De forma predeterminada, se establecen todas las claves permitidas.
*[]string falso

Compila y ejecuta una app de muestra

En esta sección, se describe cómo ejecutar el archivo adicional del servicio administrado para Prometheus con una app de muestra. Esta sección es opcional. Si ya tienes un servicio de Cloud Run y deseas implementar el archivo adicional, consulta Agrega el Service administrado para el archivo adicional de Prometheus a un servicio de Cloud Run.

Clona el repositorio run-gmp-sidecar

Para obtener la app de muestra y sus archivos de configuración, clona el repositorio run-gmp-sidecar mediante la ejecución del siguiente comando:

git clone https://github.com/GoogleCloudPlatform/run-gmp-sidecar/

Después de clonar el repositorio, cambia al directorio run-gmp-sidecar:

cd run-gmp-sidecar

Compila y ejecuta la app de muestra

La app de muestra requiere Docker o un sistema de compilación de contenedores similar para Linux. Puedes compilar y ejecutar la app de muestra de cualquiera de las siguientes maneras:

  • Usa Cloud Build para ejecutar sin asistencia local de Docker. Si usas Cloud Build, también debes habilitar la API de Cloud Build.
  • Compila y ejecuta la app de muestra de forma manual.

En las siguientes secciones, se describen ambos enfoques. No es necesario que lo hagas desde ambos servicios. Para obtener más información, selecciona la pestaña de uno de los enfoques.

Usa Cloud Build

Usa Cloud Build

El repositorio run-gmp-sidecar incluye archivos de configuración para Cloud Build. Estos archivos agrupan los pasos necesarios para compilar y, luego, implementar la app de muestra.

También puedes realizar de forma manual los pasos que controla Cloud Build. Para obtener más información, consulta Compila y ejecuta de forma manual.

Configuración para Cloud Build

Estos archivos de configuración requieren una cuenta de servicio de Cloud Build y un repositorio de Artifact Registry. El repositorio run-gmp-sidecar también incluye una secuencia de comandos, create-sa-and-ar.sh que hace lo siguiente:

  • Crea una cuenta de servicio, run-gmp-sa@PROJECT_ID.iam.gserviceaccount.com.
  • Otorga los siguientes roles a la cuenta de servicio:
      .
    • roles/iam.serviceAccountUser
    • roles/storage.objectViewer
    • roles/logging.logWriter
    • roles/artifactregistry.createOnPushWriter
    • roles/secretmanager.admin
    • roles/secretmanager.secretAccessor
    • roles/run.admin
  • Crea un repositorio de Artifact Registry, run-gmp, para tus imágenes de contenedor.

Para crear la cuenta de servicio run-gmp-sa y el repositorio run-gmp, ejecuta el siguiente comando:

./create-sa-and-ar.sh

Los permisos tardan un tiempo en propagarse, por lo que recomendamos esperar unos 30 segundos antes de continuar con el siguiente paso. De lo contrario, es posible que veas errores de autorización.

Envía una solicitud de Cloud Build

Después de configurar la cuenta de servicio run-gmp-sa y el repositorio run-gmp, puedes enviar un archivo de configuración de Cloud Build para iniciar un trabajo de Cloud Build. Puedes usar el siguiente comando de gcloud builds submit:

gcloud builds submit . --config=cloudbuild-simple.yaml --region=REGION

Este comando tarda varios minutos en ejecutarse, pero casi de inmediato indica dónde puedes encontrar los detalles de compilación de Cloud Build. El mensaje se ve de la siguiente manera:

Logs are available at [
https://console.cloud.google.com/cloud-build/builds/637860fb-7a14-46f2-861e-09c1dc4cea6b?project=PROJECT_NUMBER].

Para mirar el progreso de la compilación, navega a la URL que se muestra en tu navegador. También puedes ver los registros de archivo adicional en Cloud Logging.

Verifica la URL del servicio

Cuando finalice el trabajo de Cloud Build, ejecuta el siguiente comando para verificar la URL del extremo del servicio de Cloud Run:

gcloud run services describe my-cloud-run-service --region=REGION --format="value(status.url)"

Con este comando, se muestra la URL del servicio, que es similar a la siguiente:

https://my-cloud-run-service-abcdefghij-ue.a.run.app

Usa la URL que se muestra como el valor de SERVICE_URL en la sección Verifica que la app se esté ejecutando.

Compila y ejecuta de forma manual

Compila y ejecuta de forma manual

Puedes realizar los pasos que controla Cloud Build de forma manual, que se describen en Usa Cloud Build. En las siguientes secciones, se describe cómo realizar las mismas tareas de forma manual.

Establece variables para los pasos posteriores

Varios de los pasos posteriores usan variables de entorno para valores comunes. Configura estas variables con los siguientes comandos:

export GCP_PROJECT=PROJECT_ID
export REGION=REGION

Crea un repositorio de imágenes de contenedor

Crea un repositorio de Artifact Registry para la imagen de contenedor mediante la ejecución del siguiente comando:

gcloud artifacts repositories create run-gmp \
    --repository-format=docker \
    --location=${REGION}

Compila y envía la app de muestra

En este ejemplo, se usa Docker en Linux para compilar la app de muestra y enviarla a un repositorio de Artifact Registry. Es posible que debas adaptar estos comandos si trabajas en un entorno de Windows o macOS.

Para compilar la app de muestra y enviarla a Artifact Registry, haz lo siguiente:

  1. Autentica tu cliente de Docker con Google Cloud CLI:

    gcloud auth configure-docker ${REGION}-docker.pkg.dev
    
  2. Ve al directorio simple-app en el repositorio run-gmp-sidecar:

    pushd sample-apps/simple-app
    

  3. Compila la app simple-app mediante la ejecución del siguiente comando:

    docker build -t ${REGION}-docker.pkg.dev/${GCP_PROJECT}/run-gmp/sample-app .
    
  4. Envía la imagen de la app compilada mediante la ejecución del siguiente comando:

    docker push ${REGION}-docker.pkg.dev/${GCP_PROJECT}/run-gmp/sample-app
    

  5. Regresa al directorio run-gmp-sidecar:

    popd
    

Configura el servicio de Cloud Run

El archivo run-service-simple.yaml en el repositorio run-gmp-sidecar define un servicio de Cloud Run de varios contenedores que usa la app de muestra y las imágenes de recopilador que compilaste en los pasos anteriores. El archivo run-service-simple.yaml contiene la siguiente especificación del servicio:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  annotations:
    run.googleapis.com/launch-stage: ALPHA
    run.googleapis.com/cpu-throttling: 'false'
  name: my-cloud-run-service
spec:
  template:
    metadata:
      annotations:
        run.googleapis.com/execution-environment: gen2
        run.googleapis.com/container-dependencies: '{"collector":["app"]}'
    spec:
      containers:
      - image: "%SAMPLE_APP_IMAGE%"
        name: app
        startupProbe:
          httpGet:
            path: /startup
            port: 8000
        livenessProbe:
          httpGet:
            path: /liveness
            port: 8000
        ports:
        - containerPort: 8000
      - image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/cloud-run-gmp-sidecar/cloud-run-gmp-sidecar:1.1.1"
        name: collector

Este archivo contiene un valor de marcador de posición para las imágenes que compilaste en los pasos anteriores, por lo que debes actualizar los marcadores de posición con los valores reales para tu proyecto de Google Cloud.

Reemplaza el marcador de posición %SAMPLE_APP_IMAGE% por el siguiente comando:

sed -i s@%SAMPLE_APP_IMAGE%@REGION-docker.pkg.dev/${GCP_PROJECT}/run-gmp/sample-app@g run-service-simple.yaml

Implementa el servicio de Cloud Run

Después de actualizar el archivo run-service-simple.yaml con tus valores, puedes crear e implementar el servicio de Cloud Run mediante la ejecución del siguiente comando:

gcloud run services replace run-service-simple.yaml --region=REGION
   

Con este comando, se muestra la URL del servicio, que es similar a la siguiente:

https://my-cloud-run-service-abcdefghij-ue.a.run.app

Usa la URL que se muestra como el valor de SERVICE_URL en la sección Verifica que la app se esté ejecutando.

Permite el acceso HTTP no autenticado

Antes de realizar una solicitud a la URL del servicio, debes cambiar la política de servicio de Cloud Run para aceptar el acceso HTTP no autenticado. El archivo policy.yaml en el repositorio run-gmp-sidecar contiene el cambio necesario.

Para cambiar la política de servicio, ejecuta el siguiente comando:

gcloud run services set-iam-policy my-cloud-run-service policy.yaml --region=REGION

Verifica que la app se esté ejecutando

Para verificar que el servicio de Cloud Run haya ejecutado de forma correcta la app de muestra, usa la utilidad curl a fin de acceder al extremo metrics del servicio.

  1. Configura la variable de entorno SERVICE_URL en la URL de servicio de Cloud Run del paso anterior:

    export SERVICE_URL=SERVICE_URL
    
  2. Envía una solicitud a la URL del servicio mediante la ejecución del siguiente comando:

    curl $SERVICE_URL
    

Si la app se inició con éxito, verás la siguiente respuesta:

User request received!

Visualiza métricas de apps en el Explorador de métricas

El contenedor app de muestra escribe las siguientes métricas:

  • foo_metric: La hora actual como un valor de punto flotante (indicador).
  • bar_metric: La hora actual como un valor de punto flotante (contador).

Para ver estas métricas en el Explorador de métricas, sigue estos pasos:

  1. En el panel de navegación de la consola de Google Cloud, elige Monitoring y, luego,  Explorador de métricas:

    Ir al Explorador de métricas

  2. En la barra de herramientas del panel del compilador de consultas, selecciona el botón cuyo nombre sea MQL o PromQL.

  3. Verifica que PromQL esté seleccionado en el botón de activación Lenguaje. El botón de activación de lenguaje se encuentra en la misma barra de herramientas que te permite dar formato a tu consulta.

  4. Ingresa la siguiente consulta en el panel del editor:

    foo_metric
    
  5. Haz clic en Agregar consulta.

  6. En la barra de herramientas del panel del compilador de consultas, selecciona el botón cuyo nombre sea MQL o PromQL.

  7. Verifica que PromQL esté seleccionado en el botón de activación Lenguaje. El botón de activación de lenguaje se encuentra en la misma barra de herramientas que te permite dar formato a tu consulta.

  8. Ingresa la siguiente consulta en el segundo panel del editor:

    bar_metric
    
  9. Haz clic en Ejecutar consulta.

  10. Para ver los detalles de las métricas, en el botón de activación Gráfico de tablas de ambos, selecciona Ambos.

Limpia

Cuando termines de experimentar con la app de ejemplo, puedes usar la secuencia de comandos clean-up-cloud-run.sh en el repositorio run-gmp-sidecar para borrar los siguientes recursos que puedes haber creado para la muestra:

  • El servicio de Cloud Run.
  • El repositorio de Artifact Registry.
  • La cuenta de servicio creada para Cloud Build.

Borrar estos recursos garantiza que no se generen costos después de ejecutar la muestra.

Para limpiar la app de muestra, ejecuta la secuencia de comandos clean-up-cloud-run.sh:

./clean-up-cloud-run.sh

Visualiza métricas propias en el Explorador de métricas

El archivo adicional del servicio administrado para Prometheus informa las siguientes métricas sobre sí mismo con Cloud Monitoring:

  • agent_uptime: El tiempo de actividad del recopilador de archivo adicional (contador).
  • agent_memory_usage: Es la memoria que consume el recopilador de archivo adicional (indicador).
  • agent_api_request_count: Es la cantidad de solicitudes a la API del recopilador de archivo adicional (contador).
  • agent_monitoring_point_count: La cantidad de puntos de métricas escritos en Cloud Monitoring por el recopilador de archivo adicional (contador).

Para ver las métricas propias del archivo adicional en el Explorador de métricas, haz lo siguiente:

  1. En el panel de navegación de la consola de Google Cloud, elige Monitoring y, luego,  Explorador de métricas:

    Ir al Explorador de métricas

  2. En la barra de herramientas del panel del compilador de consultas, selecciona el botón cuyo nombre sea MQL o PromQL.

  3. Verifica que PromQL esté seleccionado en el botón de activación Lenguaje. El botón de activación de lenguaje se encuentra en la misma barra de herramientas que te permite dar formato a tu consulta.

  4. Ingresa el nombre de la métrica que deseas consultar en el panel de editor, por ejemplo:

    agent_api_request_count
    
  5. Haz clic en Ejecutar consulta.

  6. Para ver los detalles de las métricas, en el botón de activación Gráfico de tablas de ambos, selecciona Ambos.

Visualiza registros propios en el Explorador de registros

El servicio administrado para el archivo adicional de Prometheus escribe registros en Cloud Logging. El archivo adicional escribe registros en el tipo de recurso supervisado cloud_run_revision de Logging.

Para ver los registros del archivo adicional en el Explorador de registros, haz lo siguiente:

  1. En el panel de navegación de la consola de Google Cloud, elige Logging y, luego, Explorador de registros:

    Ir al Explorador de registros

  2. Selecciona el tipo de recurso Revisión de Cloud Run o ingresa la siguiente consulta y haz clic en Ejecutar consulta:

    resource.type="cloud_run_revision"
    

Acerca de las métricas recopiladas

Cuando las métricas que emite el archivo adicional se transfieren a Cloud Monitoring, estas se escriben con el tipo de recurso supervisado prometheus_target de Cloud Monitoring. Este tipo de recurso se usa para las métricas de la aplicación y las métricas propias del archivo adicional.

Cuando se escriben métricas, el archivo adicional establece las etiquetas de recursos de la siguiente manera:

  • project_id: El ID del proyecto de Google Cloud en el que se ejecuta el contenedor.
  • location: La región de Google Cloud en la que se ejecuta el contenedor.
  • cluster: El valor __run__.
  • namespace: El nombre del servicio de Cloud Run que se ejecuta; proviene de la variable de entorno K_SERVICE.
  • job: Es el nombre de la configuración RunMonitoring; el valor predeterminado es run-gmp-sidecar.
  • instance: El valor faas.ID:PORT de la carga de trabajo local desde la que el contenedor se configura para extraer métricas. El valor faas.ID es el ID de la instancia de Cloud Run.

El archivo adicional también agrega las siguientes etiquetas de métricas:

  • instanceId: Es el ID de la instancia de Cloud Run.
  • service_name: El nombre del servicio de Cloud Run que se ejecuta.
  • revision_name: El nombre de la revisión de Cloud Run que se ejecuta.
  • configuration_name: El nombre de la configuración de Cloud Run que se ejecuta.

Todas estas etiquetas de métricas se agregan de forma predeterminada. Si usas una configuración de RunMonitoring personalizada, puedes omitir estas etiquetas mediante la opción targetLabels en la especificación RunMonitoring. También puedes usar una configuración personalizada para volver a etiquetar cualquiera de estas etiquetas de métrica excepto instanceId.

Todas las demás etiquetas que aparecen con las métricas transferidas provienen de la métrica del usuario. Si una etiqueta definida por el usuario entra en conflicto con una de las etiquetas que proporciona el sistema, la etiqueta definida por el usuario tiene como prefijo la cadena exported_. Por ejemplo, una etiqueta namespace=playground especificada por el usuario entra en conflicto con la etiqueta namespace definida por el sistema, por lo que la etiqueta del usuario aparece como exported_namespace=playground.

Tipo de métrica

Cuando las métricas emitidas por el archivo adicional se transfieren a Cloud Monitoring, las métricas se escriben como métricas prometheus.googleapis.com y el tipo de métrica de Prometheus se agrega al final del nombre. Por ejemplo, la app de muestra emite una métrica de indicador de Prometheus llamada foo_metric. En Cloud Monitoring, la métrica se almacena como el tipo de métrica prometheus.googleapis.com/foo_metric/gauge.

Cuando consultas la métrica con PromQL, puedes usar el nombre de Prometheus, como se ilustra en Visualiza métricas de apps en el Explorador de métricas y Visualiza métricas propias en el Explorador de métricas. Cuando se usan herramientas como el compilador de consultas o el lenguaje de consulta de Monitoring (MQL) en el Explorador de métricas, el tipo de métrica de Cloud Monitoring es relevante.

Facturación

Las métricas que emite el archivo adicional se transfieren a Cloud Monitoring con el prefijo prometheus.googleapis.com. Las métricas con este prefijo se cobran según la cantidad de muestras transferidas. Si deseas obtener más información sobre la facturación y el servicio administrado para Prometheus, consulta Facturación.