一,工具简介

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):
  
03-04 06:18