Escribir métricas de Prometheus mediante el sidecar de Prometheus

El complemento de Managed Service para Prometheus para Cloud Run es la forma recomendada por Google de obtener una monitorización al estilo Prometheus para los servicios de Cloud Run. Si tu servicio de Cloud Run escribe métricas de OTLP, puedes usar el sidecar de OpenTelemetry. Sin embargo, en el caso de los servicios que escriben métricas de Prometheus, usa el servicio adicional de Managed Service para Prometheus que se describe en este documento.

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

El servicio adicional utiliza Google Cloud Managed Service para Prometheus en el servidor y una distribución de OpenTelemetry Collector, diseñada a medida para las cargas de trabajo sin servidor, en el lado del cliente. Esta distribución personalizada incluye algunos cambios para admitir Cloud Run. El recopilador realiza un raspado de inicio después de 10 segundos y un raspado de cierre, independientemente de la duración de la instancia. Para maximizar la fiabilidad, recomendamos que los servicios de Cloud Run que ejecuten el sidecar también usen el ajuste de facturación basado en instancias. Para obtener más información, consulta Ajustes de facturación (servicios). Algunos intentos de raspado pueden fallar si la asignación de CPU se limita debido a un número bajo de consultas por segundo (QPS). Una CPU siempre asignada sigue estando disponible.

El contenedor secundario se basa en la función de varios contenedores (contenedor secundario) de Cloud Run para ejecutar el recolector como un contenedor secundario junto con el contenedor de tu carga de trabajo. Para obtener más información sobre los sidecars en Cloud Run, consulta el artículo sobre cómo desplegar varios contenedores en un servicio (sidecars).

El complemento de Managed Service para Prometheus para Cloud Run introduce una nueva configuración, 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 pueden crear configuraciones personalizadas. Para obtener más información sobre las configuraciones predeterminadas y personalizadas de RunMonitoring, consulta Añadir el sidecar a un servicio de Cloud Run.

Antes de empezar

En esta sección se describe la configuración necesaria para usar este documento.

Instalar y configurar gcloud CLI

En muchos de los pasos que se describen en este documento se usa la CLI de Google Cloud. Para obtener información sobre cómo instalar la CLI de gcloud, consulta Gestionar componentes de Google Cloud CLI.

Cuando invoques comandos de gcloud, debes especificar el identificador de tu proyecto de Google Cloud . Puedes definir un proyecto predeterminado para la CLI de Google Cloud y no tener que introducirlo en cada comando. Para definir tu proyecto como predeterminado, introduce el siguiente comando:

gcloud config set project PROJECT_ID

También puedes definir una región predeterminada para tu servicio de Cloud Run. Para definir una región predeterminada, introduce el siguiente comando:

gcloud config set run/region REGION

Habilitar APIs

Debes habilitar las siguientes APIs en tu Google Cloud proyecto:

  • API Admin de Cloud Run: run.googleapis.com
  • API de Artifact Registry: artifactregistry.googleapis.com
  • API Cloud Monitoring: monitoring.googleapis.com
  • API de Cloud Logging: logging.googleapis.com
  • (Opcional) Si creas una configuración RunMonitoring personalizada, debes habilitar la API Secret Manager: secretmanager.googleapis.com.
  • (Opcional) Si decides ejecutar la aplicación de ejemplo con Cloud Build, también debes habilitar las siguientes APIs:

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 de 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 Esta cuenta de servicio suele tener los roles de gestión de identidades y accesos (IAM) necesarios para escribir las métricas y los registros descritos en este documento:

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

Si creas una configuración 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 gestionada por el usuario para Cloud Run. Una cuenta de servicio gestionada por el usuario también debe tener estos roles. Para obtener más información sobre las cuentas de servicio de Cloud Run, consulta Configurar la identidad de servicio.

Configurar y añadir el sidecar a un servicio de Cloud Run

El complemento de Managed Service para Prometheus para Cloud Run introduce una nueva configuración, RunMonitoring, que es un subconjunto del recurso personalizado PodMonitoring de Kubernetes. La configuración de RunMonitoring usa opciones de PodMonitoring para admitir Cloud Run, al tiempo que elimina algunas opciones específicas de Kubernetes.

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

Configuración predeterminada

Usar la configuración predeterminada de RunMonitoring

Si no creas una configuración RunMonitoring personalizada, el recogedor sidecar sintetiza la siguiente configuración predeterminada para recoger 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

Para usar la configuración predeterminada, no es necesario realizar ninguna configuración adicional, solo añadir el sidecar al servicio de Cloud Run.

Añadir el sidecar a un servicio de Cloud Run

Para usar el sidecar con la configuración predeterminada RunMonitoring, debes modificar la configuración de Cloud Run para añadir el sidecar. Para añadir el sidecar, sigue estos pasos:

  • Añade una anotación de dependencia de contenedor que especifique el orden de inicio y cierre de los contenedores. En el siguiente ejemplo, el contenedor sidecar, llamado "collector", se inicia después y se cierra antes que el contenedor de la aplicación, llamado "app" en el ejemplo.
  • Crea un contenedor para el recolector, llamado "collector" en el siguiente ejemplo.

Por ejemplo, añade las líneas precedidas por el carácter + (más) a tu configuración de Cloud Run y, a continuación, vuelve a desplegar 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.2.0"
+       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

Crear una configuración RunMonitoring personalizada

Puedes crear una configuración de RunMonitoring para un servicio de Cloud Run si la configuración predeterminada no es suficiente. Por ejemplo, puedes crear una configuración como la siguiente:

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:

  • Recoge métricas del puerto 8080 y usa la ruta de métricas predeterminada /metrics.
  • Usa un intervalo de raspado de 10 segundos.
  • Usa el cambio de etiquetas para añadir la etiqueta label_key con el valor label_value a cada métrica obtenida.
  • Añade las etiquetas de metadatos service y revision a todas las métricas recogidas.

Para obtener información sobre las opciones de configuración disponibles, consulta RunMonitoring spec: configuration options (Especificación de RunMonitoring: opciones de configuración).

Cuando usas una configuración RunMonitoring personalizada, debes llevar a cabo la siguiente configuración adicional:

Almacenar la configuración mediante Secret Manager

Para proporcionar una configuración RunMonitoring personalizada, siga estos pasos:

  • 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 secreto llamado mysecret a partir del archivo custom-config.yaml:

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

Para que se aplique un cambio en la configuración después de modificar el archivo custom-config.yaml, debes eliminar y volver a crear el secreto y, a continuación, volver a implementar el servicio de Cloud Run.

Actualizar la configuración en Secret Manager

Si quiere actualizar la configuración personalizada de RunMonitoring en cualquier momento, puede añadir una nueva versión del secreto a Secret Manager.

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

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

El sidecar se vuelve a cargar automáticamente y aplica los cambios en su configuración.

Añadir el sidecar a un servicio de Cloud Run

Después de crear un secreto de Secret Manager para tu configuración de RunMonitoring, debes modificar la configuración de Cloud Run para hacer lo siguiente:

  • Añadir el sidecar de Managed Service para Prometheus
    • Añade una anotación de dependencia de contenedor que especifique el orden de inicio y cierre de los contenedores. En el siguiente ejemplo, el contenedor sidecar, llamado "collector", se inicia después y se cierra antes que el contenedor de la aplicación, llamado "app" en el ejemplo.
    • Crea un contenedor para el recolector, llamado "collector" en el siguiente ejemplo.
  • Añade el secreto montando el secreto en la ubicación /etc/rungmp/config.yaml:
    • Añade una anotación de secretos que apunte al secreto que contiene tu configuración personalizada de RunMonitoring.
    • Crea un volumen, llamado "config" en el siguiente ejemplo, para el secreto que apunta al archivo config.yaml.
    • Monta el volumen como parte de la imagen del recopilador en la ruta de montaje /etc/rungmp.

Por ejemplo, añade las líneas precedidas por el carácter + (más) a tu configuración de Cloud Run y, a continuación, vuelve a desplegar 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.2.0"
+       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 la especificación de configuración de RunMonitoring para el servicio adicional de Managed Service 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 monitoriza un servicio de Cloud Run.

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

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

Campo Descripción Esquema Obligatorio
endpoints Endpoints que se van a raspar en los pods seleccionados. []ScrapeEndpoint true
targetLabels Etiquetas que se añadirán al destino de Prometheus para los endpoints detectados. La etiqueta instance siempre se asigna al ID de la instancia de Cloud Run. RunTargetLabels falso
limits Límites que se aplican en el momento de la extracción. *ScrapeLimits falso
RunTargetLabels

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

Campo Descripción Esquema Obligatorio
metadata Etiquetas de metadatos de Cloud Run que se definen en todos los objetivos raspados.

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

Si se definen claves permitidas, el sidecar añade el valor correspondiente de la instancia de Cloud Run como etiquetas de métricas a todas las métricas: instanceID, revision_name, service_name y configuration_name.

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

Compilar y ejecutar una aplicación de ejemplo

En esta sección se describe cómo ejecutar el sidecar de Managed Service para Prometheus con una aplicación de ejemplo. Esta sección es opcional. Si ya tienes un servicio de Cloud Run y quieres desplegar el complemento con él, consulta el artículo Añadir el complemento Managed Service para Prometheus a un servicio de Cloud Run.

Clona el repositorio run-gmp-sidecar

Para obtener la aplicación de ejemplo y sus archivos de configuración, clona el repositorio run-gmp-sidecar ejecutando el siguiente comando:

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

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

cd run-gmp-sidecar

Compilar y ejecutar la aplicación de ejemplo

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

  • Utiliza Cloud Build para ejecutar sin compatibilidad con Docker local. Si usas Cloud Build, también debes habilitar la API de Cloud Build.
  • Compila y ejecuta la aplicación de ejemplo manualmente.

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

Usar Cloud Build

Usar Cloud Build

El repositorio run-gmp-sidecar incluye archivos de configuración para Cloud Build. Estos archivos agrupan los pasos necesarios para compilar e implementar la aplicación de ejemplo.

También puedes realizar manualmente los pasos que gestiona Cloud Build. Para obtener más información, consulta Compilar y ejecutar manualmente.

Configurar 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.
  • Asigna 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 poco en propagarse, por lo que te recomendamos que esperes unos 30 segundos antes de continuar con el siguiente paso. De lo contrario, es posible que se produzcan errores de autorización.

Enviar una solicitud de Cloud Build

Una vez que hayas configurado la cuenta de servicio run-gmp-sa y el repositorio run-gmp, puedes iniciar una tarea de Cloud Build enviando el archivo de configuración de Cloud Build. Puedes usar el siguiente comando gcloud builds submit:

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

Este comando tarda varios minutos en ejecutarse, pero indica casi inmediatamente dónde puedes encontrar los detalles de la compilación de Cloud Build. El mensaje tiene el siguiente aspecto:

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

Para ver el progreso de la compilación, ve a la URL devuelta en tu navegador. También puedes ver los registros del sidecar en Cloud Logging.

Comprobar la URL del servicio

Una vez que finalice el trabajo de Cloud Build, comprueba la URL del endpoint del servicio de Cloud Run ejecutando el siguiente comando:

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

Este comando devuelve la URL del servicio, que tiene el siguiente aspecto:

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

Compilar y ejecutar manualmente

Compilar y ejecutar manualmente

Puedes seguir manualmente los pasos que realiza Cloud Build, tal como se describe en Usar Cloud Build. En las siguientes secciones se describe cómo realizar manualmente las mismas tareas.

Definir variables que se usarán en pasos posteriores

En varios de los pasos posteriores se usan variables de entorno para valores comunes. Define estas variables con los siguientes comandos:

export GCP_PROJECT=PROJECT_ID
export REGION=REGION

Crear un repositorio de imágenes de contenedor

Crea un repositorio de Artifact Registry para la imagen de contenedor ejecutando el siguiente comando:

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

Compilar y enviar la aplicación de ejemplo

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

Para compilar la aplicación de ejemplo y enviarla a Artifact Registry, sigue estos pasos:

  1. Autentica tu cliente Docker con Google Cloud CLI:

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

    pushd sample-apps/simple-app
    

  3. Compila la aplicación simple-app ejecutando el siguiente comando:

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

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

  5. Vuelve al directorio run-gmp-sidecar:

    popd
    

Configurar el servicio de Cloud Run

El archivo run-service-simple.yaml del repositorio run-gmp-sidecar define un servicio de Cloud Run de varios contenedores que usa la aplicación de ejemplo y las imágenes del recolector que has creado en los pasos anteriores. El archivo run-service-simple.yaml contiene la siguiente especificación de 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.2.0"
        name: collector

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

Sustituye el marcador de posición %SAMPLE_APP_IMAGE% ejecutando el siguiente comando:

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

Desplegar el servicio de Cloud Run

Una vez que hayas actualizado el archivo run-service-simple.yaml con tus valores, puedes crear e implementar el servicio de Cloud Run ejecutando el siguiente comando:

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

Este comando devuelve la URL del servicio, que tiene el siguiente aspecto:

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

Permitir el acceso HTTP sin autenticar

Antes de poder enviar una solicitud a la URL del servicio, debes cambiar la política del servicio de Cloud Run para aceptar el acceso HTTP no autenticado. El archivo policy.yaml del 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

Verificar que tu aplicación se está ejecutando

Para verificar que el servicio de Cloud Run ha ejecutado correctamente la aplicación de ejemplo, usa la utilidad curl para acceder al endpoint metrics del servicio.

  1. Ejecuta el siguiente comando para obtener la URL de tu servicio:

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

    Sustituye REGION por la región de Cloud Run de tu servicio.

  2. Envía una solicitud a la URL del servicio ejecutando el siguiente comando:

    curl $SERVICE_URL
    

Si la aplicación se ha iniciado correctamente, verás la siguiente respuesta:

User request received!

Ver métricas de aplicaciones en el explorador de métricas

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

  • foo_metric: la hora actual como valor de coma flotante (indicador).
  • bar_metric: la hora actual como valor de coma flotante (contador).

Para ver estas métricas en el explorador de métricas, haz lo siguiente:

  1. En la Google Cloud consola, ve a la página  Explorador de métricas:

    Ve al explorador de métricas.

    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 del panel de creación de consultas, selecciona el botón cuyo nombre sea  MQL o  PromQL.

  3. Verifica que PromQL esté seleccionado en el interruptor Idioma. El interruptor de idioma se encuentra en la misma barra de herramientas que te permite dar formato a tu consulta.

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

    foo_metric
    
  5. Haz clic en Añadir consulta.

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

  7. Verifica que PromQL esté seleccionado en el interruptor Idioma. El interruptor de idioma se encuentra en la misma barra de herramientas que te permite dar formato a tu consulta.

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

    bar_metric
    
  9. Haz clic en Realizar una consulta.

  10. Para ver los detalles de las métricas, en el interruptor Gráfico y tabla, selecciona Ambos.

Limpieza

Cuando hayas terminado de experimentar con la aplicación de ejemplo, puedes usar la secuencia de comandos clean-up-cloud-run.sh del repositorio run-gmp-sidecar para eliminar los siguientes recursos que hayas creado para el ejemplo:

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

Si eliminas estos recursos, te aseguras de que no se te apliquen costes después de ejecutar el ejemplo.

Para limpiar la aplicación de ejemplo, ejecuta la secuencia de comandos clean-up-cloud-run.sh:

./clean-up-cloud-run.sh

Ver métricas propias en el explorador de métricas

El complemento del servicio gestionado de Prometheus informa de las siguientes métricas sobre sí mismo a Cloud Monitoring:

  • agent_uptime: tiempo de actividad del recolector sidecar (contador).
  • agent_memory_usage: la memoria que consume el recolector sidecar (métrica de tipo Gauge).
  • agent_api_request_count: número de solicitudes de API del sidecar collector (contador).
  • agent_monitoring_point_count: número de puntos de métrica escritos en Cloud Monitoring por el recopilador sidecar (contador).

Para ver las métricas internas del sidecar en el explorador de métricas, haz lo siguiente:

  1. En la Google Cloud consola, ve a la página  Explorador de métricas:

    Ve al explorador de métricas.

    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 del panel de creación de consultas, selecciona el botón cuyo nombre sea  MQL o  PromQL.

  3. Verifica que PromQL esté seleccionado en el interruptor Idioma. El interruptor de idioma se encuentra en la misma barra de herramientas que te permite dar formato a tu consulta.

  4. En el panel del editor, introduce el nombre de la métrica que quieras consultar. Por ejemplo:

    agent_api_request_count
    
  5. Haz clic en Realizar una consulta.

  6. Para ver los detalles de las métricas, en el interruptor Gráfico y tabla, selecciona Ambos.

Ver los registros propios en el Explorador de registros

El complemento del servicio gestionado de Prometheus escribe registros en Cloud Logging. El sidecar escribe registros en el tipo de recurso supervisado Logging cloud_run_revision.

Para ver los registros del sidecar en el explorador de registros, haz lo siguiente:

  1. En la Google Cloud consola, ve a la página Explorador de registros:

    Ve al Explorador de registros.

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

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

    resource.type="cloud_run_revision"
    

Acerca de las métricas recogidas

Cuando las métricas emitidas por el sidecar se ingieren en Cloud Monitoring, se escriben en el tipo de recurso monitorizado prometheus_target de Cloud Monitoring. Este tipo de recurso se usa tanto para las métricas de la aplicación como para las métricas propias del sidecar.

Al escribir las métricas, el sidecar define las etiquetas de recursos de la siguiente manera:

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

El sidecar también añade las siguientes etiquetas de métricas:

  • instanceId: el ID de la instancia de Cloud Run.
  • service_name: nombre del servicio de Cloud Run que se está ejecutando.
  • revision_name: nombre de la revisión de Cloud Run que se está ejecutando.
  • configuration_name: el nombre de la configuración de Cloud Run que se está ejecutando.

Todas estas etiquetas de métricas se añaden de forma predeterminada. Si usas una configuración personalizadaRunMonitoring, puedes omitir las etiquetas service_name, revision_name y configuration_name usando la opción targetLabels en la especificación RunMonitoring. También puedes usar una configuración personalizada para cambiar el nombre de las etiquetas service_name, revision_name y configuration_name.

El resto de las etiquetas que aparecen con las métricas ingeridas proceden de su métrica. Si una etiqueta definida por el usuario entra en conflicto con una de las etiquetas proporcionadas por el sistema, se le añade el prefijo exported_. Por ejemplo, si una etiqueta especificada por el usuario namespace="playground" entra en conflicto con la etiqueta namespace definida por el sistema, la etiqueta del usuario se mostrará como exported_namespace="playground".

Tipo de métrica

Cuando las métricas emitidas por el sidecar se ingieren en Cloud Monitoring, se escriben como métricas prometheus.googleapis.com y el tipo de métrica de Prometheus se añade al final del nombre. Por ejemplo, la aplicación de muestra emite una métrica de tipo Gauge 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 muestra en los artículos Ver métricas de aplicaciones en el explorador de métricas y Ver métricas propias en el explorador de métricas. Cuando se usan herramientas como el creador de consultas o Monitoring Query Language (MQL) en el explorador de métricas, el tipo de métrica de Cloud Monitoring es relevante.

Facturación

Las métricas emitidas por el sidecar se ingieren en Cloud Monitoring con el prefijo prometheus.googleapis.com. Las métricas con este prefijo se cobran según el número de muestras ingeridas. Para obtener más información sobre la facturación y Managed Service para Prometheus, consulta Facturación.