J'ai installé Graphite via la marionnette ( https://forge.puppetlabs.com/dwerder/graphite ) avec nginx et postgressql. Lorsque je l'envoie des données informatiques manuellement, cela crée la métrique, mais tous ses points de données sont "Aucun" (A.K.A. NULL). Cela se produit aussi si j'exécute l'exemple-Client.py expédié avec du graphite.
echo "jakub.test 42 $(date +%s)" | nc 0.0.0.0 2003 # Carbon listens at 2003
# A minute or so later:
$ whisper-fetch.py --pretty /opt/graphite/storage/whisper/jakub/test.wsp | head -n1
Sun May 4 12:19:00 2014 None
$ whisper-fetch.py --pretty /opt/graphite/storage/whisper/jakub/test.wsp | tail -n1
Mon May 5 12:09:00 2014 None
$ whisper-fetch.py --pretty /opt/graphite/storage/whisper/jakub/test.wsp | grep -v None | wc -l
0
Et:
$ python /opt/graphite/examples/example-client.py
# Wait until it sends two batches of data ...
$ whisper-fetch.py /opt/graphite/storage/whisper/system/loadavg_15min.wsp | grep -v None | wc -l
0
Ceci est, selon NGREP, les données qui arrivent au port [à partir d'une tentative ultérieure] (ligne 3):
####
T 127.0.0.1:34696 -> 127.0.0.1:2003 [AP]
jakub.test 45 1399362193.
####^Cexit
23 received, 0 dropped
C'est la partie pertinente de /opt/graphite/conf/storage-schemas.conf
:
[default]
pattern = .*
retentions = 1s:30m,1m:1d,5m:2y
Une idée de ce qui ne va pas? Les propres métriques et données du carbone sont affichées dans l'interface utilisateur. Merci!
Environnement: Ubuntu 13.10 Saucy, Graphite 0.9.12 (via PIP).
PS: J'ai écrit sur mes tentatives de dépannage ici - Graphite montre des métriques mais aucune donnée - Dépannage
[~ # ~] Mise à jour [~ # ~] :
xFilesFactor = 0.1
(au lieu de 0,5) ou définir la précision la plus basse à 1 m au lieu de <nombre compris entre 1 et 49> s. - Voir les commentaires ci-dessous la réponse acceptée ou le graphite répond qustion. selon les docs : "xFilesFactor
_ doit être un numéro de point flottant compris entre 0 et 1, et spécifie quelle fraction des emplacements du niveau de retenue précédent doit avoir des valeurs non nulles Afin de regrouper à une valeur non nulle. La valeur par défaut est de 0,5. "Il semble donc que, sans égard à une précision spécifiée de 1s, les données sont agrégées à 1 minute et finissent par étant pas parce que 50% des valeurs dans la période des minutes ne sont pas non pas.[~ # ~ ~] solution [~ # ~]
Alors @jlawrie me mène à la solution. Il s'avère que les données sont en réalité, mais sont agrégées à rien, la raison est double:
=> La solution consiste à modifier la première précision de 1s à 10 et n'oubliez pas de sélectionner une période plus courte lorsque je souhaite voir les données brutes (ou étendre sa rétention à 24h pour le montrer par défaut).
Il existe de nombreuses façons que le graphite perdra des données, c'est pourquoi j'essaie vraiment d'éviter d'utiliser. Permettez-moi de commencer par un simple - essayez de connecter votre application, attendez une seconde (littéralement une seconde), puis de produire les données expressionnées. J'ai trouvé dans de nombreuses circonstances cela résoudra ce problème exact. Une autre chose que vous devriez essayer est de soumettre des données à une fréquence beaucoup plus élevée que la fréquence à laquelle Graphite enregistre les données. J'irai dans cela un peu plus. Une autre erreur fréquente consiste à utiliser l'utilitaire Whisper-Resize.py, qui n'a vraiment pas fonctionné pour moi. Si vos données ne sont pas encore importantes, supprimez simplement les fichiers Whisper et laissez-les être créés avec les nouveaux paramètres de rétention.
Les fichiers de stockage du graphite, les fichiers Whisper, au lieu de stocker les données comme point avec une valeur et une heure (comme vous avez fourni le programme) le stockent en réalité comme ayant une série de machines à sous que la valeur est stockée. Le programme essaie alors de Déterminez quelle fente correspond à une période à l'aide du fichier de données de rétention. Si cela reçoit une donnée qui ne convient pas exactement dans une fente, je pense Que se passe-t-il est qu'il utilise une moyenne, minute ou max selon un autre fichier dans le même répertoire que le fichier de rétention. J'ai trouvé que la meilleure façon de garder cela de tout gâcher était de soumettre des données à une fréquence beaucoup plus élevée que la fréquence où le graphite stockait des données. Honnêtement, il est très compliqué - non seulement existe des périodes de rétention pour le graphite et des algorithmes de moyennant des points de remplissage (je pense), mais ces valeurs sont également appliquées aux fichiers Whisper. Les choses très étranges se produiront lorsque celles-ci ne correspondent pas, alors jusqu'à ce que votre configuration fonctionne, je vous suggérerais de supprimer vos fichiers Whisper à plusieurs reprises et de laisser le graphite les recréer.
Ce programme m'a vraiment frappé comme agissant assez de buggy, donc si vous rencontrez quelque chose comme ça ne présumez pas que c'est votre faute.