• EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

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.

Criar um problema

Adaptador métrico New Relic

PRÉVIA PÚBLICA

Este recurso ainda está em versão prévia pública, mas encorajamos você a experimentá-lo!

Você pode usar a métrica da sua conta New Relic para dimensionar automaticamente aplicativos e serviços em seu cluster do Kubernetes implantando o Adaptador métrica New Relic . Este adaptador busca os valores de métrica do New Relic e os disponibiliza para os escalonadores automáticos horizontais de pods.

O newrelic-k8s-metrics-adapter implementa a external.metrics.k8s.io API para dar suporte ao uso de New Relic NRQL resultados de consulta baseados em métricas externas. Uma vez implantado, o valor de cada métrica configurada é obtido através da API NerdGraph com base na consulta NRQL configurada.

O adaptador métrico expõe a métrica em um endpoint seguro com TLS.

Adaptador métrico New Relic em cluster.

Requisitos

instalação

Para instalar o New Relic adaptador métrico , fornecemos o newrelic-k8s-metrics-adapter gráfico Helm , que também está incluído no nri-bundle gráfico usado para implantar todos os New Relic Kubernetes componentes .

  1. Se ainda não estiver instalado, instale nossa integração Kubernetes.

  2. Atualize a instalação para incluir o Adaptador métrico New Relic com o seguinte 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

Observe e ajuste os seguintes sinalizadores:

  • metrics-adapter.enabled: Deve ser configurado como true para que o gráfico do adaptador métrico seja instalado.

  • newrelic-k8s-metrics-adapter.personalAPIKey: Deve ser definido como uma chave de API pessoal válida do New Relic.

  • newrelic-k8s-metrics-adapter.config.accountID: Deve ser definido para uma conta New Relic válida de onde as métricas serão obtidas.

  • newrelic-k8s-metrics-adapter.config.externalMetrics.external_metric_name.query: adiciona uma nova métrica externa onde:

    • external_metric_name: o nome da métrica.
    • query: a consulta NRQL base usada para obter o valor da métrica.

Dica

Como alternativa, você pode usar um arquivo values.yaml que pode ser transmitido ao comando helm com a sinalização --values . Os arquivos de valores podem conter todos os parâmetros necessários para configurar a métrica explicada na seção de configuração .

Configuração

Você pode configurar múltiplas métricas no adaptador métrica e alterar alguns parâmetros para modificar o comportamento do cache métrico e da filtragem. Para ver a lista completa e as descrições de todos os parâmetros que podem ser modificados, consulte os arquivos do gráfico README.md e values.yaml .

Como funciona

O exemplo a seguir é um arquivo de valores do Helm que habilita o adaptador métrica na instalação do gráfico nri-bundle e configura a 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"

Cuidado

O intervalo de tempo padrão para métrica é 1h. Portanto, você deve definir consulta com a cláusula SINCE para ajustar o intervalo de tempo de acordo com seu ambiente e necessidades.

Existe um HPA consumindo a métrica externa da seguinte forma:

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

Com base na definição do HPA, o gerenciador do controlador busca a métrica da API métrica externa que é atendida pelo adaptador métrica New Relic .

O adaptador métrico New Relic recebe a consulta incluindo o nome da métrica nginx_average_requests e todos os seletores, e procura um nome de métrica correspondente na memória interna com base na métrica configurada. Em seguida, ele adiciona os seletores à consulta para formar uma consulta final que é executada usando o NerdGraph para buscar o valor do New Relic. O exemplo acima irá gerar uma consulta como a seguinte:

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

Observe que um filtro clusterName foi adicionado automaticamente à consulta para excluir métricas de outros clusters na mesma conta. Você pode removê-lo usando o parâmetro de configuração removeClusterFilter . Além disso, o valor é armazenado em cache por um período de tempo definido pelo parâmetro de configuração cacheTTLSeconds , cujo padrão é 30 segundos.

Resolução de problemas

Copyright © 2024 New Relic Inc.

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