]> git.ozlabs.org Git - hiprofile/blob - scripts/hiprofile
Add --opreport and --opannotate options
[hiprofile] / scripts / hiprofile
1 #!/usr/bin/env python
2
3 import sys, os
4 from optparse import OptionParser
5 from django.conf import settings
6
7 from hiprofile import Report, Connection, write_report
8
9 resourcedir = os.path.join(os.path.dirname(__file__),
10                            '..', 'share', 'hiprofile')
11
12 default_thresholds = {
13     'binary':   '5%',
14     'symbol':   '20',
15 }
16
17 default_outdir = 'output'
18
19 def main(args):
20     parser = OptionParser()
21     parser.add_option('-r', '--remote-host', dest = 'host',
22             help = 'grab oprofile data from HOST', metavar = 'HOST')
23     parser.add_option('-o', '--output-dir', dest = 'outdir',
24             help = 'create output in directory DIR', metavar = 'DIR',
25             default = default_outdir)
26     parser.add_option('--opreport', dest = 'opreport', default = 'opreport',
27             help = 'use opreport binary at PATH', metavar = 'PATH')
28     parser.add_option('--opannotate', dest = 'opannotate',
29             default = 'opannotate',
30             help = 'use opannotate binary at PATH', metavar = 'PATH')
31
32     (options, args) = parser.parse_args()
33
34     # set up django template engine
35     settings.configure(TEMPLATE_LOADERS =
36                 ('django.template.loaders.filesystem.load_template_source',),
37             TEMPLATE_DIRS = (resourcedir,))
38
39     conn = Connection(options.host)
40
41     report = Report.extract(conn, options)
42
43     report.threshold(default_thresholds)
44
45     report.annotate(conn, options)
46
47     write_report(report, resourcedir, options.outdir)
48
49 if __name__ == '__main__':
50     sys.exit(main(sys.argv))