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:
- Agrega el servicio administrado para el archivo adicional de Prometheus a un servicio existente de Cloud Run.
- Compila una app de muestra con el archivo adicional. Puedes usar la app de muestra para ver cómo funciona el archivo adicional si no tienes un servicio de Cloud Run existente.
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.
- 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 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.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
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 valorlabel_value
a cada métrica extraída. - Agrega las etiquetas de metadatos
service
yrevision
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:
- Habilita la API de Secret Manager y otorga roles de Secret Manager funciones de Secret Manager a tu cuenta de servicio de Cloud Run. Para obtener más información, consulta Antes de comenzar.
- Almacena la configuración personalizada como un Secret.
- Agrega el archivo adicional a un servicio de Cloud Run.
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
.
- Agrega una anotación de Secrets que apunte al Secret que contiene tu configuración
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.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 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 | 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 el descubrimiento de destino por Prometheus. | RunMonitoringSpec |
verdadero |
RunMonitoringSpec
En esta especificación, se describe cómo la configuración RunMonitoring
supervisa un servicio de Cloud Run.
Campo | Descripción | Esquema | Obligatorio |
---|---|---|---|
endpoints |
Extremos para recopilar en los Pods seleccionados. | []ScrapeEndpoint |
verdadero |
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 | Obligatorio |
---|---|---|---|
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:
Autentica tu cliente de Docker con Google Cloud CLI:
gcloud auth configure-docker ${REGION}-docker.pkg.dev
Ve al directorio
simple-app
en el repositoriorun-gmp-sidecar
:pushd sample-apps/simple-app
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 .
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
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.2.0" 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.
Configura la variable de entorno
SERVICE_URL
en la URL de servicio de Cloud Run del paso anterior:export SERVICE_URL=SERVICE_URL
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:
-
En la consola de Google Cloud, 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 cuyo subtítulo es Monitoring.
En la barra de herramientas del panel del compilador de consultas, selecciona el botón cuyo nombre sea codeMQL o codePromQL.
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.
Ingresa la siguiente consulta en el panel del editor:
foo_metric
Haz clic en Agregar consulta.
En la barra de herramientas del panel del compilador de consultas, selecciona el botón cuyo nombre sea codeMQL o codePromQL.
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.
Ingresa la siguiente consulta en el segundo panel del editor:
bar_metric
Haz clic en Ejecutar consulta.
Para ver los detalles de las métricas, en el botón de activación Gráfico de tablas de ambos, selecciona Ambos.
Realiza una limpieza
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:
-
En la consola de Google Cloud, 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 cuyo subtítulo es Monitoring.
En la barra de herramientas del panel del compilador de consultas, selecciona el botón cuyo nombre sea codeMQL o codePromQL.
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.
Ingresa el nombre de la métrica que deseas consultar en el panel de editor, por ejemplo:
agent_api_request_count
Haz clic en Ejecutar consulta.
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:
-
En la consola de Google Cloud, ve a la página Explorador de registros.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.
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 entornoK_SERVICE
.job
: Es el nombre de la configuraciónRunMonitoring
; el valor predeterminado esrun-gmp-sidecar
.instance
: El valorfaas.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 las etiquetas service_name
, revision_name
y configuration_name
mediante la opción targetLabels
en la especificación RunMonitoring
. También puedes usar una configuración personalizada para volver a etiquetar los valores de las etiquetas service_name
, revision_name
y configuration_name
.
Todas las demás etiquetas que aparecen con las métricas transferidas provienen de tu métrica.
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.