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:
- Añade el complemento Managed Service para Prometheus a un servicio de Cloud Run.
- Crea una aplicación de ejemplo con el sidecar. Puedes usar la aplicación de ejemplo para ver cómo funciona el sidecar si no tienes un servicio de Cloud Run.
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:
- API de Cloud Build:
cloudbuild.googleapis.com
. - API de gestión de identidades y accesos:
iam.googleapis.com
. Para obtener más información, consulta Compilar y ejecutar la aplicación de ejemplo.
- API de Cloud Build:
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 valorlabel_value
a cada métrica obtenida. - Añade las etiquetas de metadatos
service
yrevision
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:
- Habilita la API Secret Manager y concede roles de Secret Manager a tu cuenta de servicio de Cloud Run. Para obtener más información, consulta la sección Antes de empezar.
- Almacena la configuración personalizada como secreto.
- Añade el complemento a un servicio de Cloud Run .
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
.
- Añade una anotación de secretos que apunte al secreto que contiene tu configuración personalizada de
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:
Autentica tu cliente Docker con Google Cloud CLI:
gcloud auth configure-docker ${REGION}-docker.pkg.dev
Ve al directorio
simple-app
del repositoriorun-gmp-sidecar
:pushd sample-apps/simple-app
Compila la aplicación
simple-app
ejecutando el siguiente comando:docker build -t ${REGION}-docker.pkg.dev/${GCP_PROJECT}/run-gmp/sample-app .
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
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.
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.
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:
-
En la Google Cloud consola, ve a la página leaderboard 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.
En la barra de herramientas del panel de creación de consultas, selecciona el botón cuyo nombre sea code MQL o code PromQL.
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.
Introduce la siguiente consulta en el panel del editor:
foo_metric
Haz clic en Añadir consulta.
En la barra de herramientas del panel de creación de consultas, selecciona el botón cuyo nombre sea code MQL o code PromQL.
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.
Introduce la siguiente consulta en el segundo panel del editor:
bar_metric
Haz clic en Realizar una consulta.
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:
-
En la Google Cloud consola, ve a la página leaderboard 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.
En la barra de herramientas del panel de creación de consultas, selecciona el botón cuyo nombre sea code MQL o code PromQL.
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.
En el panel del editor, introduce el nombre de la métrica que quieras consultar. Por ejemplo:
agent_api_request_count
Haz clic en Realizar una consulta.
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:
-
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.
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 entornoK_SERVICE
.job
: nombre de la configuración deRunMonitoring
. El valor predeterminado esrun-gmp-sidecar
.instance
: el valorfaas.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.