Sintaxe
newrelic.agent.data_source_generator(name=None, **properties)
Envolve uma fonte de dados geradora de dados métricos.
Descrição
As APIs de origem de dados fornecem uma maneira de gerar métricas usando uma API de estilo pull em vez da API de estilo push implementada por record_custom_metric
. Para mais informações sobre por que e como usar fontes de dados para métrica personalizada, consulte fontes de dados métrica personalizadas.
O decorador data_source_generator
é usado para agrupar uma fonte de dados simples de geração de dados métricos que retorna diretamente um iterável/gerador com a métrica para cada amostra. A função à qual o decorador é aplicado não deve receber argumentos. Isso seria usado onde não há necessidade de reter informações de estado entre chamadas para gerar métricas e onde uma instância da fonte de dados pode ser usada em vários aplicativos.
Parâmetro
Parâmetro | Descrição |
---|---|
corda | Opcional. O nome da fonte de dados. Isso é usado apenas para fins de registro. Se não for fornecido, o padrão é o nome que pode ser chamado derivado da função decorada. |
dicionário | Opcional. Quaisquer propriedades adicionais a serem passadas para a fábrica de fontes de dados. Os campos possíveis para um dicionário são:
|
Valores de retorno
Retorna uma função.
Exemplos
Exemplo de gerador de fonte de dados
Um exemplo de uso de data_source_generator
para agrupar uma função que retorna valores de métrica:
import newrelic.agentimport psutilimport os
@newrelic.agent.data_source_generator(name='Memory_Usage')def memory_metrics(): pid = os.getpid() p = psutil.Process(pid) m = p.memory_info() yield ('Custom/Memory/Physical', float(m.rss) / (1024 * 1024)) yield ('Custom/Memory/Virtual', float(m.vms) / (1024 * 1024))
@newrelic.agent.background_task()def main(): # Example code, business as usual print("Hello, world!")
if __name__ == "__main__": newrelic.agent.initialize(config_file="newrelic.ini") app = newrelic.agent.register_application() newrelic.agent.register_data_source(memory_metrics, app) main()