Ejemplo n.º 1
0
def test_read_all_in_wrong_order():
    data = read_data("atop_1_26_debian8_x86_64.log")
    stream = io.BytesIO(data)
    reader = atop_raw.create_reader(stream)
    for record in reader.records:
        record.pstats
        record.header
        record.sstat
Ejemplo n.º 2
0
def test_processutils():
    data = read_data("atop_1_26_debian8_x86_64.log")
    stream = io.BytesIO(data)
    reader = atop_raw.create_reader(stream)
    for record in reader.records:
        report = utils.ProcessReport(reader, record.sstat)
        for pstat in record.pstats:
            cpu = report.get_cpu_percent(pstat)
            mem = report.get_mem_percent(pstat)
            assert cpu == pytest.approx(0.00742272, abs=0.0001)
            assert mem == pytest.approx(0.03105252, abs=0.0001)
            break
        break
Ejemplo n.º 3
0
def process(options):

    cmd_filters = options.cmd_filter[0].split(",")
    print(cmd_filters)

    data = Data()
    for filename in options.filenames:
        with open(filename, "rb") as stream:
            print(f"Extract {filename}")
            reader = atop_raw.create_reader(stream)

            for record in reader.records:
                print("-", record.curtime)
                # print(record.sstat)
                sstat = record.sstat
                report = ProcessReport(reader, sstat)

                for pstat in record.pstats:
                    cmd = normalize_str(pstat["gen"]["cmdline"])
                    for f in cmd_filters:
                        if f in cmd:
                            must_be_recorded = True
                            break
                    else:
                        must_be_recorded = False

                    if must_be_recorded:
                        name = normalize_str(pstat["gen"]["name"])
                        pid = pstat["gen"]["pid"]
                        mem = report.get_mem_percent(pstat)
                        cpu = report.get_cpu_percent(pstat)
                        process = ProcessMeasure(
                            pid=pid,
                            cmd=cmd,
                            name=name,
                            cpu=cpu,
                            mem=mem,
                            date=record.curtime,
                        )
                        data.add(process)
    return data
Ejemplo n.º 4
0
def normalize_str(data):
    if isinstance(data, bytes):
        return data.decode("ascii")
    return data


if len(sys.argv) == 1:
    raise RuntimeError("An atop file (at least) is expected")

filenames = sys.argv[1:]
for filename in filenames:
    with open(filename, "rb") as stream:
        print("=====================")
        print(f"{filename}")
        print("=====================")
        reader = atop_raw.create_reader(stream)
        print(reader.header)

        for record in reader.records:
            print()

            # print(record.header)
            # print(record.sstat)
            sstat = record.sstat
            report = ProcessReport(reader, sstat)

            for pstat in record.pstats:
                cmd = normalize_str(pstat["gen"]["cmdline"])
                name = normalize_str(pstat["gen"]["name"])
                pid = pstat["gen"]["pid"]
                mem = report.get_mem_percent(pstat)
Ejemplo n.º 5
0
def test_skip_all_records():
    data = read_data("atop_1_26_debian8_x86_64.log")
    stream = io.BytesIO(data)
    reader = atop_raw.create_reader(stream)
    for _record in reader.records:
        pass