• 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

register_data_source (API do agente Python)

Sintaxe

newrelic.agent.register_data_source(source, application=None, name=None, settings=None, **properties)

Cadastra uma fonte de dados para geração de dados métricos personalizados.

Descrição

Esta chamada registra uma fonte de dados a ser pesquisada na conclusão de cada ciclo de colheita para gerar dados personalizados de métrica de fração de tempo. Para mais informações sobre por que e como usar fontes de dados para métrica personalizada, consulte fontes de dados métrica personalizadas.

Dica

Na maioria dos casos, você não precisará usar nenhum argumento opcional, exceto name.

As métricas retornadas por uma fonte de dados podem ser uma tupla (name, value) simples onde o valor é numérico ou float, ou o valor pode ser um dicionário que corresponde a uma amostra de dados já agregada para uma métrica específica.

Ao retornar um dicionário como valor da métrica, os campos que podem ser fornecidos são:

  • count
  • total
  • min
  • max
  • sum_of_squares

Para mais informações sobre esses campos e algumas dicas gerais de uso, veja Pré-métrica agregada.

Dica

Você também pode obter o mesmo resultado usando a configuração do agente, que não exige alteração do código. Para adicionar a fonte de dados dessa forma, adicione uma seção no arquivo de configuração com o prefixo data-source:, seguido por um valor exclusivo para distinguir a seção de outra fonte de dados se mais de uma for especificada. Aqui está um exemplo:

[data-source:memory-usage]enabled = true
function = samplers:memory_metrics
# application = ...
# name = ...
[data-source:cpu-usage]enabled = true
function = samplers:CPUMetricsDataSource
# application = ...
# name = ...

Se a fonte de dados fosse especificada por uma função, o nome seria module:function. Se fosse uma classe, seria: module:class. O módulo deve poder ser encontrado usando o caminho de pesquisa do módulo Python.

Assim como acontece com register_data_source, o aplicativo para o qual relatar dados e o nome são opcionais.

Parâmetro

Parâmetro

Descrição

source

função ou classe

Obrigatório. A fonte de dados, que é uma função ou classe que teve o decorador data_source_generator ou data_source_factory atribuído.

application

objeto de aplicativo

Opcional. O objeto de aplicativo correspondente à conta do monitor New Relic para a qual relatar dados. Se definido como o padrão None, a fonte de dados será pesquisada no final de cada ciclo de coleta para cada aplicativo instrumentado. Alternativamente, quando um objeto de aplicação é fornecido, a fonte de dados será pesquisada apenas para gerar métricas para aquela aplicação específica.

Nos casos em que você precisa de uma fonte de dados para reter dados distintos para cada aplicativo de relatório, você pode usar um padrão de fábrica para criar uma instância separada da fonte de dados para cada aplicativo.

name

corda

Opcional. O nome da fonte de dados. Isso é usado apenas para fins de registro e será padronizado com o nome fornecido pela própria fonte de dados.

settings

corda

Opcional. As configurações a serem passadas para uma fábrica de origem de dados.

properties

corda

Opcional. Quaisquer propriedades adicionais a serem passadas para a fábrica de fontes de dados.

Valores de retorno

Nenhum.

Exemplos

Registrando uma fonte de dados

Aqui está um exemplo de código de aplicativo que gera dados métricos personalizados:

@newrelic.agent.data_source_generator(name='External')
def services():
# code goes here
  pass
if __name__ == '__main__':
application = nr.configure_newrelic()
newrelic.agent.register_data_source(services, application)
while True:
pass

Uso de memória da fonte de dados

import psutil
import os
@newrelic.agent.data_source_generator(name='Memory Usage')
def memory_metrics():
pid = os.getpid()
p = psutil.Process(os.getpid())
m = p.get_memory_info()
yield ('Custom/Memory/Physical', float(m.rss) / (1024 * 1024))
yield ('Custom/Memory/Virtual', float(m.vms) / (1024 * 1024))
newrelic.agent.register_data_source(memory_metrics)
Copyright © 2024 New Relic Inc.

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