Structured logging support for application performance and monitoring data
""" My Application """
import perflog
def main():
<All the usual application code goes here>
if __name__ == '__main__':
perflog.set_and_forget()
main()
There are several parameters for the set_and_forget
method that can be used to change the default behaviour. For example, by default the performance log messages will be written every 60 seconds.
Note: in addition to writing performance data to the log message itself, perflog
also adds extra logrecord fields. This means that if you're using a log formatter that writes out all the fields in some kind of structured format (say, logstash_formatter), you will find that the performance data will also be recorded in those fields and can therefore be accessed in tools like Kibana.
perflog
uses psutil to obtain all the process-related information. Thanks Giampaolo!