2 votes

Alternative léger à R pour RHEL?

Je veux utiliser R pour effectuer une analyse statistique des informations des fichiers journaux, mais j'ai trouvé que même le RPM "limité" de R-core a beaucoup de dépendances qui ne sont pas déjà installées. Je ne veux pas installer autant de packages pour un besoin périphérique.

Existe-t-il des alternatives légères pour une analyse statistique simple sur RHEL 6 ? J'ai un script R qui accepte en entrée un grand ensemble de valeurs - une valeur par ligne - et affiche le min, le max, la moyenne, la médiane, le 95e centile et l'écart-type.

Pour plus de contexte, j'utilise grep et awk pour trouver les requêtes GET pour un chemin particulier dans nos fichiers journaux de serveur web, obtenir les temps de réponse et calculer les métriques mentionnées ci-dessus afin de mesurer l'impact sur les performances des changements apportés à une application web.

Je n'ai pas besoin de capacités de graphique, juste de simples calculs. Y a-t-il quelque chose que j'aurais manqué ?

1 votes

Python? Ruby? Peut-être même awk pourrait vous donner ce que vous voulez.

2voto

Eric Noob Points 531

Voici min, max, total, moyenne et médiane en awk :

BEGIN {
    min="unset"
    max=0
}

{
    valeurs[NR] = $1

    total += $1
    moyenne = total/NR

    if ($1 > max) max = $1
    if (min == "unset" || $1 < $min) min = $1
}

END {
    médiane=valeurs[int(NR/2)]

    print "MIN:", min
    print "MAX:", max
    print "TOTAL:", total
    print "MOYENNE:", moyenne
    print "MEDIANE:", médiane
}

L'écart type et le 95e centile sont laissés en exercice au lecteur.

1voto

aculich Points 3460

Utilisez le package python NumPy que vous devriez pouvoir installer facilement en utilisant yum install numpy ou pip install numpy:

import numpy 
n = numpy.random.rand(100) 
print 'min:', n.min() 
print 'max:', n.max() 
print 'moyenne:', n.mean() 
print 'médiane:', numpy.median(n) 
print '95e:', numpy.percentile(n, 95) 
print 'écart type:', n.std() 

Cela vous évitera de réimplémenter les statistiques de base à partir de zéro. En général, Python avec NumPy et SciPy est une alternative riche en fonctionnalités à R qui a souvent aussi de meilleures performances.

Aussi, plutôt que d'écrire votre propre analyse de fichiers journaux avec grep et awk, vous pouvez utiliser quelque chose comme : pylogsparser qui est "une bibliothèque d'analyseur de journaux dotée d'un ensemble de parseurs prêts à l'emploi (DHCPd, Squid, Apache, ...)".

1voto

Sven Points 95985

Tout langage de programmation/script comme Perl, Python ou Ruby le fera facilement, et bc est également disponible.

1 votes

Ce serait plus utile de fournir un exemple dans l'une ou plusieurs de ces langues.

0 votes

@aculich: Désolé, mais c'est à cela que sert Google (ou Stack Overflow). Le fait que je sache que c'est facile à faire (et bien documenté) ne signifie pas que je le fais tous les jours et que je puisse construire un exemple dans un délai acceptable pour ce type de question. De plus, j'ai pleinement répondu à la question, car un exemple n'a jamais été demandé.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X