MmStats.remove
now removes all files for a PID if you use the TID in the filenames (thanks @bitprophet!)- mmash now prepends
MMSTATS_PATH
to?glob=...
parameters so users can't traverse the filesystem. - Javascript fixes for mmash's graphs (thanks @spiccinini!)
- Handle broken pipes in slurpstats
- cleanstats now cleans mmstats files for alive PIDs that are owned by other users.
- Minor cleanups to tests
cleanstats
now defaults toDEFAULT_GLOB
if no files are passed on the command lineCounterField.inc(n=...)
has been deprecated in favor ofCounterField.incr(amount=...)
- mmash Improvements
- Added
nonzero-avg
andnonzero-min
aggregators to mmash to filter 0s out of aggregated metrics. - Added a
glob
query parameter to/stats/<stats>
to filter which mmstats files are included in the stats - Backward incompatible change: switched
/stats/
to return a JSON Object instead of an array. The array is now the value of thestats
key.
- Added
- Minor documentation and code cleanups
- Per-thread model instances are created automatically - no need to manually create one per thread
- Backward incompatible change to naming templates; they now use str.format
style substitutions:
- New:
{CMD}
- Current process name %PID%
->{PID}
%TID%
->{TID}
- New:
- Added live graphing of numeric metrics thanks to @haard's work at PyCon
- Documentation improvements
- Fix packaging issue
- [API CHANGE] - MovingAverageField's kwarg changed from window_size => size
- Refactored __init__.py into fields, models, and default (and imported public bits into __init__)
- Added TimerField (MovingAverageField + context manager)
- Added docs (don't get too excited, just a start)
- [API CHANGE] - RunningAverage field is now AverageField
- Added MovingAverageField with window_size=100 parameter
- Tests can now be run via "python setup.py test"
- Fixed pollstats
- Updated README slightly
- Added clean module and cleanstats script to clean stale mmstat files
- Added path kwarg to MmStats class to allow easy path overriding
- Added StringField for UTF-8 encoded strings
- Added StaticFloatField & StaticDoubleField
- Added created UNIX timestamp (sys.created) to default MmStats class
- Moved all modules into mmstats package
- Fixed mmash template packaging
- Fixed test mmstat file cleanup
- Refactored reading code into mmstats.reader module
- Use ctypes.get_errno() instead of Linux specific wrapper
- Fix libc loading on OSX
- PyPy support (switched from ctypes._CData.from_buffer to .from_address)
- Multiple calls to MmStats().remove() no longer error (makes testing easier)
- Mistag of 0.3.8
- Allow filename templating with %PID% and %TID% placeholders
- Allow setting filename template via MMSTATS_FILES environment variable
- Improved docs slightly
- Fixed Ctrl-Cing run_flask_example script
- Fixed 64 bit integer fields on 32 bit platforms
- Fixed StaticInt64Field (was actually a uint64 field before)
- Fixed slurpstats debug output (always showed first 40 bytes of file)
- Strip newlines from org.python.version
- Add pollstats utility (similar to dstat/vmstat)
- Cleanup development/testing section of the README
- Slight improvements to basic flask integration example
- Allow setting the value of CounterFields
- Added a running average field
- Made mmash more configurable and added a console entry point
- Updated TODO