Recopila métricas de Prometheus

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 Prometheus del Agente de operaciones les brinda la misma capacidad a los usuarios de Compute Engine.

Puedes usar todas las herramientas que proporciona Cloud Monitoring, incluido PromQL, para ver y analizar los datos recopilados por 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 tus métricas de Prometheus en interfaces fuera de Cloud Monitoring, como la IU de Prometheus y Grafana.

Elige al receptor adecuado

Antes de que decidas usar el receptor de Prometheus, determina si ya existe una integración del Agente de operaciones para la aplicación que estás usando. Para obtener información sobre las integraciones existentes con el Agente de operaciones, consulta Supervisa aplicaciones de terceros. Si ya hay una, te recomendamos que la uses. Para obtener más información, consulta Elige una integración existente.

Recomendamos usar el receptor de Prometheus del Agente de operaciones cuando se cumple lo siguiente:

Integraciones existentes

El Agente de operaciones proporciona integraciones para una serie de aplicaciones de terceros. Estas integraciones te proporcionan lo siguiente:

  • Un conjunto de métricas de 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 métricas se conocen con anticipación, y puedes usar esa información para estimar los costos.

Por ejemplo, si usas la integración del servidor web Apache (httpd), el Agente de operaciones recopila cinco métricas escalares, y 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 sobre 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:

  • Puedes controlar la cantidad y la cardinalidad de las métricas que emite tu aplicación. No existe 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étrica “personalizada” cuando se transfieren a Cloud Monitoring y están sujetas a las cuotas y 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 las necesidades de tu empresa. Para obtener información sobre la creación de paneles, consulta Paneles y gráficos.

  • El precio de la transferencia de métricas se basa en la cantidad de muestras transferidas. Para estimar tus 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
    • La cantidad de hosts de los que se muestrean las métricas

    Para obtener más información sobre el recuento de muestras y la estimación de 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 lenguaje, 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, sigue estos pasos:

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

Por lo general, el modelo de configuración del Agente de operaciones implica 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 debes crear un procesador del Agente de operaciones para las métricas de Prometheus. El receptor de Prometheus admite casi todas las opciones de configuración especificadas por 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 y metric_relabel_configs de la configuración de entorno, como se especifica en el receptor de Prometheus. Para obtener más información, consulta Reetiquetado: modifica los datos que se copian.

  • Debes definir la canalización de Prometheus solo en términos del receptor de Prometheus. No debes especificar 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 scrape-config. 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 scrape_config de Prometheus, excepto las siguientes:

  • Las secciones de descubrimiento de servicios, *_sd_config.
  • El parámetro de configuración honor_labels.

Por lo tanto, puedes copiar las configuraciones de scraping existentes y usarlas para el Agente de operaciones con poca o ninguna modificación.

A continuación, se muestra la estructura completa del receptor de Prometheus:

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 parámetros de configuración de reetiquetado, 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 de una aplicación. En este ejemplo, se usa el exportador de JSON que proporciona la comunidad de Prometheus (json_exporter), que expone las métricas de Prometheus en el puerto 7979.

Para configurar el ejemplo, se requieren los siguientes recursos, que quizás debas instalar:

  • git
  • curl
  • make
  • python3
  • Idioma Go, versión 1.19 o posterior

Crea o configura tu aplicación

Para obtener y ejecutar el exportador de JSON, usa el siguiente procedimiento:

  1. Clona el repositorio json_exporter y verifica el exportador con la ejecución de los siguientes comandos:

    git clone https://github.com/prometheus-community/json_exporter.git
    
    cd json_exporter
    
    git checkout v0.5.0
    
  2. Compila el exportador a través de la ejecución del siguiente comando:

    make build
    
  3. Inicia el servidor HTTP de Python a través de la ejecución del siguiente comando:

    python3 -m http.server 8000 &
    
  4. Inicia el exportador JSON a través de la ejecución del siguiente comando:

    ./json_exporter --config.file examples/config.yml &
    
  5. Consulta el exportador de JSON para verificar que esté ejecutando y expone 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 strings como example_value_active son los nombres de las métricas, con las etiquetas y los 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. Para el ejemplo del exportador de JSON, usa el siguiente procedimiento:

  1. Edita el archivo de configuración del Agente de operaciones, /etc/google-cloud-ops-agent/config.yaml, y agrega las siguientes entradas del receptor y de la canalización 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 existentes de metrics y service. Para obtener más información, consulta Configuración de métricas.

    Para ver ejemplos de cómo volver a etiquetar los archivos 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

  1. Para reiniciar el agente, ejecuta el siguiente comando en tu instancia:

    sudo service google-cloud-ops-agent restart
    
  2. 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

  1. Conéctate a tu instancia a través de RDP o una herramienta similar y accede a Windows.

  2. 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.

  3. Para reiniciar el agente, ejecuta el siguiente comando de PowerShell:

    Restart-Service google-cloud-ops-agent -Force
    
  4. 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 recopilados por el receptor de Prometheus. Por ejemplo, puedes graficar los 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 consulta disponibles en Cloud Monitoring con el Explorador de métricas:

Puedes crear paneles de Cloud Monitoring y políticas de alertas para tus métricas. Para obtener información sobre los paneles y los tipos de gráficos que puedes usar, consulta Paneles y gráficos. Para obtener información sobre 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 sobre 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:

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

    Ir al Explorador de métricas

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

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

  4. Ingresa la siguiente consulta en el editor y, luego, haz clic en Ejecutar consulta:

    up
    

Si se están transfiriendo tus datos, verás un gráfico como el siguiente:

Gráfico del Explorador de métricas para la métrica Up del exportador de JSON.

Si ejecutas el ejemplo del exportador de 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 del example_value_count, que incluye las etiquetas definidas por la aplicación exportador de JSON y las etiquetas que agregó el Agente de operaciones:

    Gráfico del Explorador de métricas para la métrica example_value_count del exportador JSON.

  • Consulta datos para 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 como 5671897148133813325, 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 de JSON emite métricas con una etiqueta id que tiene valores como id-A, id-B y id-C. Para filtrar cualquier métrica con una etiqueta id 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:

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

    Ir al Explorador de métricas

  2. 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:

      1. En la barra de herramientas del panel del compilador de consultas, selecciona el botón cuyo nombre sea MQL o PromQL.
      2. 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.
      3. Ingresa la siguiente consulta:

        fetch prometheus_target::prometheus.googleapis.com/up/gauge
        
      4. Haga clic en Ejecutar consulta (Run Query).

    • Para usar la interfaz basada en menús, haz lo siguiente:

      1. En el campo Tipo de recurso, escribe “prometheus” para filtrar la lista y, luego, selecciona Destino de Prometheus.

      2. 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: Es el identificador del proyecto de Google Cloud, como my-project, en el que se ejecuta el Agente de operaciones.
  • location: Es la región de Google Cloud o AWS en la que se ejecuta el Agente de operaciones. Por ejemplo, us-east1-a (Google Cloud) o aws: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 instancia de Compute Engine de la VM en la que se ejecuta el Agente de operaciones.
  • job: Es el valor del campo job_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 establece 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 cobrables 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.
  • Uso de métricas en políticas de alertas y paneles personalizados.
  • Tasa de errores de escritura de métricas.

Para ver la página Administración de métricas, haz lo siguiente:

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

    Ir a Administración de métricas

  2. 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 recopilación o sus métricas antes de que se extraiga el objetivo. 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 string __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 reetiquetado. Puedes usar el reetiquetado para capturar los valores de estas etiquetas en las etiquetas que se extraen.

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 sobre el nuevo etiquetado, consulta la documentación de Prometheus sobre relabel_config y metric_relabel_configs.

Metaetiquetas de Compute Engine disponibles durante el reetiquetado

Cuando el Agente de operaciones recopila 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 tus 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 destinos 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: Es el nombre de la instancia de Compute Engine (local); el Agente de operaciones coloca este valor de forma automática en la etiqueta instance_name mutable 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 mutable machine_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 en los que se 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 de JSON que usa las opciones de reetiquetado.

Agrega metadatos de VMs

Puedes usar la sección relabel_configs para agregar etiquetas a las métricas. 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 de volver a etiquetarlo, ya que zone no tiene el prefijo __.

Para obtener una lista de las metaetiquetas disponibles, consulta las 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 el Ejemplo: Configura el Agente de operaciones para Prometheus incluye 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