Você pode instalar o agente eBPF do New Relic no seu cluster do Kubernetes para monitorar a integridade de todo o sistema. O agente eBPF fornece visibilidade profunda do desempenho do aplicativo sem exigir alterações de código ou implantar agente específico de linguagem.
Na tela Selecionar uma conta, selecione a conta na qual deseja instalar o agente eBPF e clique em Continue.
Na página Selecionar um método de instalação, selecione Kubernetes e clique em Continue.
Na tela Insira sua chave de usuário, selecione uma das seguintes opções e clique em Continue:
Usar uma chave existente: Se você já tiver uma chave de usuário, forneça-a. Para obter mais informações, consulte Chaves do usuário.
Criar uma nova chave: se você não tiver uma chave de usuário, clique em Create a new key para criar uma.
Na tela Configurar a integração do Kubernetes:
Insira o nome da implantação do Kubernetes.
(Opcional) Insira o namespace para a integração. O namespace padrão é newrelic.
Clique em Continue.
Dica
Se você escolher um namespace personalizado para sua instrumentação New Relic (em vez do padrão newrelic), recomendamos excluir esse namespace do monitoramento adicionando-o ao parâmetro de configuração dropDataForNamespaces. Isso evita que o próprio agente eBPF monitore o pod de instrumentação. Por exemplo, se você usar newrelic-mon como seu namespace, defina: dropDataForNamespaces: ["kube-system", "newrelic-mon"].
Na tela Instalar a integração do Kubernetes:
Copie e cole o comando exibido para instalar o agente eBPF no seu cluster do Kubernetes usando Helm.
(Opcional) Para baixar o arquivo de configuração values.yaml, clique em Download. Para obter mais informações sobre os parâmetros de configuração, consulte Parâmetros de configuração do K8s.
(Opcional) Atualize o arquivo values.yaml conforme necessário e salve-o.
(Opcional) Para aplicar as alterações de configuração, execute o seguinte comando:
Para verificar a instalação, execute o seguinte comando:
bash
$
kubectl get pods -n newrelic
Acesse os dados do eBPF no New Relic
Depois que o agente eBPF estiver instalado, ele começará automaticamente a coletar dados do seu host Linux. Você pode acessar esses dados na interface de usuário OpenTelemetry do New Relic. Para obter mais informações sobre a interface OpenTelemetry New Relic, consulte Interface OpenTelemetry APM .
No banner de pesquisa, defina os critérios de pesquisa como instrumentation.name = nr_ebpf:
/* Depois que seu aplicativo estiver instrumentado e configurado para exportar dados para o New Relic, você poderá encontrar seus dados na interface New Relic : * Encontre sua entidade em <DNT>**Todas as entidades > Serviços - OpenTelemetry</DNT>. O nome da entidade é definido como o valor do `service.name` do aplicativo atributo de recurso. Para obter mais informações sobre como as entidades de serviço New Relic são derivadas do atributo de recurso OpenTelemetry, consulte [Serviços](/docs/OpenTelemetry/práticas recomendadas/OpenTelemetry-práticas recomendadas-resources/#services). * Use [NRQL](/docs/NRQL/get-started/introduction-NRQL (New Relic Query Language)/) para consultar diretamente [rastreamento](https\://one.newrelic.com/launcher/nr1-core.explorer?overlay=eyJuZXJkbGV0SWQiOiJkYXRhLWV4cGxvcmF0aW9uLnF1ZXJ5LWJ1aWxkZXIiLCJpbml0aWFsQWN0aXZlSW50ZXJmYWNlIjoibnJxbEVkaXRvciIsImluaXRpYWxOcnFsVmFsdWUiOiIiLCJpbml0aWFsUXVlcmllcyI6W3sibnJxbCI6IkZST00gU3BhbiBTRUxFQ1QgY291bnQoKikgd2hlcmU gbmV3cmVsaWMuc291cmNlPSclb3RscCUnIFRJTUVTRVJJRVMifV0sImluaXRpYWxDaGFydFNldHRpbmdzIjp7ImNoYXJ0VHlwZSI6IkNIQVJUX0xJTkUiLCJsaW1pdCI6NzU0MiwibGlua2VkRW50aXR5R3VpZCI6bnVsbCwibGlua2VkRGFzaGJvYXJkSWQiOm51bGwsInlTY2FsZSI6eyJzdGF0aWMiOmZhbHNlLCJkb21haW4iOltudWxsLG51bGxdfSwieVplcm8iOnRydWV9fQo=), [métrica](https\://one.newrelic.com/launcher/nr1-core.explorer?overlay=eyJuZXJkbGV0SWQiOiJkYXRhLWV4cGxvcmF0aW9uLnF1ZXJ5LWJ1aWxkZXIiLCJpbml0aWFsQWN0aXZlSW50ZXJmYWNlIjoibnJxbEVkaXRvciIsImluaXRpYWxOcnFsVmFsdWUiOiIiLCJpbml0aWFsUXVlcmllcyI6W3sibnJxbCI6IkZST00gTWV0cmljIFNFTEVDVCBjb3VudCgqKSB3aGVyZS BuZXdyZWxpYy5zb3VyY2UgTElLRSAnJW90bHAlJyBUSU1FU0VSSUVTIN1dLCJpbml0aWFsQ2hhcnRTZXR0aW5ncyI6eyJjaGFydFR5cGUiOiJDSEFSVF9MSU5FIiwibGltaXQiOjc1NDIsImxpbmtlZEVudGl0eUd1aWQiOm51bGwsImxpbmtlZERhc2hib2FyZElkIjpudWxsLCJ5U2NhbGUiOnsic3RhdGljIjpmYWxzZSwiZG9tYWluIjpbbnVsbCxudWxsXX0sInlaZXJvIjp0cnVlfX0K), e [logs](https\://one.newrelic.com/launcher/nr1-core.explorer?overlay=eyJuZXJkbGV0SWQiOiJkYXRhLWV4cGxvcmF0aW9uLnF1ZXJ5LWJ1aWxkZXIiLCJpbml0aWFsQWN0aXZlSW50ZXJmYWNlIjoibnJxbEVkaXRvciIsImluaXRpYWxOcnFsVmFsdWUiOiIiLCJpbml0aWFsUXVlcmllcyI6W3sibnJxbCI6IkZST00gTG9nIFNFTEVDVCBjb3VudCgqKSB3aGVyZSB uZXdyZWxpYy5zb3VyY2U9JyVvdGxwJScgVElNRVNFUklFUyJ9XSwiaW5pdGlhbENoYXJ0U2V0dGluZ3MiOnsiY2hhcnRUeXBlIjoiQ0hBUlRfTElORSIsImxpbWl0Ijo3NTQyLCJsaW5rZWRFbnRpdHlHdWlkIjpudWxsLCJsaW5rZWREYXNoYm9hcmRJZCI6bnVsbCwieVNjYWxlIjp7InN0YXRpYyI6ZmFsc2UsImRvbWFpbiI6W251bGwsbnVsbF19LCJ5WmVybyI6dHJ1ZX19Cg==). * Consulte [Interface OpenTelemetry APM ](/docs/OpenTelemetry/get-started/APM-monitoramento/OpenTelemetry-APM-interface) para obter mais informações. Caso não encontre sua entidade e não veja seus dados com NRQL, consulte [OTLP resolução de problemas](/docs/OpenTelemetry/práticas recomendadas/OpenTelemetry-otlp-resolução de problemas). Você pode encontrar os dados coletados pelo agente eBPF na interface do usuário Opentelementry do New Relic. */
Atualize o agente eBPF
Para atualizar o agente eBPF em um cluster do Kubernetes:
Para uma atualização padrão: Use o seguinte comando Helm para atualizar para a versão mais recente:
Substitua <key> pela sua chave de licença New Relic e <cluster-name> pelo nome do seu cluster.
Parâmetro de configuração
O arquivo values.yaml contém as seguintes seções de configuração:
Esses parâmetros controlam a identidade do núcleo e o destino dos dados para o agente eBPF.
Parâmetro
Descrição
Tipo de dados
Exemplo
cluster
Especifica o nome do seu cluster do Kubernetes. Este campo é obrigatório.
String
"production-cluster"
licenseKey
Especifica sua chave de licença do New Relic. Obrigatório se
customSecretName
não for usado.
String
"8356...FFFFNRAL"
nrStaging
Se
true
, envia dados para o ambiente de preparação do New Relic.
Boolean
true
customSecretName
Especifica o nome de um segredo do Kubernetes que contém sua chave de licença. Use isso para evitar fornecer a chave diretamente.
String
"newrelic-license-secret"
customSecretLicenseKey
Especifica a chave dentro do segredo onde o valor da chave de licença é armazenado. Usado com
customSecretName
.
String
"license"
region
Especifica a região da sua conta New Relic (
US
ou
EU
). Obrigatório ao usar
customSecretName
.
String
"US"
logLevel
Define o nível de detalhamento do logging para o agente. Opções válidas:
OFF
,
FATAL
,
ERROR
,
WARNING
,
INFO
,
DEBUG
.
String
"INFO"
logFilePath
Especifica um caminho de arquivo dentro do contêiner do agente para saída de log. Se o caminho for inválido, os logs serão direcionados para stdout.
String
"/var/log/nr-ebpf-agent.log"
downloadedPackagedHeadersPath
Define o caminho absoluto do diretório completo onde os cabeçalhos Linux necessários são baixados manualmente e colocados para uso pelo agente eBPF. Isso é útil em ambientes restritos onde o agente não consegue baixar os cabeçalhos Linux necessários. Os cabeçalhos necessários são identificados pelo agente com base na versão do kernel. O caminho absoluto no caso de K8s também deve ser prefixado com /host quando necessário. Use somente após recomendação de suporte do NR.
String
"/path/to/downloaded/headers/dir"
distroKernelHeadersPath
Define o caminho absoluto do diretório completo onde os cabeçalhos do Linux estão presentes para o agente eBPF usar. Isso é útil quando os cabeçalhos Linux necessários não puderam ser instalados ou o caminho não pôde ser determinado. O caminho absoluto no caso de K8s também deve ser prefixado com /host quando necessário. Use somente após recomendação de suporte do NR.
String
"/host/usr/src/linux-headers-6.8.0-pl"
tableStoreDataLimitMB
Define o limite de memória em Megabytes (MiB) para o armazenamento de dados interno do agente. Este é o controle principal para uso de RAM.
String
"250"
apmDataReporting
Ative o relatório de dados APM . Quando habilitado, o agente coleta e reporta dados de monitoramento de desempenho de aplicativos (APM).
Boolean
true
networkMetricsReporting
Habilite o relatório de métricas de rede. Quando habilitado, o agente coleta e relata métricas de rede, incluindo estatísticas TCP. Este campo é renomeado de
tcpStatsReporting
. O nome antigo está obsoleto, mas continua sendo compatível com versões anteriores.
Boolean
true
Esta seção configura filtros para descartar todos os tipos de métricas de rede e dados APM com base na configuração fornecida.
Parâmetro
Descrição
Tipo de dados
Exemplo
allDataFilters.dropNewRelicBundle
Remova dados dos serviços newrelic
namespace
e
newrelic-bundle
. Este campo foi renomeado de
dropDataNewRelic
. O nome antigo está obsoleto, mas continua sendo compatível para compatibilidade com versões anteriores.
Boolean
true
allDataFilters.dropNamespaces
Lista de namespaces do Kubernetes para os quais todos os dados devem ser removidos pelo agente. Este campo foi renomeado de
dropDataForNamespaces
. O nome antigo está obsoleto, mas continua sendo compatível para compatibilidade com versões anteriores.
List
["kube-system"]
allDataFilters.dropServiceNameRegex
Defina uma expressão regular para corresponder aos nomes dos serviços k8s a serem removidos. Por exemplo,
"kube-dns|otel-collector|\\bblah\\b"
Este campo foi renomeado de
dropDataServiceNameRegex
. O nome antigo está obsoleto, mas continua sendo compatível para compatibilidade com versões anteriores.
String
""
allDataFilters.keepServiceNameRegex
Esta configuração atua como um bypass para a configuração
dropServiceNameRegex
. Os nomes dos serviços que corresponderem a esta expressão regular não terão seus dados removidos pelo
dropServiceNameRegex
. Este campo foi renomeado de
allowServiceNameRegex
. O nome antigo está obsoleto, mas continua sendo compatível para compatibilidade com versões anteriores.
String
""
allDataFilters.dropApmAgentEnabledEntity
Descarte todos os dados de aplicativos ou entidades que possuem agentes NewRelic ou OTEL APM em execução.
Boolean
false
Configure filtros para descartar dados ebpf APM com base na configuração fornecida
Parâmetro
Descrição
Tipo de dados
Exemplo
apmDataFilters.dropEapmForApmEnabledEntity
Descartar dados eBPF APM para aplicativos/entidades que possuem agentes NewRelic APM/OTel em execução.
Boolean
true
apmDataFilters.dropPodLabels
Rótulos de pod para correspondência para filtragem de dados APM. Mapa vazio significa que não há filtragem baseada em rótulos. Por exemplo: dropPodLabels:
{ "app": "frontend", "env": "production" }
String
{}
apmDataFilters.dropEntityName
Lista de nomes de entidades para remover dados do eBPF APM
List
[]
apmDataFilters.keepEntityName
Lista de nomes de entidades para sempre manter os dados APM. Por padrão, todas as entidades são mantidas/habilitadas. Esta configuração ignora o filtro
dropEntityName
.
List
[]
Configure filtros para descartar/manter dados de métricas de rede com base na configuração fornecida
Parâmetro
Descrição
Tipo de dados
Exemplo
networkMetricsDataFilter.dropPodLabels
Rótulos de pod para correspondência para filtragem de dados de métricas de rede. Mapa vazio significa nenhuma filtragem baseada em rótulo. Por exemplo: dropPodLabels:
{ "app": "frontend", "env": "production" }
String
{}
networkMetricsDataFilter.dropEntityName
Lista de nomes de entidades para descartar dados de métricas de rede.
List
[]
networkMetricsDataFilter.keepEntityName
Lista de nomes de entidades para sempre manter os dados de métricas de rede. Por padrão, todas as entidades são mantidas/habilitadas. Esta configuração ignora o filtro
dropEntityName
.
List
[]
Esta seção permite que você habilite o monitoramento para protocolos de rede específicos e configure como os dados trace (spans) são coletados. Você pode habilitar ou desabilitar o monitoramento para protocolos como HTTP, MySQL e outros, e definir parâmetros para coleta de span com base em latência ou taxa de erros. Os seguintes protocolos são suportados:
HTTP
MySQL
PostgreSQL
MongoDB
Apache Cassandra
Redis
DynamoDB
MSSQL
Kafka
AMQP
DNS
Parâmetro
Descrição
Tipo de dados
Exemplo
protocols.global.max_unlinked_spans
Controla o número máximo de spans não vinculados relatados por protocolo. Defina como 0 para desativar o limite
String
"100"
protocols.<protocol-name>.enabled
Se
true
, habilita o monitoramento para o protocolo especificado, por exemplo,
http
,
mysql
e quaisquer outros.
Boolean
true
protocols.<protocol-name>.spans.enabled
Se
true
, exporta intervalos trace para o protocolo habilitado.
Boolean
true
protocols.<protocol-name>.spans.samplingLatency
Define o limite de amostragem baseado em latência para exportação de intervalos. Opções válidas:
p1
,
p10
,
p50
,
p90
,
p99
.
String
"p50"
protocols.http.spans.samplingErrorRate
Somente para HTTP. As exportações abrangem qualquer rota onde a taxa de erros excede a porcentagem especificada (1-100).
String
"5"
Essas seções controlam as configurações de implantação dos principais componentes da solução. Um asterisco (*) indica o nome do componente.
Parâmetro
Descrição
Tipo de dados
Exemplo
*.image.repository
Especifica o repositório de imagens do contêiner para o componente.
String
"docker.io/newrelic/newrelic-ebpf-agent"
*.image.pullPolicy
Define a política de pull para a imagem do contêiner.
String
"IfNotPresent"
*.image.tag
Especifica a tag de versão da imagem do contêiner a ser implantada.
String
"agent-0.2.4"
*.resources.limits.memory
Define a memória máxima que o contêiner pode usar.
String
"2Gi"
*.resources.limits.cpu
Define a CPU máxima que o contêiner pode usar.
String
"1"
*.resources.requests.memory
Define a memória mínima solicitada para o contêiner na inicialização.
String
"250Mi"
*.resources.requests.cpu
Define a CPU mínima solicitada para o contêiner na inicialização.
String
"100m"
*.tolerations
Define tolerâncias de pod para permitir o agendamento em nós com contaminações específicas.
Objects
[{"key": "special", "operator": "Exists"}]
*.affinity
Define regras de afinidade e antiafinidade de pod para agendamento.
Object
{}
*.podAnnotations
Especifica anotações personalizadas para adicionar ao pod do componente.
Object
{"iam.amazonaws.com/role": "my-role"}
Esses parâmetros se aplicam a todos os pods implantados pelo gráfico Helm, a menos que sejam substituídos por uma configuração específica do componente.
Parâmetro
Descrição
Tipo de dados
Exemplo
podLabels
Especifica rótulos adicionais a serem aplicados a todos os pods implantados pelo gráfico.
Object
{"team": "observability"}
priorityClassName
Especifica o
PriorityClass
para todos os pods.
String
"high-priority"
nodeSelector
Restringe o pod a ser executado somente em nós com rótulos correspondentes.
Object
{"disktype": "ssd"}
Desinstale o agente eBPF.
Para desinstalar o agente eBPF do seu cluster Kubernetes, execute o seguinte comando:
bash
$
helm uninstall nr-ebpf-agent -n newrelic
Dica
Este comando removerá todos os componentes do agente eBPF do seu cluster. O namespace permanecerá a menos que você o exclua explicitamente.