10def PerfMonMTSvcCfg(flags, **kwargs):
11 """ Configuring PerfMonMTSvc """
12
13
14 log = logging.getLogger("PerfMonMTSvcCfg")
15 log.info("Configuring PerfMonMTSvc with flags:")
16 log.info(" >> doFastMonMT {}".format(flags.PerfMon.doFastMonMT))
17 log.info(" >> doFullMonMT {}".format(flags.PerfMon.doFullMonMT))
18
19
20 if not flags.PerfMon.doFastMonMT and not flags.PerfMon.doFullMonMT:
21 log.info("Nothing to be done...")
22 return ComponentAccumulator()
23
24
25 PerfMonMTSvc = CompFactory.PerfMonMTSvc
26
27
28 import os,psutil
29 kwargs.setdefault("wallTimeOffset",
30 psutil.Process(os.getpid()).create_time() * 1000)
31 kwargs.setdefault("numberOfThreads",
32 max(1,flags.Concurrency.NumThreads))
33 kwargs.setdefault("numberOfSlots",
34 max(1,flags.Concurrency.NumConcurrentEvents))
35 kwargs.setdefault("doComponentLevelMonitoring",
36 flags.PerfMon.doFullMonMT)
37 kwargs.setdefault("jsonFileName", flags.PerfMon.OutputJSON)
38
39
40 acc = ComponentAccumulator()
42
43
44 acc.addService(CompFactory.AuditorSvc(), create=True)
45 acc.setAppProperty("AuditAlgorithms", True)
46 acc.setAppProperty("AuditTools", True)
47 acc.setAppProperty("AuditServices", True)
48
49
50 return acc
51
52