def test1(): import time cat.init("kd.test") a = cat.Transaction('c', 'b') time.sleep(2) a.complete() b = cat.Transaction('c', 'c') time.sleep(2) b.complete()
else: raise Exception("something wrong!") @cat.transaction("rpc", "server") def serve(method, args): cat.log_event("hook", "receive") with cat.Transaction("serve", method) as t: try: t.add_data(json.dumps(args)) cat.log_event("hook", "before1") cat.log_event("hook", "before2") cat.log_event("hook", "before3") res = func(method, args) finally: cat.metric("rpc-count").count() cat.metric("rpc-duration").duration(100) cat.log_event("hook", "after") return res if __name__ == '__main__': cat.init("pycat") while True: try: serve('ping', ["a", {"b": 1}]) except Exception as e: pass time.sleep(0.1) time.sleep(1)
#!/usr/bin/env python # -*- coding: utf-8 -*- # Author: stdrickforce (Tengyuan Fan) # Email: <*****@*****.**> <*****@*****.**> import cat import time def test2(): ''' Use with context manager ''' with cat.Transaction("Transaction", "test2") as trans: trans.set_status(cat.CAT_ERROR) cat.log_event("h", "v") trans.add_data("a=1") trans.add_data("b=2") if __name__ == '__main__': cat.switch(cat.MODE_COROUTINE) cat.init("pycat") for i in range(1000): print(i) test2() time.sleep(1)
import cat import time #cat.init("cat.mysql") cat.init("kd.hbase") t = cat.Transaction("Trans", "t3") #cat.log_event("Event", "E1") time.sleep(0.3) t.complete()
try: do_something() except Exception: t.set_status(cat.CAT_ERROR) t.add_data("context-manager") t.add_data("foo", "bar") def test3(): try: trans = cat.Transaction("Trans", "T3") trans.add_data("content") trans.add_data("key", "val") trans.set_status("error") trans.set_duration(500) trans.set_duration_start(time.time() * 1000 - 30 * 1000) trans.set_timestamp(time.time() * 1000 - 30 * 1000) finally: # NOTE don't forget to complete the transaction! trans.complete() if __name__ == '__main__': cat.init("pycat", debug=True, logview=False) for i in range(100): test1() test2() test3() time.sleep(0.01) time.sleep(1)
try: do_something() except Exception: t.set_status(cat.CAT_ERROR) t.add_data("context-manager") t.add_data("foo", "bar") def test3(): try: trans = cat.Transaction("Trans", "T3") trans.add_data("content") trans.add_data("key", "val") trans.set_status("error") trans.set_duration(500) trans.set_duration_start(time.time() * 1000 - 30 * 1000) trans.set_timestamp(time.time() * 1000 - 30 * 1000) finally: # NOTE don't forget to complete the transaction! trans.complete() if __name__ == '__main__': cat.init("pycat", debug=True) for i in range(100): test1() test2() test3() time.sleep(0.01) time.sleep(1)
else: raise Exception("something wrong!") @cat.transaction("rpc", "server") def serve(method, args): cat.log_event("hook", "receive") with cat.Transaction("serve", method) as t: try: t.add_data(json.dumps(args)) cat.log_event("hook", "before1") cat.log_event("hook", "before2") cat.log_event("hook", "before3") res = func(method, args) finally: cat.metric("rpc-count").count() cat.metric("rpc-duration").duration(100) cat.log_event("hook", "after") return res if __name__ == '__main__': cat.init("pycat", logview=False) while True: try: serve('ping', ["a", {"b": 1}]) except Exception: pass time.sleep(0.1) time.sleep(1)
def __init__(self): logger().info('cat init') cat.init("kd.hbase")
raise Exception("something wrong!") @cat.transaction("rpc", "server") def serve(method, args): cat.log_event("hook", "receive") with cat.Transaction("serve", method) as t: try: t.add_data(json.dumps(args)) t.add_data("foo", "bar") cat.log_event("hook", "before1") cat.log_event("hook", "before2") cat.log_event("hook", "before3") res = func(method, args) finally: cat.metric("rpc-count").count() cat.metric("rpc-duration").duration(100) cat.log_event("hook", "after") return res if __name__ == '__main__': cat.init("pycat", logview=True) while True: try: serve('ping', ["a", {"b": 1}]) except Exception: pass time.sleep(0.1) time.sleep(1)
t.add_data("foo", "bar") def test3(): try: trans = cat.Transaction("Trans", "T3") trans.add_data("content") trans.add_data("key", "val") trans.set_status("error") trans.set_duration(500) trans.set_duration_start(time.time() * 1000 - 30 * 1000) trans.set_timestamp(time.time() * 1000 - 30 * 1000) finally: # NOTE don't forget to complete the transaction! trans.complete() if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--logview', action='store_true', default=False) args = parser.parse_args() cat.init("pycat", debug=True, logview=args.logview) for i in range(100): test1() test2() test3() time.sleep(0.01) time.sleep(1)