New Relic fornece integração e início rápido para muitos serviços e estruturas populares. Se você já estiver usando o New Relic e quiser relatar dados de um serviço para o qual não temos uma integração, você pode criar sua própria integração seguindo estas opções:
- Com , você pode usar nossa ferramenta Flex leve (recomendada) ou construir uma integração completa no host usando nosso SDK de integração.
- Para soluções de monitoramento de telemetria (métrica, trace), utilize nossos SDKs de telemetria.
- Crie um aplicativo New Relic personalizado que use sua própria funcionalidade de interface JavaScript.
O que é o New Relic Flex?
Flex é uma integração completa e independente de aplicativo New Relic que permite coletar eventos e métricas de uma ampla gama de serviços. Ele vem junto com nosso agente de infraestrutura. Você pode instrumentar qualquer aplicativo que exponha métrica por meio de um protocolo padrão (HTTP, arquivo, shell) em um formato padrão (por exemplo, JSON ou texto simples): você cria um arquivo de configuração YAML, inicia o agente de infraestrutura e seus dados são reportados ao New Relic.
Depois de coletar e limpar os dados, você pode consultar os dados do Flex no New Relic, criar gráficos personalizados para eles e usar esses dados no seu painel.
Verifique a compatibilidade e os requisitos
Certifique-se de que seu sistema atende a estes requisitos:
Crie uma conta gratuita se ainda não tiver feito isso. É grátis!
A conta New Relic é compatível com estes sistemas operacionais e plataformas:
- Kubernetes
- Linux
- Mac OS
- Windows
Veja nossos requisitos para o documento de agente de infraestrutura para garantir que seu sistema e qualquer integração no host que você configurar atendam aos requisitos.
O Flex vem junto com nosso agente de infraestrutura versão 1.10.7 ou superior, rodando em Linux, Windows ou Kubernetes.
Veja como identificar versões desatualizadas do agente no documento da interface do usuário para verificar sua versão ou atualize o documento do agente de infraestrutura se precisar atualizá-lo.
instalação
Siga estas etapas para instalar o New Relic Flex:
Instalar o agente de infraestrutura
A partir da versão 1.10.7 do agente de infraestrutura New Relic , O Flex vem junto com o agente. Para instalar o agente de infraestrutura, consulte:
Instale o agente de infraestrutura para Windows
Dica
O agente deve ser executado no modo root/administrador . Você pode iniciar, parar e reiniciar o agente de infraestrutura a partir da linha de comando.
Verifique se o Flex está instalado e funcionando
Siga esses passos:
Navegue até a pasta integração do agente de infraestrutura:
- Para Linux:
/etc/newrelic-infra/integrations.d
- Para Windows:
C:\Program Files\New Relic\newrelic-infra\integrations.d\
- Para Linux:
Crie o arquivo de configuração de integração. Por exemplo,
integrations.yml
, se não existir.Adicione a configuração Flex ao arquivo:
integrations:- name: nri-flexconfig:name: just-testingSe você já tiver uma seção
integrations
no arquivo, adicionenri-flex
a ela.Após alguns minutos, vá para one.newrelic.com > All capabilities > Query your data e execute esta consulta:
FROM flexStatusSampleSELECT *LIMIT 1A consulta deve fornecer uma tabela semelhante a esta:
Vá para one.newrelic.com > All capabilities > Query your data, adicione sua consulta no criador de consulta e clique em Run.
Dica
Se você não obtiver nada, certifique-se de que seu arquivo de configuração YAML esteja bem recuado e que os níveis de recuo não usem tabulações em vez de espaços. Você pode usar um validador YAML, como o YAML Lint
Sua primeira integração Flex
Este exemplo mostra como coletar métricas de disco de sistemas de arquivos não suportados nativamente pelo New Relic usando o comando df
no Linux.
O objetivo é processar a saída do comando df
, mostrando o sistema de arquivos e blocos de 1 byte, excluindo sistemas de arquivos já suportados pelo agente. Se sistemas de arquivos não suportados não estiverem montados, remova os argumentos -x.
$ df -PT -B1 -x tmpfs -x xfs -x vxfs -x btrfs -x ext -x ext2 -x ext3 -x ext4Filesystem Type 1-blocks Used Available Capacity Mounted ondevtmpfs devtmpfs 246296576 0 246296576 0% /devgo_src vboxsf 499963170816 361339486208 138623684608 73% /go/src
Você precisa converter a saída de texto tabular acima em um conjunto de amostras JSON equivalentes com o seguinte formato. Observe que o agente decora cada amostra com campos extras:
{ "event": { "event_type": "FileSystemSample", "fs": "go_src", "fsType": "vboxsf", "capacityBytes": 499963170816, "usedBytes": 361345331200, "availableBytes": 138617839616, "usedPerc": 73, "mountedOn": "/go/src" }}
Primeiro, você precisa informar ao Flex como executar a transformação do texto da tabela acima em JSON, especificando o seguinte:
- Nome da métrica:
FileSystem
- Qual comando executar:
df -PT -B1 ...
- Como dividir a tabela de saída de
df
- Como atribuir valores a nomes métricos fornecidos
Isso é feito colocando o conteúdo abaixo no arquivo de configuração YAML:
integrations: - name: nri-flex config: name: linuxFileSystemIntegration apis: - name: FileSystem commands: - run: 'df -PT -B1 -x tmpfs -x xfs -x vxfs -x btrfs -x ext -x ext2 -x ext3 -x ext4' split: horizontal split_by: \s+ row_start: 1 set_header: [fs,fsType,capacityBytes,usedBytes,availableBytes,usedPerc,mountedOn] perc_to_decimal: true
apis
é uma matriz de entradas para cada amostra. Cada entrada define um nome para a amostra, bem como os comandos e procedimentos para obter e processar a amostra. A primeira entrada no exemplo é chamadaFileSystem
, que é usada para nomear o eventoFileSystemSample
.commands
especifica como obter as informações do aplicativo CLI:run: 'df -PT -B1...
especifica o comando a ser executado.split: horizontal
afirma que cada linha de saída pode retornar uma métrica.split_by
explica como dividir cada linha em campos diferentes. Neste caso, usamos a expressão regular\s+
, que informa ao Flex que qualquer sequência de um ou mais espaços em branco é um separador.row_start
especifica que os dados começam logo após a primeira linha (que é 0).set_header
especifica, em ordem, um nome correspondente para cada valor da matriz mencionada.perc_to_decimal: true
indica converter qualquer sequência de porcentagem em um valor decimal, removendo o símbolo%
à direita.
Depois de criar a configuração do Flex, o agente de infraestrutura detecta automaticamente a nova configuração e começa a coletar dados. Para verificar se sua nova integração está funcionando, execute esta consulta:
FROM FileSystemSample SELECT mountedOn, fs, usedBytes, capacityBytes, usedBytes
A consulta deve fornecer uma tabela semelhante a esta:
Vá para one.newrelic.com > All capabilities > Query your data, adicione sua consulta no criador de consulta e clique em Run.
Como adicionar mais integração Flex
Você pode adicionar mais integração Flex adicionando a configuração no arquivo ìntegrations.d
. A configuração autônoma do Flex começa com o nome da integração e você pode testá-la invocando o Flex a partir da linha de comando:
$sudo /var/db/newrelic-infra/newrelic-integrations/bin/nri-flex --verbose --pretty --config_file ./myconfig.yml
Por exemplo, se você quiser adicionar esta integração:
name: linuxOpenFDapis: - name: linuxOpenFD commands: - run: cat /proc/sys/fs/file-nr | awk '{print $1-$2,$3}' split: horizontal set_header: [openFD,maxFD] regex_match: true split_by: (\d+)\s+(.*)
Você deve abrir o arquivo ìntegrations.d
e adicioná-lo assim:
integrations: - name: nri-flex config: name: linuxFileSystemIntegration apis: - name: FileSystem commands: - run: 'df -PT -B1 -x tmpfs -x xfs -x vxfs -x btrfs -x ext -x ext2 -x ext3 -x ext4' split: horizontal split_by: \s+ row_start: 1 set_header: [fs,fsType,capacityBytes,usedBytes,availableBytes,usedPerc,mountedOn] perc_to_decimal: true - name: linuxOpenFD commands: - run: cat /proc/sys/fs/file-nr | awk '{print $1-$2,$3}' split: horizontal set_header: [openFD,maxFD] regex_match: true split_by: (\d+)\s+(.*)
Se você precisar adicionar várias configurações Flex ao arquivo ìntegrations.d
, siga este padrão:
integrations: - name: nri-flex config: name: flexName_1 # Flex config goes here - name: nri-flex config: name: flexName_2 # Flex config goes here - name: nri-flex config: name: flexName_3 # Flex config goes here
Para minimizar problemas de recuo, você pode vincular a arquivos de configuração Flex independentes usando a diretiva config_template_path
:
integrations: - name: nri-flex config_template_path: /path/to/flex/integration.yml
Você pode encontrar muitos exemplos de especialização personalizada no repositório Flex.
Flex e Kubernetes
Há 3 imagens de contêiner que você pode usar, dependendo de como deseja configurar o Flex no Kubernetes:
Para executar o Flex apenas para monitor serviços em execução no Kubernetes, use a imagem do contêiner
newrelic/infrastructure
. Esta imagem contém apenas o agente de infraestrutura, e a integração docker e Flex. Com esta opção, você não poderá realizar a descoberta de serviços ou usar outras integrações New Relic .Para executar o Flex junto com outras integrações New Relic , use a imagem do contêiner
newrelic/infrastructure-bundle
. Isso adiciona todas as outras integrações New Relic .Se você também quiser monitor seu cluster do Kubernetes, use a imagem de contêiner
newrelic/infrastructure-k8s
. Esta imagem adiciona toda a integração, incluindo a integração Kubernetes .
Importante
Se você estiver executando serviços no Kubernetes, recomendamos usar as imagens de contêiner oficiais do New Relic. Consulte Introdução à integração do Kubernetes para obter mais informações.
Configurar o Flex no Kubernetes
Após instalar a integração do Kubernetes, você terá o agente de infraestrutura em execução no seu cluster, bem como estes 2 configMap
:
nri-default-integration-cfg
: Este é umconfigMap
usado para habilitar a integração do New Relic Kubernetes. Você pode removê-lo se não quiser usar esta integração. Se você instalou o Kubernetes com o comando Helm, o valorintegrations_config
precisa ser preenchido. Veja o repositório de gráficos Helm do New Relic para mais informações.nri-integration-cfg-example
: Este é umconfigMap
usado para habilitar a integração do Flex e de outros New Relic.
Para habilitar o Flex, crie uma seção de dados em configMap
e adicione a configuração de integração do agente de infraestrutura nesta nova seção:
apiVersion: v1kind: ConfigMapmetadata: name: nri-integration-cfg-example namespace: defaultdata: nri-flex.yml: | integrations: - name: nri-flex config: name: example apis: - event_type: ExampleSample url: https://my-host:8443/admin/metrics.json
Configuração de amostra
Procurando por amostras diferentes? Aqui estão alguns exemplos de configuração para ajudar você a começar com várias fontes de dados:
Banco de dados:
API de terceiros:
Utilitários de linha de comando:
Resolução de problemas
Se você encontrar algum problema com a configuração do Flex, poderá seguir estas etapas básicas de resolução de problemas:
Teste a configuração sem o agente de infraestrutura: você pode testar manualmente um arquivo de configuração para garantir que a saída atenda às suas expectativas executando um comando como este. Lembre-se de substituir
<FILE_NAME>
pelo nome do seu arquivo de configuração:bash$# Linux default path: /opt/newrelic-infra/newrelic-integrations/bin/$./nri-flex -verbose -pretty -config_path /etc/newrelic-infra/integrations.d/<FILE_NAME>$$# Windows default path: C:\Program Files\New Relic\newrelic-infra\newrelic-integrations$.\nri-flex.exe -verbose -pretty -config_path "C:\Program Files\New Relic\newrelic-infra\integrations.d\<FILE_NAME>"Isso fornecerá uma saída mostrando o log de depuração e a carga JSON que será integrada ao agente de infraestrutura. Certifique-se de que o Flex esteja obtendo e formatando sua telemetria conforme esperado antes de continuar com o restante das etapas de resolução de problemas. Saiba mais sobre como testar a configuração do Flex no repositório GitHub.
Teste com o agente de infraestrutura no modo
dry-run
: use o sinalizadordry-run
no agente de infraestrutura para testar sua configuração do Flex. Verifique se a saída contém a telemetria que você espera relatar ao New Relic.Depure a integração com o agente de infraestrutura: certifique-se de que o agente esteja reportando os dados de telemetria conforme esperado, habilitando o log de depuração no agente de infraestrutura.