Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CHI::Stats(3)	      User Contributed Perl Documentation	 CHI::Stats(3)

NAME
       CHI::Stats - Record and report per-namespace cache statistics

VERSION
       version 0.58

SYNOPSIS
	   # Turn on statistics	collection
	   CHI->stats->enable();

	   # Perform cache operations

	   # Flush statistics to logs
	   CHI->stats->flush();

	   ...

	   # Parse logged statistics
	   my $results = CHI->stats->parse_stats_logs($file1, ...);

DESCRIPTION
       CHI can record statistics, such as number of hits, misses and sets, on
       a per-namespace basis and log the results to your Log::Any logger.  You
       can then	parse the logs to get a	combined summary.

       A single	CHI::Stats object is maintained	for each CHI root class, and
       tallies statistics over any number of CHI::Driver objects.

       Statistics are reported when you	call the "flush" method. You can
       choose to do this once at process end, or on a periodic basis.

METHODS
       enable, disable,	enabled
	   Enable, disable, and	query the current enabled status.

	   When	stats are enabled, each	new cache object will collect
	   statistics. Enabling	and disabling does not affect existing cache
	   objects. e.g.

	       my $cache1 = CHI->new(...);
	       CHI->stats->enable();
	       # $cache1 will not collect statistics
	       my $cache2 = CHI->new(...);
	       CHI->stats->disable();
	       # $cache2 will continue to collect statistics

       flush
	   Log all statistics to Log::Any (at Info level in the	CHI::Stats
	   category), then clear statistics from memory. There is one log
	   message for each distinct triplet of	root class, cache label, and
	   namespace. Each log message contains	the string "CHI	stats:"
	   followed by a JSON encoded hash of statistics. e.g.

	       CHI stats: {"absent_misses":1,"label":"File","end_time":1338410398,
		  "get_time_ms":5,"namespace":"Foo","root_class":"CHI",
		  "set_key_size":6,"set_time_ms":23,"set_value_size":20,"sets":1,
		  "start_time":1338409391}

       parse_stats_logs
	   Accepts one or more stats log files as parameters. Parses the logs
	   and returns a listref of stats hashes by root class,	cache label,
	   and namespace. e.g.

	       [
		   {
		       root_class     => 'CHI',
		       label	      => 'File',
		       namespace      => 'Foo',
		       absent_misses  => 100,
		       avg_compute_time_ms => 23,
		       ...
		   },
		   {
		       root_class     => 'CHI',
		       label	      => 'File',
		       namespace      => 'Bar',
		       ...
		   },
	       ]

	   Lines with the same root class, cache label,	and namespace are
	   summed together.  Non-stats lines are ignored. The parser will
	   ignore anything on the line before the "CHI stats:" string, e.g. a
	   timestamp.

	   Each	parameter to this method may be	a filename or a	reference to
	   an open filehandle.

STATISTICS
       The following statistics	are tracked in the logs:

       o   "absent_misses" - Number of gets that failed	due to item not	being
	   in the cache

       o   "compute_time_ms" - Total time spent	computing missed results in
	   compute, in ms (divide by number of computes	to get average).  i.e.
	   the amount of time spent in the code	reference passed as the	third
	   argument to compute().

       o   "computes" -	Number of compute calls

       o   "expired_misses" - Number of	gets that failed due to	item expiring

       o   "get_errors"	- Number of caught runtime errors during gets

       o   "get_time_ms" - Total time spent in get operation, in ms (divide by
	   number of gets to get average)

       o   "hits" - Number of gets that	succeeded

       o   "set_key_size" - Number of bytes in set keys	(divide	by number of
	   sets	to get average)

       o   "set_value_size" - Number of	bytes in set values (divide by number
	   of sets to get average)

       o   "set_time_ms" - Total time spent in set operation, in ms (divide by
	   number of sets to get average)

       o   "sets" - Number of sets

       o   "set_errors"	- Number of caught runtime errors during sets

       The following additional	derived/aggregate statistics are computed by
       parse_stats_logs:

       o   "misses" - "absent_misses" +	"expired_misses"

       o   "gets" - "hits" + "misses"

       o   "avg_compute_time_ms" - "compute_time_ms" / "computes"

       o   "avg_get_time_ms" - "get_time_ms" / "gets"

       o   "avg_set_time_ms" - "set_time_ms" / "sets"

       o   "avg_set_key_size" -	"set_key_size" / "sets"

       o   "avg_set_value_size"	- "set_value_size" / "sets"

       o   "hit_rate" -	"hits" / "gets"

SEE ALSO
       CHI

AUTHOR
       Jonathan	Swartz <swartz@pobox.com>

COPYRIGHT AND LICENSE
       This software is	copyright (c) 2012 by Jonathan Swartz.

       This is free software; you can redistribute it and/or modify it under
       the same	terms as the Perl 5 programming	language system	itself.

perl v5.24.1			  2013-07-21			 CHI::Stats(3)

NAME | VERSION | SYNOPSIS | DESCRIPTION | METHODS | STATISTICS | SEE ALSO | AUTHOR | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=CHI::Stats&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help