• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

register_data_source (Python API d'agent)

Syntaxe

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

Enregistre une source de données pour générer des données métriques personnalisées.

Description

Cet appel enregistre une source de données à interroger à la fin de chaque cycle de collecte pour générer des données d'intervalle de temps métrique personnalisées. Pour en savoir plus sur pourquoi et comment utiliser des sources de données pour les métriques personnalisées, consultez sources de données métriques personnalisées.

Conseil

Dans la plupart des cas, vous n'aurez pas besoin d'utiliser d'arguments facultatifs à l'exception de name.

Les métriques renvoyées par une source de données peuvent être un simple uplet (name, value) où la valeur est un nombre ou une virgule flottante, ou la valeur peut être un dictionnaire qui correspond à un échantillon de données déjà agrégé pour une métrique spécifique.

Lors du renvoi d'un dictionnaire comme valeur métrique, les champs qui peuvent être fournis sont :

  • count
  • total
  • min
  • max
  • sum_of_squares

Pour en savoir plus sur ces champs et quelques conseils d'utilisation générale, consultez Pré-métrique agrégée.

Conseil

Vous pouvez également obtenir le même résultat en utilisant la configuration de l'agent, qui ne nécessite pas de modifier votre code. Pour ajouter la source de données de cette manière, ajoutez une section dans le fichier de configuration avec le préfixe data-source:, suivi d'une valeur unique pour distinguer la section de celle d'une autre source de données si plusieurs sont spécifiées. Voici un exemple :

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

Si la source de données était spécifiée par une fonction, le nom serait module:function. S'il s'agit d'une classe, alors ce serait : module:class. Le module doit pouvoir être trouvé à l'aide du chemin de recherche du module Python.

Comme pour register_data_source, l'application à laquelle les données doivent être signalées et le nom sont facultatifs.

Paramètres

paramètres

Description

source

fonction ou classe

Requis. La source de données, qui est une fonction ou une classe à laquelle le décorateur data_source_generator ou data_source_factory a été attribué.

application

objet d'application

Facultatif. L'objet application correspondant au compte de monitoring par New Relic auquel les données sont envoyées. Si la valeur par défaut est None, la source de données sera interrogée à la fin de chaque cycle de collecte pour chaque application instrumentée. Alternativement, lorsqu'un objet d'application est fourni, la source de données sera uniquement interrogée pour générer des métriques pour cette application spécifique.

Dans les cas où vous avez besoin d'une source de données pour conserver des données distinctes pour chaque application de création de rapports, vous pouvez utiliser un modèle d'usine pour créer une instance distincte de la source de données pour chaque application.

name

chaîne

Facultatif. Le nom de la source de données. Ceci est utilisé uniquement à des fins de logging et sera par défaut le nom fourni par la source de données elle-même.

settings

chaîne

Facultatif. Les paramètres à transmettre à une fabrique de sources de données.

properties

chaîne

Facultatif. Toutes les propriétés supplémentaires à transmettre à la fabrique de sources de données.

Valeurs de retour

Aucun.

Exemples

Utilisation de la mémoire à partir de la source de données

import newrelic.agent
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.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()
Droits d'auteur © 2025 New Relic Inc.

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