一,工具简介
ustat是一个类似于“top”的工具,用于监控高级语言中的事件。它为每个使用Java、Node、Perl、PHP、Python、Ruby和Tcl运行时的进程打印关于垃圾收集、方法调用、对象分配以及各种其他事件的统计信息。
二,代码示例
#!/usr/bin/python
from __future__ import print_function
import argparse
from bcc import BPF, USDT, USDTException
import os
import sys
from subprocess import call
from time import sleep, strftime
class Category(object):
THREAD = "THREAD"
METHOD = "METHOD"
OBJNEW = "OBJNEW"
CLOAD = "CLOAD"
EXCP = "EXCP"
GC = "GC"
class Probe(object):
def __init__(self, language, procnames, events):
"""
使用特定的语言、要监控的该语言的进程名集合,以及事件和类别的字典来初始化一个新的探测对象。该字典是USDT探测名称(例如'gc__start')到本工具支持的——来自Category类的事件类别的映射。
"""
self.language = language
self.procnames = procnames
self.events = events
def _find_targets(self):