Te ofrecemos esta traducción automática para facilitar la lectura.
En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.
Configurar la integración de Prometheus OpenMetrics
A menos que se indique lo contrario, las opciones de configuración para su integración de Prometheus OpenMetrics con New Relic se aplican tanto a los entornos docker como Kubernetes . Como mínimo, los siguientes valores de configuración son required:
Recomendación: configure su clave de licencia de New Relic como una variable de entorno denominada LICENSE_KEY. Esto proporciona un entorno más seguro, ya que New Relic puede cargar su variable de entorno desde un secreto de autenticación TLS mutuo.
Configurar nri-prometheus-latest.yaml
El archivo de manifiesto nri-prometheus-latest.yaml incluye el mapa nri-prometheus-cfg que muestra una configuración de ejemplo. Utilice el archivo de manifiesto para configurar el siguiente parámetro.
El siguiente es un archivo de configuración de ejemplo que puede guardar y modificar para adaptarlo a sus necesidades. Para obtener más información, consulte la documentación sobre la autenticación TLS mutua y la traducción de PromQL a NRQL.
# The name of your cluster. It's important to match other New Relic products to relate the data.
cluster_name:"YOUR_CLUSTER_NAME"
# When standalone is set to false nri-prometheus requires an infrastructure agent to work and send data. Defaults to true
# standalone: true
# How often the integration should run. Defaults to 30s.
# scrape_duration: "30s"
# The HTTP client timeout when fetching data from targets. Defaults to 5s.
# scrape_timeout: "5s"
# How old must the entries used for calculating the counters delta be
# before the telemetry emitter expires them. Defaults to 5m.
# telemetry_emitter_delta_expiration_age: "5m"
# How often must the telemetry emitter check for expired delta entries.
A continuación se muestran algunos nombres y definiciones clave para su archivo de configuración de Prometheus OpenMetrics.
Nombre clave
Descripción
cluster_name
Required.
El nombre del clúster. Este valor se incluirá como atributo clusterName para todas las métricas.
verbose
Booleano stringificado.
true (predeterminado): registra información de depuración.
false: Sólo registra mensajes de error.
targets
Configuración del extremo estático que será eliminado por la integración. Contiene una lista de objetos. Para obtener más información sobre esta estructura, consulte la documentación sobre configuración de objetivos.
scrape_enabled_label
Kubernetes
Cadena. La integración comprobará si el pod y el servicio de Kubernetes están anotados o tienen una etiqueta con este valor para decidir si es necesario eliminarlo.
Esto es particularmente útil cuando desea limitar la cantidad de datos ignorando métricas o incluyendo métricas específicas que se envían a New Relic. Dado que de forma predeterminada usamos la misma etiqueta que usa Prometheus para descubrir el objetivo que se puede eliminar, la mayoría de los exportadores que instala configuran automáticamente esta etiqueta.
Para mantener un control detallado sobre el objetivo que desea que elimine la integración, puede configurar esta opción en algún otro valor (como newrelic/scrape) y luego agregar la anotación o etiqueta newrelic/scrape: "true" a sus objetos Kubernetes . Si se configuran ambos, las anotaciones tienen prioridad sobre las etiquetas.
Por defecto: "prometheus.io/scrape"
scrape_duration
¿Con qué frecuencia debe funcionar el raspador?
Para reducir el uso de memoria, aumente este valor.
Para aumentar el uso de memoria, disminuya este valor.
El impacto en el uso de la memoria se debe a la distribución de la recuperación de objetivos durante el intervalo de extracción para evitar consultar (y almacenar en el búfer) todos los datos a la vez.
El valor predeterminado es 30s. Los valores válidos incluyen 1s, 15s, 30s, 1m, 5m, etc.
scrape_timeout
El tiempo de espera del cliente HTTP al recuperar datos del extremo.
Predeterminado: 5s. Los valores válidos incluyen 1s, 15s, 30s, 1m, 5m, etc.
worker_threads
Número de subprocesos de trabajo utilizados para el objetivo de scraping. Se puede aumentar en entornos con una gran cantidad de objetivos o objetivos con alta latencia, pero puede aumentar el consumo de memoria.
Predeterminado: 4. No se recomienda utilizar más de 10.
require_scrape_enabled_label_for_nodes
Kubernetes
Si los nodos de Kubernetes necesitan o no etiquetas para ser eliminados.
Para respaldar mejor la visualización de estos datos, los percentiles se calculan en función del histograma métrico y se envían a New Relic. Los valores válidos incluyen 50, 95 y 99.
emitter_proxy
Proxy utilizado por la integración al enviar métrica:
[scheme]://[domain]:[port]
Este proxy no se utilizará al obtener métricas del objetivo.
De forma predeterminada, está vacío y no se utilizará ningún proxy.
emitter_ca_file
Certificado para agregar a la CA raíz que el emisor utilizará al verificar los certificados del servidor. Si se deja vacío, TLS utiliza el conjunto de CA raíz del host.
emitter_insecure_skip_verify
Si el emisor debe omitir la verificación TLS al enviar datos. Predeterminado: false.
disable_autodiscovery
Establezca en verdadero para deshabilitar la detección automática en el clúster k8s. Puede resultar útil cuando se ejecuta el pod con una cuenta de servicio que tiene privilegios limitados. Predeterminado: false.
Configurar objetos en clave objetivo
Si desea que la clave de destino en el archivo de configuración contenga uno o más objetos, use la siguiente estructura en la lista YAML:
Nombre clave
Descripción
description
Una descripción de las URL de este objetivo.
urls
Una lista de cadenas con las URL que se eliminarán.
tls_config
Configuración de autenticación utilizada para enviar solicitudes. Es compatible con TLS y TLS mutuo. Para obtener más información, consulte la documentación sobre la autenticación TLS mutua.
La integración Prometheus OpenMetrics de New Relic descubre automáticamente qué objetivo eliminar. Para especificar el puerto y la ruta del extremo que se usarán al construir el objetivo, puede usar las anotaciones o etiquetas prometheus.io/port y prometheus.io/path en su pod y servicios Kubernetes . Las anotaciones tienen prioridad sobre las etiquetas.
Si prometheus.io/port no está presente, la integración intentará eliminar cada port o ContainerPort definido para el servicio.
Si prometheus.io/path no está presente, la integración será predeterminada en /metrics.
Si un servicio no se ejecuta en la ruta /my-metrics-path predeterminada, agregue una etiqueta al pod prometheus.io/path=my-metrics-path. Si la ruta al extremo métrico es más compleja y no puede ser un valor de etiqueta válido (por ejemplo, foo/bar), utilice anotaciones en su lugar.
En este ejemplo, tienes un despliegue en tu clúster, y el pod expone Prometheus métrica en el puerto 8080 y en la ruta my-metrics.
En los metadatos PodSpec del manifiesto desplegable, establece las etiquetas prometheus.io/port: "8080" y prometheus.io/path: "my-metrics". Cuando la integración intente recuperar la métrica de su pod, enviará una solicitud a http://<pod-ip>:8080/my-metrics.
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas:2
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
prometheus.io/scrape:"true"
prometheus.io/port:"8080"
prometheus.io/path:"my-metrics"
Servicios y comportamiento de raspado extremo.
De forma predeterminada, los servicios se eliminan directamente en lugar del extremo subyacente, ya que scrape_services está configurado en true y scrape_endpoints en false.
Para cambiar este comportamiento, establezca scrape_endpoints en true configurando Prometheus OpenMetrics integrations para eliminar el extremo subyacente, como lo hace el servidor Prometheus de forma nativa, en lugar de directamente los servicios.
Tenga en cuenta que dependiendo del número de extremos detrás de los servicios en el clúster, la carga y los datos ingeridos pueden aumentar considerablemente, monitor y, si es necesario, aumentar los requisitos de recursos.
Además, incluso si fuera posible establecer scrape_services y scrape_endpoints en verdadero para garantizar la retrocompatibilidad, se producirían datos duplicados.
Recargar la configuración
La integración de Prometheus OpenMetrics does not recarga automáticamente la configuración cuando realiza cambios en el archivo de configuración.
Docker
Para recargar la configuración, reinicie el contenedor que ejecuta la integración:
bash
$
docker restart nri-prometheus
Kubernetes
Para recargar la configuración, resetear la integración. Recomendación: Escale el despliegue a cero réplicas y luego vuelva a escalarlo a una réplica: