countMethod(name)          from buildbot.process.metrics import countMethod
          
          @countMethod('foo_called')
          def foo():
              return "foo!"
     Timer(name)Timer objects can be used to make timing events easier. When Timer.stop() is called, a MetricTimeEvent is logged with the elapsed time since timer.start() was called.
               from buildbot.process.metrics import Timer
          
          def foo():
              t = Timer('time_foo')
              t.start()
              try:
                  for i in range(1000):
                      calc(i)
                  return "foo!"
              finally:
                  t.stop()
     Timer objects also provide a pair of decorators, startTimer/stopTimer to decorate other functions.
     
          from buildbot.process.metrics import Timer
          
          t = Timer('time_thing')
          
          @t.startTimer
          def foo():
              return "foo!"
          
          @t.stopTimer
          def bar():
              return "bar!"
          
          foo()
          bar()
     timeMethod(name)Timer is better in this case.
               from buildbot.process.metrics import timeMethod
          
          @timeMethod('time_foo')
          def foo():
              for i in range(1000):
                  calc(i)
              return "foo!"