Re: Varnish graphs

2010-02-03 Thread Tollef Fog Heen
]] pablort 

| Nah. using 2.0.6

Hmm, indeed.

I just fixed it in trunk, will backport it to 2.0 branch.

-- 
Tollef Fog Heen 
Redpill Linpro -- Changing the game!
t: +47 21 54 41 73
___
varnish-misc mailing list
varnish-misc@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-misc


Re: Varnish graphs

2010-02-01 Thread pablort
Nah. using 2.0.6

# varnishtop -V
varnishtop (varnish-2.0.6)
Copyright (c) 2006-2009 Linpro AS / Verdens Gang AS
# varnishtop -1 -i TxStatus
 23917.00 TxStatus
  2611.00 TxStatus
  1183.00 TxStatus
   751.00 TxStatus
45.00 TxStatus

On Fri, Jan 29, 2010 at 8:16 AM, Tollef Fog Heen
tfh...@redpill-linpro.comwrote:

 ]] pablort

 | The numbers do reflect the TxStatus'es that I see in interactive
 varnishtop,
 | but when I try to run it with -1, it doesn't show which entry corresponds
 to
 | which status. LOL.

 You're running an old version, this was fixed in 2.0.5 so upgrading
 should fix that.

 --
 Tollef Fog Heen
 Redpill Linpro -- Changing the game!
 t: +47 21 54 41 73
 ___
 varnish-misc mailing list
 varnish-misc@projects.linpro.no
 http://projects.linpro.no/mailman/listinfo/varnish-misc

___
varnish-misc mailing list
varnish-misc@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-misc


Re: Varnish graphs

2010-01-29 Thread Tollef Fog Heen
]] pablort 

| The numbers do reflect the TxStatus'es that I see in interactive varnishtop,
| but when I try to run it with -1, it doesn't show which entry corresponds to
| which status. LOL.

You're running an old version, this was fixed in 2.0.5 so upgrading
should fix that.

-- 
Tollef Fog Heen 
Redpill Linpro -- Changing the game!
t: +47 21 54 41 73
___
varnish-misc mailing list
varnish-misc@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-misc


Re: Varnish graphs

2010-01-27 Thread Mark Moseley
On Wed, Jan 27, 2010 at 2:37 PM, pablort pablort+varn...@gmail.com wrote:
 Hello there,

 I've sucessfully created graphics based on varnishstat -1 output using cacti
 and snmp and I'd really like to do the same thing using varnishtop to graph
 TxStatus responses, but it didn't work as I expected.

 $ varnishtop -1 -i TxStatus
  29481.00 TxStatus
   3280.00 TxStatus
   1196.00 TxStatus
    376.00 TxStatus
     23.00 TxStatus
  3.00 TxStatus
  3.00 TxStatus

 The numbers do reflect the TxStatus'es that I see in interactive varnishtop,
 but when I try to run it with -1, it doesn't show which entry corresponds to
 which status. LOL.

 So, is this supposed to be like this or should I file a bug for that ?

 Also, what do you guys use for performance analysis ?


I use varnishstat + collectd with a little python module (which means
collectd 4.9.0 or higher, with the python module included -- I can
post the Perl version that the python module replaced, which will work
in pre-4.9.x). I'm only grabbing a few things and aggregating some
(like all LRU events), but it'd be easy to modify to grab other
things.

If you'd like to take a look, I'll paste the module here (but be
forewarned I'm not python wiz, so this good enough for me). In
collectd.conf, along with the regular config, you'll need:

LoadPlugin python
Globals true
/LoadPlugin

Plugin python
ModulePath /path/to/your/collectd/python/modules
Import varnish.stats
# Optional if different from path in module
# Module varnish.stats
#varnishstat_binary /some/other/path/to/varnishstat
# /Module
/Plugin


Here's varnish/stats.py

import collectd, sys, time, subprocess, os.path
from pprint import pformat

varnishstat_binary = /usr/bin/varnishstat

# Map fields
field_map = {
client_req: count_reqs,
cache_hit: count_hits,
n_wrk_failed: count_workerr,
n_wrk_max: count_workerr,
n_wrk_queue: count_workerr,
n_wrk_overflow: count_workerr,
n_wrk_drop: count_workerr,
n_lru_nuked: count_lru,
n_lru_saved: count_lru,
n_lru_moved: count_lru,
}

fields_to_query = ,.join( field_map.keys() )


def varnish_stats_config ( Cfg ):
global varnishstat_binary
for child in Cfg.children:
if child.key == varnishstat_binary:
collectd.debug( [varnish_stats_config] config arg set 
key %s: %s
% ( child.key, child.values[0] ) )
varnishstat_binary = child.values[0]


def varnish_stats_init ( ):
if not os.path.exists( varnishstat_binary ):
collectd.error( Can't find varnishstat binary at %s, disabling
plugin % ( varnishstat_binary ) )
collectd.unregister_read( varnish_stats_read )


def varnish_stats_read ( Data=None ):
count_lru, count_hits, count_reqs, count_workerr = 0, 0, 0, 0
stats = {}

fh = subprocess.Popen( [ varnishstat_binary, -1, -f,
fields_to_query ], stdout=subprocess.PIPE )
lines = fh.stdout.readlines()
fh.stdout.close()

for line in lines:
field, val, dummy = line.strip().split( None, 2 )

if field_map.has_key( field ):
if stats.has_key( field_map[ field ] ):
stats[ field_map[ field ] ] += int( val )
else:
stats[ field_map[ field ] ] = int( val )

for field in ( stats.keys() ):
if stats.has_key( field ):
collectd.debug( [varnish_stats_read] Dispatch %s: %d 
% ( field,
stats[ field ] ) )
stats_data = collectd.Values( type=operations )
stats_data.plugin = varnish-stats
stats_data.dispatch( values=[ stats[ field ] ], 
type_instance=field )
else:
continue
collectd.error( [varnish_stats_read] Unable to 
dispatch key: %s %
( field ) )



collectd.register_config( varnish_stats_config )
collectd.register_read( varnish_stats_read )
collectd.register_init( varnish_stats_init )
___
varnish-misc mailing list
varnish-misc@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-misc