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

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

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Anexação automática do Kubernetes APM

visualização

Ainda estamos trabalhando nesse recurso, mas adoraríamos que você experimentasse!

Atualmente, esse recurso é fornecido como parte de um programa de visualização de acordo com nossas políticas de pré-lançamento.

O auto-attach Kubernetes APM , anteriormente conhecido como operador do agente Kubernetes , agiliza a observabilidade full-stack para ambientes Kubernetes , automatizando a instrumentação APM junto com a implantação do agente Kubernetes . Ao ativar a instrumentação automática, os desenvolvedores não precisam mais gerenciar manualmente o agente APM. O Kubernetes APM auto-attach instalará, atualizará e removerá automaticamente o agente APM.

Atualmente suporta Java, .NET, Node.js, Python e Ruby com linguagens adicionais (PHP e Go) a caminho.

Como funciona

  • O MutatingWebHook, após a instalação, torna-se envolvido na interceptação de solicitações API para implantar pod em nós.

  • Refletindo a configuração especificada, ele altera a especificação pod para adicionar um contêiner NR init e variáveis de ambiente.

  • Após o estabelecimento do pod, o agente New Relic APM é perfeitamente integrado ao aplicativo nele alojado.

Diagram showing how APM agents are auto injected

Antes de você começar

Antes de instalar o operador, verifique o seguinte:

instalação

Dependendo do que você precisa, você pode escolher instalar o Kubernetes APM auto-attach de forma independente ou junto com nossa integração Kubernetes .

Recomendamos fortemente instalá-lo junto com a integração Kubernetes para aproveitar toda a nossa experiência full-stackde observabilidade .

Instalação do pacote além da integração do Kubernetes (recomendado)

O gráfico de anexação automática do Kubernetes APM faz parte do gráfico nri-bundle , que gerencia a instalação de todos os componentes necessários para permitir uma observabilidade completa do Kubernetes.

Adicione o parâmetro k8s-agents-operator.enabled=true ao seu comando helm ou inclua-o no arquivo values.yaml . Consulte a página Instalar a integração do Kubernetes para obter mais informações sobre como usar o Helm ou confira o gráfico nri-bundle .

Veja este exemplo de comandos do Helm usando parâmetro:

bash
$
helm repo add newrelic https://helm-charts.newrelic.com
$
$
helm upgrade --install newrelic-bundle newrelic/nri-bundle \
>
--set global.licenseKey=YOUR_NEW_RELIC_INGEST_LICENSE_KEY \
>
--set global.cluster=CLUSTER_NAME \
>
--namespace=newrelic \
>
--set newrelic-infrastructure.privileged=true \
>
--set global.lowDataMode=true \
>
--set kube-state-metrics.enabled=true \
>
--set kubeEvents.enabled=true \
>
--set k8s-agents-operator.enabled=true \
>
--create-namespace

Instalação autônoma

Para instalar o Kubernetes APM auto-attach com a configuração padrão, execute estes comandos:

bash
$
helm repo add k8s-agents-operator https://newrelic.github.io/k8s-agents-operator
$
helm upgrade --install k8s-agents-operator k8s-agents-operator/k8s-agents-operator \
>
--namespace newrelic \
>
--create-namespace \
>
--set licenseKey=YOUR_NEW_RELIC_INGEST_LICENSE_KEY

Para obter uma lista completa de opções de configuração, consulte o gráfico README .

Configurar instrumentação automática

Depois que a conexão automática do APM estiver configurada no seu cluster, o próximo passo é implementar as configurações necessárias para deixá-lo operacional. Isso envolve ter pelo menos um Recurso Personalizado (CR) de instrumentação ativo no cluster.

Veja o que a instrumentação CR permite que você mapeie:

  • Nome da instrumentação CR
  • Onde aplicará a instrumentação CR (agradecimentos a podLabelSelector e namespaceLabelSelector)
  • Agente APM (um por CR)
  • Versão do agente APM
  • Parâmetro de configuração APM (env vars)
  • Chave de licença (opcional)

O arquivo manifesto precisa ser injetado no mesmo namespace (newrelic por padrão) onde você instalou o APM auto-attach.

bash
$
kubectl apply -f ./values.yaml -n newrelic

Como usar seletores

Para saber quando a instrumentação CR vai injetar o agente APM, precisamos usar seletores. Há 2 seletores de rótulos disponíveis que você pode usar juntos (eles funcionam como um operador lógico AND (&&)) ou separadamente, dependendo de suas necessidades.

  • PodLabelSelector informa ao APM Auto-attach qual pod precisa ser instrumentado.

    Exemplo usando matchLabel (pod select contendo uma tag e valor específicos):

    ...
    podLabelSelector:
    matchLabels:
    app.kubernetes.io/name: flask-hello-world
    ...
  • NameSpaceLabelSelector define no nível do namespace o pod auto-instrumentado.

    Exemplo usando matchExpressions (selecione namespace contendo uma tag e valor específicos):

    ...
    namespaceLabelSelector:
    matchExpressions:
    - key: "kubernetes.io/metadata.name"
    operator: "In"
    values: ["backend"]
    ...

    DICA

    Tenha em mente que aplicar o rótulo kubernetes.io/metadata.name é o mesmo que selecionar com base no nome do namespace.

Ambos os seletores suportam matchLabel e matchExpressions.

Agente APM

Você precisa especificar o agente APM e sua versão no CR de instrumentação. Recomendamos usar a versão mais recente para aproveitar os recursos mais recentes disponíveis.

Imagem

Linguagem

Versões disponíveis

dotnet

newrelic-dotnet-init:latest

.NET

java

newrelic-java-init:latest

Java

nodejs

newrelic-node-init:latest

python

newrelic-python-init:latest

Python

ruby

newrelic-ruby-init:latest

Ruby

Veja este exemplo:

...
spec:
agent:
language: dotnet
image: newrelic/newrelic-dotnet-init:latest
...

Parâmetro de configuração APM

A instrumentação CR fornece a capacidade de injetar variáveis de ambiente no pod para agilizar a configuração do agente APM. Veja este exemplo:

...
spec:
env:
# Example overriding the appName configuration by using a label of the pod
- name: NEW_RELIC_APP_NAME
valueFrom:
fieldRef:
fieldPath: metadata.labels['app.kubernetes.io/name']
...

No exemplo acima, mostramos como você pode configurar as configurações do agente globalmente usando variáveis de ambiente. Consulte a documentação de configuração de cada agente para obter as opções de configuração disponíveis:

Importante

Você pode injetar essas variáveis de ambiente no manifesto de implantação do aplicativo.

Chave de licença (opcional)

Ao instalá-lo, um é criado e é a licença padrão. Siga estas etapas se precisar enviar a telemetria do APM para uma conta diferente:

  • Para criar um segredo contendo uma nova chave de licença, execute este comando:

    bash
    $
    kubectl create secret generic newrelic-key-secret \
    >
    --namespace my-monitored-namespace \
    >
    --from-literal=new_relic_license_key=<NEW RELIC INGEST LICENSE KEY>
  • Para referenciar o segredo do CR de instrumentação, execute este comando:

    ...
    spec:
    licenseKeySecret: the-name-of-the-custom-secret
    ...

Exemplos de instrumentação CR

Atualizar instrumentação APM no aplicativo

Por padrão, a conexão automática do Kubernetes APM instala automaticamente a versão mais recente disponível do agente APM correspondente.

Depois que o monitoramento de um aplicativo é iniciado, ele não é atualizado automaticamente para uma versão mais recente, a menos que você opte por atualizar. Você pode atualizar o aplicativo reimplantando o pod ou reiniciando sua implantação.

Remover instrumentação APM no aplicativo

Para remover a instrumentação APM de um aplicativo, você deve alterar o seletor de rótulo correspondente dentro do podLabelSelector ou namespaceLabelSelector usado ou excluir o CR da instrumentação. Em seguida, reinicie a implantação. O processo de remoção leva apenas alguns segundos.

Atualizar o anexo automático do Kubernetes APM

Instalação do pacote

Execute uma atualização do gráfico nri-bundle com o seguinte parâmetro:

bash
$
k8s-agents-operator.enabled=true

Instalação autônoma

Execute o comando helm upgrade para atualizar para uma versão mais recente do Kubernetes APM auto-attach.

bash
$
helm upgrade k8s-agents-operator newrelic/k8s-agents-operator -n newrelic

Desinstalando o Kubernetes APM auto-attach

Instalação do pacote

Desinstale o gráfico nri-bundle ou, se quiser apenas remover a anexação automática do Kubernetes APM, execute uma atualização do helm com o seguinte parâmetro:

bash
$
k8s-agents-operator.enabled=false

Instalação autônoma

Para desinstalar e excluir o anexo automático do Kubernetes APM, execute este comando:

bash
$
helm uninstall k8s-agents-operator -n newrelic

Encontre e use dados

  • Obtenha insights do seu aplicativo e resolva incidentes usando a página de resumo APM.

  • Confira a página de resumo do Kubernetes . Ele fornece Kubernetes insights no contexto do seu aplicativo de monitor.

Certificados

O anexo automático do Kubernetes APM pode oferecer suporte a cert-manager , se preferir.

  • Execute este comando para instalar o gráfico Helm cert-manager :

    bash
    $
    helm install cert-manager jetstack/cert-manager \
    >
    --namespace cert-manager \
    >
    --create-namespace \
    >
    --set crds.enabled=true
  • No seu arquivo values.yaml , defina admissionWebhooks.autoGenerateCert.enabled: false e admissionWebhooks.certManager.enabled: true. Depois, instale o gráfico normalmente.

Lançamentos de gráficos disponíveis

Execute este comando para ver os gráficos disponíveis:

bash
$
helm search repo k8s-agents-operator

Perguntas frequentes

Resolução de problemas

Caso seu aplicativo não esteja instrumentado, você deverá verificar o seguinte:

  • Certifique-se de reimplantar ou implantar o novo aplicativo depois de instalar Kubernetes APM auto-attach. Observe que apenas novos aplicativos de auto-instrumento são implantados no cluster.

  • Execute este comando para verificar se o segredo está instalado no namespace do aplicativo:

    bash
    $
    kubectl get secrets -n NAMESPACE
  • Verifique se o pod possui os rótulos necessários que permitem a instrumentação automática por meio do CR ao usar podLabelSelector. Da mesma forma, verifique se o namespace tem os rótulos necessários ao usar namespaceLabelSelector dentro do CR.

    bash
    $
    kubectl get pod POD_NAME -n NAMESPACE -o jsonpath='{.metadata.annotations}'
  • Execute este comando para obter o log do de APM conexão automática pod:

    bash
    $
    kubectl logs AGENT_OPERATOR_POD -n newrelic
  • Execute este comando para garantir que o contêiner init foi injetado e executado com sucesso dentro do pod do aplicativo.

    bash
    $
    kubectl describe pod POD_NAME -n NAMESPACE

Como migrar de versões anteriores que exigiam anotações

A partir da versão 0.14, as anotações no manifesto de implantação do aplicativo não são mais necessárias para que o aplicativo seja autoinstrumentado.

É aconselhável desinstalar todas as versões anteriores à 0.14 e prosseguir com a instalação da versão mais recente. A utilização dos seletores de rótulos dentro da instrumentação CR permitirá a implantação precisa do agente APM, dispensando assim a necessidade de anotações.

Apoiar

O Kubernetes APM auto-attach atualmente oferece suporte à versão mais recente destes agentes APM: Java, .NET, Node.js, Python e Ruby.

Quando estiver disponível para o público em geral, as 3 versões mais recentes de cada um dos agentes APM serão suportadas.

Para quaisquer problemas:

Copyright © 2024 New Relic Inc.

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