En este documento, se describe la configuración y el uso de un receptor de métricas del Agente de operaciones que puedes usar para recopilar métricas de Prometheus en Compute Engine. En este documento, también se describe un ejemplo que puedes usar para probar el receptor.
Los usuarios de Google Kubernetes Engine pudieron recopilar las métricas de Prometheus a través de Google Cloud Managed Service para Prometheus. El receptor de Prometheus del Agente de operaciones brinda a los usuarios de Compute Engine la misma capacidad.
Puedes usar todas las herramientas que proporciona Cloud Monitoring, incluido PromQL, para ver y analizar los datos que recopila el receptor de Prometheus. Por ejemplo, puedes usar el Explorador de métricas, como se describe en la consola de Google Cloud para Monitoring, para consultar tus datos. También puedes crear paneles y políticas de alertas de Cloud Monitoring para supervisar tus métricas de Prometheus. Te recomendamos usar PromQL como lenguaje de consulta para tus métricas de Prometheus.
También puedes ver las métricas de Prometheus en interfaces fuera de Cloud Monitoring, como la IU de Prometheus y Grafana.
Elige el receptor correcto
Antes de decidir usar el receptor de Prometheus, determina si ya hay una integración del Agente de operaciones para la aplicación que usas. Para obtener información acerca de las integraciones existentes con el Agente de operaciones, consulta Supervisa aplicaciones de terceros. Si existe una integración, te recomendamos usarla. Para obtener más información, consulta Elige una integración existente.
Te recomendamos usar el receptor Prometheus del Agente de operaciones cuando se cumplan las siguientes condiciones:
Tienes experiencia en el uso de Prometheus, confías en el estándar de Prometheus y comprendes cómo factores como el intervalo de scraping y la cardinalidad pueden afectar los costos. Para obtener más información, consulta Elige el receptor de Prometheus.
El software que supervisas ya no forma parte del conjunto de integraciones existentes del Agente de operaciones.
Integraciones existentes
El Agente de operaciones proporciona integraciones para varias aplicaciones de terceros. Estas integraciones te proporcionan lo siguiente:
- Un conjunto de métricas
workload.googleapis.com
seleccionadas para la aplicación. - Un panel para visualizar las métricas.
Las métricas que se transfieren a través de una integración existente están sujetas a precios basados en bytes para las métricas recopiladas por agentes. La cantidad y los tipos de las métricas se conocen de antemano, y puedes usar esa información para estimar los costos.
Por ejemplo, si usas la integración de Apache Web Server (httpd), el Agente de operaciones recopila cinco métricas escalares; cada dato cuenta como 8 bytes. Si mantienes la frecuencia de muestreo del agente de operaciones predeterminada durante 60 segundos, la cantidad de bytes transferidos por día es 57,600 × la cantidad de hosts:
- 8 (bytes) * 1,440 (minutos por día) * 5 (métricas) * n (hosts) o
- 57,600 * n (hosts)
Para obtener más información acerca de la estimación de costos, consulta Ejemplos de precios basados en bytes transferidos.
El receptor de Prometheus
Cuando usas el Agente de operaciones para recopilar métricas de Prometheus, se aplica lo siguiente:
La cantidad y la cardinalidad de métricas que emite tu aplicación están bajo tu control. No hay un conjunto seleccionado de métricas. La cantidad de datos que transfieres se determina a través de la configuración de tu aplicación de Prometheus y el receptor de Prometheus del agente de operaciones.
Las métricas se transfieren a Cloud Monitoring como métricas
prometheus.googleapis.com
. Estas métricas se clasifican como un tipo de métricas “personalizadas” cuando se transfieren a Cloud Monitoring y están sujetas a las cuotas y los límites de las métricas personalizadas.Debes diseñar y crear los paneles de Cloud Monitoring que necesites según el conjunto de métricas que transfieres y tus necesidades comerciales. Para obtener información sobre cómo crear paneles, consulta Paneles y gráficos.
Los precios de la transferencia de métricas se basan en la cantidad de muestras transferidas. Para estimar los costos cuando usas el receptor de Prometheus, debes determinar la cantidad de muestras que es probable que recopiles durante un ciclo de facturación. La estimación se basa en los siguientes factores:
- Cantidad de métricas escalares, cada valor es una muestra
- Cantidad de métricas de distribución; cada histograma cuenta como (2 + la cantidad de buckets en las muestras del histograma)
- Frecuencia de muestreo de cada métrica
- Cantidad de hosts de los que se muestrean las métricas
Para obtener más información sobre cómo contar muestras y estimar costos, consulta Ejemplos de precios basados en muestras transferidas.
Requisitos previos
Para recopilar métricas de Prometheus a través del receptor de Prometheus, debes instalar el agente de operaciones versión 2.25.0 o posterior.
El receptor del Agente de operaciones requiere un extremo que emita métricas de Prometheus. Por lo tanto, tu aplicación debe proporcionar ese extremo de forma directa o usar una biblioteca o exportador de Prometheus para exponer un extremo. Muchas bibliotecas y frameworks de lenguajes, como Spring y DropWizard, o aplicaciones como StatsD, DogStatsD y Graphite, que emiten métricas que no son de Prometheus, pueden usar bibliotecas cliente o exportadores de Prometheus para emitir métricas de estilo Prometheus. Por ejemplo, para emitir métricas de Prometheus, haz lo siguiente:
- Los usuarios de Spring pueden usar la biblioteca de métricas de Spring.
- Los usuarios de StatsD pueden usar el
paquete
statsd_exporter
. - Los usuarios de Graphite pueden usar el
paquete
graphite_exporter
.
Cuando una aplicación emite las métricas de Prometheus, de forma directa o a través de una biblioteca o exportador, un agente de operaciones configurado con un receptor de Prometheus puede recopilar las métricas.
Configurar el agente de operaciones
El modelo de configuración del Agente de operaciones suele implicar definir lo siguiente:
- Receptores, que determinan qué métricas se recopilan.
- Procesadores, que describen cómo el Agente de operaciones puede modificar las métricas.
- Canalizaciones, con las que se vinculan receptores y procesadores en un servicio.
La configuración para transferir métricas de Prometheus es un poco diferente: no hay procesadores involucrados.
Configuración de las métricas de Prometheus
La configuración del Agente de operaciones para transferir métricas de Prometheus difiere de la configuración habitual de la siguiente manera:
No creas un procesador del Agente de operaciones para las métricas de Prometheus. El receptor de Prometheus admite casi todas las opciones de configuración que establece la especificación
scrape_config
de Prometheus, incluidas las opciones de reetiquetado.En lugar de usar un procesador de agente de operaciones, cualquier procesamiento de métricas se realiza a través de las secciones
relabel_configs
ymetric_relabel_configs
de la configuración de entorno, como se especifica en el receptor de Prometheus. Para obtener más información, consulta Reetiquetado: modificación de los datos que se extraen con scraping.Debes definir la canalización de Prometheus solo en términos del receptor de Prometheus. No especificas ningún procesador. Tampoco puedes usar receptores que no sean de Prometheus en la canalización para las métricas de Prometheus.
La mayor parte de la configuración del receptor es la especificación de las opciones de configuración de scraping. Para omitir esas opciones por brevedad, se muestra la estructura de una configuración de agente de operaciones que usa un receptor de Prometheus. Debes especificar los valores de RECEIVER_ID y PIPELINE_ID.
metrics: receivers: RECEIVER_ID: type: prometheus config: scrape_configs: [... omitted for brevity ...] service: pipelines: PIPELINE_ID: receivers: [RECEIVER_ID]
En la siguiente sección, se describe el receptor de Prometheus con más detalle. Para ver un ejemplo funcional de un receptor y una canalización, consulta Agrega el receptor y la canalización del Agente de operaciones.
El receptor de Prometheus
Para especificar un receptor para las métricas de Prometheus, debes crear un receptor de métricas de tipo prometheus
y especificar un conjunto de opciones de scrape_config
.
El receptor admite todas las opciones de
scrape_config
de Prometheus,
excepto las siguientes:
- Las secciones de descubrimiento de servicios,
*_sd_config
. - La configuración
honor_labels
.
Por lo tanto, puedes copiar las opciones de configuración de scraping existentes y usarlas para el Agente de operaciones con pocos cambios o ningún cambio.
La estructura completa del receptor de Prometheus se muestra a continuación:
metrics: receivers: prom_application: type: prometheus config: scrape_configs: - job_name: 'STRING' # must be unique across all Prometheus receivers scrape_interval: # duration, like 10m or 15s scrape_timeout: # duration, like 10m or 15s metrics_path: # resource path for metrics, default = /metrics honor_timestamps: # boolean, default = false scheme: # http or https, default = http params: - STRING: STRING basic_auth: username: STRING password: SECRET password_file: STRING authorization: type: STRING # default = Bearer credentials: SECRET credentials_file: FILENAME oauth2: OAUTH2 # See Prometheus oauth2 follow_redirects: # boolean, default = true enable_http2: # boolean, default = true tls_config: TLS_CONFIG # See Prometheus tls_config proxy_url: STRING static_configs: STATIC_CONFIG # See Prometheus static_config relabel_configs: RELABEL_CONFIG # See Prometheus relabel_config metric_relabel_configs: METRIC_RELABEL_CONFIGS # See Prometheus metric_relabel_configs
Para ver ejemplos de reetiquetado de las opciones de configuración, consulta Configuración adicional del receptor.
Ejemplo: Configura el Agente de operaciones para Prometheus
En esta sección, se muestra un ejemplo de cómo configurar el Agente de operaciones para recopilar
métricas de Prometheus desde una aplicación. En este ejemplo, se usa el exportador JSON
de Prometheus que proporciona la comunidad
(json_exporter
), que
expone las métricas de Prometheus en el puerto 7979.
Para configurar el ejemplo, se requieren los siguientes recursos, que es posible que debas instalar:
git
curl
make
python3
- Lenguaje Go, versión 1.19 o superior
Crea o configura tu aplicación
Para obtener y ejecutar el exportador JSON, usa el siguiente procedimiento:
Clona el repositorio
json_exporter
y verifica el exportador; para ello, ejecuta los siguientes comandos:git clone https://github.com/prometheus-community/json_exporter.git cd json_exporter git checkout v0.5.0
Compila el exportador a través de la ejecución del siguiente comando:
make build
Inicia el servidor HTTP de Python a través de la ejecución del siguiente comando:
python3 -m http.server 8000 &
Inicia el exportador JSON a través de la ejecución del siguiente comando:
./json_exporter --config.file examples/config.yml &
Consulta el exportador JSON para verificar que se esté ejecutando y que exponga las métricas en el puerto 7979:
curl "http://localhost:7979/probe?module=default&target=http://localhost:8000/examples/data.json"
Si la consulta se realizó de forma correcta, verás un resultado similar al siguiente:
# HELP example_global_value Example of a top-level global value scrape in the json # TYPE example_global_value untyped example_global_value{environment="beta",location="planet-mars"} 1234 # HELP example_value_active Example of sub-level value scrapes from a json # TYPE example_value_active untyped example_value_active{environment="beta",id="id-A"} 1 example_value_active{environment="beta",id="id-C"} 1 # HELP example_value_boolean Example of sub-level value scrapes from a json # TYPE example_value_boolean untyped example_value_boolean{environment="beta",id="id-A"} 1 example_value_boolean{environment="beta",id="id-C"} 0 # HELP example_value_count Example of sub-level value scrapes from a json # TYPE example_value_count untyped example_value_count{environment="beta",id="id-A"} 1 example_value_count{environment="beta",id="id-C"} 3
En este resultado, las cadenas como
example_value_active
son los nombres de las métricas, con etiquetas y valores entre llaves. El valor de los datos sigue el conjunto de etiquetas.
Agrega el receptor y la canalización del Agente de operaciones
Si deseas configurar el agente de operaciones para transferir métricas de la aplicación exportador JSON, debes modificar la configuración del agente para agregar un receptor y una canalización de Prometheus. En el ejemplo del exportador JSON, usa el siguiente procedimiento:
Edita el archivo de configuración del Agente de operaciones,
/etc/google-cloud-ops-agent/config.yaml
, y agrega las siguientes entradas de canalización y receptor de Prometheus:metrics: receivers: prometheus: type: prometheus config: scrape_configs: - job_name: 'json_exporter' scrape_interval: 10s metrics_path: /probe params: module: [default] target: [http://localhost:8000/examples/data.json] static_configs: - targets: ['localhost:7979'] service: pipelines: prometheus_pipeline: receivers: - prometheus
Si ya tienes otras entradas de configuración en este archivo, agrega el receptor y la canalización de Prometheus a las entradas
metrics
yservice
existentes. Para obtener más información, consulta Opciones de configuración de métricas.Para ver ejemplos de reetiquetado de las opciones de configuración en el receptor, consulta Configuración adicional del receptor.
Reinicia el Agente de operaciones
Para aplicar los cambios de configuración, debes reiniciar el Agente de operaciones.
LINUX
Para reiniciar el agente, ejecuta el siguiente comando en tu instancia:
sudo service google-cloud-ops-agent restart
Para confirmar que el agente se reinició, ejecuta el siguiente comando y verifica que los componentes “Agente de métricas” y “Agente de Logging” se iniciaron:
sudo systemctl status google-cloud-ops-agent"*"
Windows
Conéctate a tu instancia a través de RDP o una herramienta similar y accede a Windows.
Haz clic con el botón derecho en el ícono de PowerShell y selecciona Ejecutar como administrador para abrir una terminal de PowerShell con privilegios de administrador.
Para reiniciar el agente, ejecuta el siguiente comando de PowerShell:
Restart-Service google-cloud-ops-agent -Force
Para confirmar que el agente se reinició, ejecuta el siguiente comando y verifica que los componentes “Agente de métricas” y “Agente de Logging” se iniciaron:
Get-Service google-cloud-ops-agent*
Métricas de Prometheus en Cloud Monitoring
Puedes usar las herramientas que proporciona Cloud Monitoring con los datos que recopila el receptor de Prometheus. Por ejemplo, puedes graficar datos con el Explorador de métricas, como se describe en la consola de Google Cloud para Monitoring. En las siguientes secciones, se describen las herramientas de consultas disponibles en Cloud Monitoring con el Explorador de métricas:
Puedes crear paneles y políticas de alertas de Cloud Monitoring para tus métricas. Para obtener información de los paneles y los tipos de gráficos que puedes usar, consulta Paneles y gráficos. Para obtener información de las políticas de alertas, consulta Usa políticas de alertas.
También puedes ver tus métricas en otras interfaces, como la IU de Prometheus y Grafana. Para obtener información acerca de la configuración de estas interfaces, consulta las siguientes secciones en la documentación de Google Cloud Managed Service para Prometheus:
Usa PromQL
PromQL es el lenguaje de consulta recomendado para las métricas transferidas a través del receptor de Prometheus.
La forma más sencilla de verificar que se transfieren los datos de Prometheus es usar la página del Explorador de métricas de Cloud Monitoring en la consola de Google Cloud:
-
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 editor y, luego, haz clic en Ejecutar consulta:
up
Si se están transfiriendo tus datos, verás un gráfico como el siguiente:
Si ejecutas el ejemplo del exportador JSON, también puedes emitir consultas como las siguientes:
Consulta todos los datos de una métrica exportada específica por nombre, por ejemplo:
example_value_count
A continuación, se muestra un gráfico para
example_value_count
, incluidas las etiquetas que define la aplicación del exportador JSON y las etiquetas que agrega el Agente de operaciones:Consulta datos de una métrica exportada que se originó en un espacio de nombres específico. El valor de la etiqueta
namespace
es el ID de la instancia de Compute Engine, un número largo como5671897148133813325
, asignado a la VM. Una consulta se ve de la siguiente manera:example_value_count{namespace="INSTANCE_ID"}
Consulta datos que coincidan con una expresión regular específica. El exportador JSON emite métricas con una etiqueta
id
que tiene valores comoid-A
,id-B
yid-C
. Para filtrar cualquier métrica con una etiquetaid
que coincida con este patrón, usa la siguiente consulta:example_value_count{id=~"id.*"}
Para obtener más información sobre cómo usar PromQL en los gráficos del Explorador de métricas y Cloud Monitoring, consulta PromQL en Cloud Monitoring.
Usa MQL
Para ver los datos de Prometheus como series temporales de Cloud Monitoring y crear gráficos y paneles, también puedes usar las interfaces controladas por menús o MQL. A continuación, se muestra una consulta simple en el Explorador de métricas:
-
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.
Especifica los datos que deben aparecer en el gráfico. Además de usar la pestaña PromQL descrita antes, también puedes usar MQL.
Para usar MQL, haz lo siguiente:
- En la barra de herramientas del panel del compilador de consultas, selecciona el botón cuyo nombre sea codeMQL o codeMQL.
- Verifica que MQL 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:
fetch prometheus_target::prometheus.googleapis.com/up/gauge
Haga clic en Ejecutar consulta (Run Query).
Para usar la interfaz basada en menús, haz lo siguiente:
En el campo Tipo de recurso, escribe “prometheus” para filtrar la lista y, luego, selecciona Destino de Prometheus.
En el campo Métrica, escribe “up/” para filtrar la lista y selecciona prometheus/up/gauge.
El gráfico que resulta de cualquiera de estas consultas muestra los mismos datos que el gráfico que se muestra con el ejemplo de PromQL.
El recurso prometheus_target
En Cloud Monitoring, los datos de series temporales se escriben en un tipo de recurso supervisado. Para las métricas de Prometheus, el tipo de recurso supervisado es prometheus_target
. Las consultas de supervisión para las métricas de Prometheus que no están escritas en PromQL deben especificar este tipo de recurso.
El recurso prometheus_target
tiene las siguientes etiquetas, que puedes usar para filtrar y manipular datos consultados:
project_id
: El identificador del proyecto de Google Cloud, comomy-project
, en el que se ejecuta el Agente de operaciones.location
: La región de Google Cloud o AWS en la que se ejecuta el Agente de operaciones; por ejemplo,us-east1-a
(Google Cloud) oaws:us-east-1a
(AWS).cluster
: Siempre es__gce__
para las métricas de Prometheus que se recopilan a través del agente de operaciones.namespace
: El ID de la instancia de Compute Engine de la VM en la que se ejecuta el Agente de operaciones.job
: El valor del campojob_name
en la configuración del receptor.instance
: Es la etiqueta de la instancia del destino de Prometheus, que se toma de la configuración del receptor; se configura de forma predeterminada en el destino.
Los valores de estas etiquetas se establecen durante la recopilación. Los valores de
las etiquetas namespace
, location
y cluster
son inmutables. Si las métricas que se recopilan de tu aplicación también tienen estas etiquetas, el Agente de operaciones agrega el prefijo exported_
a las etiquetas recopiladas.
Visualiza el uso y el diagnóstico de las métricas en Cloud Monitoring
En la página Administración de métricas de Cloud Monitoring, se proporciona información que puede ayudarte a controlar el importe que inviertes en las métricas facturables sin afectar la observabilidad. En la página Administración de métricas, se informa la siguiente información:
- Los volúmenes de transferencia para la facturación basada en bytes y de muestra, en todos los dominios de métricas y para las métricas individuales.
- Datos sobre etiquetas y cardinalidad de métricas.
- Cantidad de lecturas para cada métrica
- Uso de métricas en políticas de alertas y paneles personalizados.
- Tasa de errores de escritura de métricas.
También puedes usar la administración de métricas para excluir las métricas innecesarias, lo que elimina el costo de transferirlas.
Para ver la página Administración de métricas, haz lo siguiente:
-
En la consola de Google Cloud, ve a la página
Administración de métricas:Ir a Administración 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, selecciona tu período. De forma predeterminada, la página Administración de métricas muestra información sobre las métricas recopiladas en el día anterior.
Para obtener más información sobre la página Administración de métricas, consulta Visualiza y administra el uso de métricas.
Reetiquetado: modificación de los datos que se extraen con scraping
Puedes usar el reetiquetado para modificar el conjunto de etiquetas del objetivo de scraping o sus métricas antes de que el objetivo se extraiga con scraping. Si tienes varios pasos en una configuración de reetiquetado, se aplican en el orden en que aparecen en el archivo de configuración.
El Agente de operaciones crea un conjunto de metaetiquetas (etiquetas con el
prefijo de la cadena __meta_
). Estas metaetiquetas registran información sobre la instancia
de Compute Engine en la que se ejecuta el
Agente de operaciones. Las etiquetas con el prefijo de la cadena __
, incluidas las metaetiquetas,
solo están disponibles durante el proceso de reetiquetado. Puedes usar el reetiquetado para capturar los
valores de estas etiquetas en las etiquetas que se extraen con scraping.
El reetiquetado de métricas se aplica a las muestras. es el último paso antes de la transferencia. Puedes usar el reetiquetado de métricas para descartar las series temporales que no necesitas transferir; descartar estas series temporales reduce la cantidad de muestras transferidas, lo que puede reducir los costos.
Para obtener más información acerca del reetiquetado, consulta la documentación de Prometheus
para relabel_config
y
metric_relabel_configs
.
Metaetiquetas de Compute Engine disponibles durante el reetiquetado
Cuando el Agente de operaciones extrae con scraping las métricas, incluye un conjunto de metaetiquetas cuyos
valores se basan en la configuración de la VM de Compute Engine en la que
se ejecuta el agente. Puedes usar estas etiquetas y la sección relabel_configs
del receptor
de Prometheus para agregar metadatos adicionales a las métricas sobre
la VM desde la que se transfirieron. Para ver un ejemplo, consulta
Configuración adicional del receptor.
Las siguientes metaetiquetas están disponibles en los objetivos para que las uses en la
sección relabel_configs
:
__meta_gce_instance_id
: El ID numérico de la instancia de Compute Engine (local)__meta_gce_instance_name
: El nombre de la instancia de Compute Engine (local). El Agente de operaciones coloca este valor de forma automática en la etiqueta mutableinstance_name
de tus métricas.__meta_gce_machine_type
: La URL parcial o completa del tipo de máquina de la instancia; el agente de operaciones coloca este valor de forma automática en la etiqueta mutablemachine_type
de tus métricas.__meta_gce_metadata_NAME
: Cada elemento de metadatos de la instancia__meta_gce_network
: La URL de red de la instancia.__meta_gce_private_ip
: La dirección IP privada de la instancia__meta_gce_interface_ipv4_NAME
: La dirección IPv4 de cada interfaz con nombre.__meta_gce_project
: El proyecto de Google Cloud en el que se ejecuta la instancia (local).__meta_gce_public_ip
: La dirección IP pública de la instancia, si está presente__meta_gce_tags
: La lista separada por comas de las etiquetas de instancia.__meta_gce_zone
: La URL de la zona de Compute Engine en la que se ejecuta la instancia.
Los valores de estas etiquetas se establecen cuando se inicia el Agente de operaciones. Si modificas los valores, debes reiniciar el Agente de operaciones para actualizar los valores.
Configuración adicional del receptor
En esta sección, se proporcionan ejemplos que usan las secciones relabel_configs
y
metric_relabel_configs
del receptor de Prometheus para modificar la cantidad
y la estructura de las métricas transferidas. En esta sección, también se incluye
una versión modificada del receptor para el ejemplo del exportador JSON que usa
las opciones de reetiquetado.
Agrega metadatos de VM
Puedes usar la sección relabel_configs
para agregar etiquetas a las métricas.
Por ejemplo, en el siguiente ejemplo, se usa una metaetiqueta, __meta_gce_zone
,
que proporciona el Agente de operaciones para crear una etiqueta de métrica, zone
, que
se conserva después del reetiquetado, ya que zone
no tiene el
prefijo __
.
Para obtener una lista de las metaetiquetas disponibles, consulta Metaetiquetas de Compute Engine disponibles durante el reetiquetado. La configuración predeterminada del Agente de operaciones vuelve a etiquetar algunas de las metaetiquetas.
relabel_configs: - source_labels: [__meta_gce_zone] regex: '(.+)' replacement: '${1}' target_label: zone
El receptor de Prometheus que se muestra en Ejemplo: Configura el Agente de operaciones para Prometheus incluye la adición de esta etiqueta.
Descarta métricas
Puedes usar la sección metrics_relabel_configs
para descartar las métricas que no quieras transferir; este patrón es útil para la contención de costos.
Por ejemplo, puedes usar el siguiente patrón para descartar cualquier métrica con
un nombre que coincida con METRIC_NAME_REGEX_1 o METRIC_NAME_REGEX_2:
metric_relabel_configs: - source_labels: [ __name__ ] regex: 'METRIC_NAME_REGEX_1' action: drop - source_labels: [ __name__ ] regex: 'METRIC_NAME_REGEX_2' action: drop
Agrega etiquetas estáticas
Puedes usar la sección metrics_relabel_configs
para agregar etiquetas estáticas a
todas las métricas que transfiere el receptor de Prometheus. Puedes usar el siguiente
patrón para agregar etiquetas staticLabel1
y staticLabel2
a todas las métricas transferidas:
metric_relabel_configs: - source_labels: [ __address__ ] action: replace replacement: 'STATIC_VALUE_1' target_label: staticLabel1 - source_labels: [ __address__ ] action: replace replacement: 'STATIC_VALUE_2' target_label: staticLabel2
En la siguiente versión del receptor de Prometheus para el ejemplo de Exporter de JSON, se usan estos patrones de configuración para hacer lo siguiente:
- Establece la etiqueta
zone
a partir del valor de la metaetiqueta__meta_gce_zone
que proporciona el Agente de operaciones. - Descarta la métrica
example_global_value
del exportador. - Agrega la etiqueta
staticLabel
con el valor “Un valor estático” a todas las métricas transferidas.
metrics: receivers: prometheus: type: prometheus config: scrape_configs: - job_name: 'json_exporter' scrape_interval: 10s metrics_path: /probe params: module: [default] target: [http://localhost:8000/examples/data.json] static_configs: - targets: ['localhost:7979'] relabel_configs: - source_labels: [__meta_gce_zone] regex: '(.+)' replacement: '${1}' target_label: zone metric_relabel_configs: - source_labels: [ __name__ ] regex: 'example_global_value' action: drop - source_labels: [ __address__ ] action: replace replacement: 'A static value' target_label: staticLabel