• EnglishEspañol日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Crea una propuesta

Adaptador New Relic métrica

VISTA PREVIA PÚBLICA

Esta característica aún se encuentra en versión preliminar pública, ¡pero te animamos a que la pruebes!

Puede usar métrica desde su cuenta New Relic para escalar automáticamente aplicaciones y servicios en su clúster de Kubernetes implementando el Adaptador métrico New Relic . Este adaptador obtiene los valores métricos de New Relic y los pone a disposición de los Autoscalers pod horizontal.

El newrelic-k8s-metrics-adapter implementa la API external.metrics.k8s.io para admitir el uso de resultados de consulta New Relic NRQL basados en métricas externas. Una vez implementado, el valor de cada métrica configurada se obtiene utilizando la API NerdGraph según la consulta NRQL configurada.

El adaptador métrico expone la métrica sobre un extremo asegurado con TLS.

New Relic métrica en clúster.

Requisitos

Instalacion

Para instalar el adaptador métrico New Relic , proporcionamos el newrelic-k8s-metrics-adapter gráfico de Helm, que también se incluye en el gráfico nri-bundle utilizado para desplegar todos los componentes New Relic Kubernetes .

  1. Si aún no está instalado, instale nuestra integración de Kubernetes.

  2. Actualice la instalación para incluir el Adaptador métrico New Relic con el siguiente comando:

    helm upgrade --install newrelic newrelic/nri-bundle \
    --namespace newrelic --create-namespace --reuse-values \
    --set metrics-adapter.enabled=true \
    --set newrelic-k8s-metrics-adapter.personalAPIKey=YOUR_NEW_RELIC_PERSONAL_API_KEY \
    --set newrelic-k8s-metrics-adapter.config.accountID=YOUR_NEW_RELIC_ACCOUNT_ID \
    --set newrelic-k8s-metrics-adapter.config.externalMetrics.external_metric_name.query=NRQL query

Tenga en cuenta y ajuste las siguientes banderas:

  • metrics-adapter.enabled: Debe configurarse en true para que se instale la tabla de adaptadores métricos.

  • newrelic-k8s-metrics-adapter.personalAPIKey: Debe New Relic configurarse en una clave de API personal de válida.

  • newrelic-k8s-metrics-adapter.config.accountID: Debe configurarse en una cuenta New Relic válida de donde se obtendrán las métricas.

  • newrelic-k8s-metrics-adapter.config.externalMetrics.external_metric_name.query: Agrega una nueva métrica externa donde:

    • external_metric_name: el nombre de la métrica.
    • query: la consulta NRQL base que se utiliza para obtener el valor de la métrica.

Sugerencia

Alternativamente, puede usar un archivo values.yaml que se puede pasar al comando helm con el indicador --values . Los archivos de valores pueden contener todos los parámetros necesarios para configurar la métrica explicada en la sección de configuración .

Configuración

Puedes configurar múltiples métricas en el adaptador de métricas y cambiar algún parámetro para modificar el comportamiento del caché y filtrado de métricas. Para ver la lista completa y las descripciones de todos los parámetros que se pueden modificar, consulte el gráfico de los archivos README.md y value.yaml .

Cómo funciona

El siguiente ejemplo es un archivo de valores Helm que habilita el adaptador métrico en la instalación del gráfico nri-bundle y configura la métrica nginx_average_requests :

metrics-adapter:
enabled: true
newrelic-k8s-metrics-adapter:
personalAPIKey: <Personal API Key>
config:
accountID: <Account ID>
externalMetrics:
nginx_average_requests:
query: "FROM Metric SELECT average(nginx.server.net.requestsPerSecond) SINCE 2 MINUTES AGO"

Advertencia

El lapso de tiempo predeterminado para métrica es 1h. Por lo tanto, debes definir consulta con la cláusula SINCE para ajustar el lapso de tiempo según tu entorno y necesidades.

Hay un HPA que consume la métrica externa de la siguiente manera:

kind: HorizontalPodAutoscaler
apiVersion: autoscaling/v2beta2
metadata:
name: nginx-scaler
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: nginx
minReplicas: 1
maxReplicas: 10
metrics:
- type: External
external:
metric:
name: nginx_average_requests
selector:
matchLabels:
k8s.namespaceName: nginx
target:
type: Value
value: 10000

Según la definición de HPA, el administrador del controlador obtiene la métrica de la API métrica externa que es atendida por el adaptador métrico New Relic .

El adaptador métrico New Relic recibe la consulta incluyendo el nombre métrico nginx_average_requests y todos los selectores, y busca un nombre métrico coincidente en la memoria interna en función de la métrica configurada. Luego, agrega los selectores a la consulta para formar una consulta final que se ejecuta usando NerdGraph para obtener el valor de New Relic. El ejemplo anterior generará una consulta como la siguiente:

FROM Metric SELECT average(nginx.server.net.requestsPerSecond) WHERE clusterName=<clusterName> AND `k8s.namespaceName`='nginx' SINCE 2 MINUTES AGO

Observe que se ha agregado automáticamente un filtro clusterName a la consulta para excluir métrica de otros clústeres en la misma cuenta. Puede eliminarlo utilizando el parámetro de configuración removeClusterFilter . Además, el valor se almacena en caché durante un período de tiempo definido por el parámetro de configuración cacheTTLSeconds , cuyo valor predeterminado es 30 segundos.

Resolución de problemas

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.