Esempio n. 1
0
# coding=utf-8

from __future__ import print_function
from bcc import BPF
from time import sleep, strftime

# for influxdb
from influxdb import InfluxDBClient
import lmp_influxdb as db
from db_modules import write2db

from datetime import datetime

DBNAME = 'lmp'

client = db.connect(DBNAME, user='******', passwd=123456)

b = BPF(text='''
        #include <uapi/linux/ptrace.h>
        #include <linux/ktime.h>
        
        BPF_HASH(timer, u32, ktime_t);
      
        int kprobe__do_swap_page(struct pt_regs *ctx)
        {
               
                u32 pid = bpf_get_current_pid_tgid();
             
                ktime_t start = bpf_ktime_get_ns();
                timer.update(&pid, &start);
Esempio n. 2
0
#!/usr/bin/python3
#-*- coding:utf-8 -*-

from influxdb import InfluxDBClient
import lmp_influxdb as db
from db_modules import write2db, delete_db
from datetime import datetime
DBNAME = 'testDB'

#在lmp项目中连接influxdb数据库使用lmp_influxdb模块中的connect()
#除了数据库名称dbname是必选参数外,其余参数默认设置
#数据地址:localhost; port:8086; user:'******'; passwd:'admin';

#下面语句等于InfluxDBClient('localhost',8086,'hawl','123','testDB')
client = db.connect(DBNAME, user='******', passwd=123)

#写入数据库需要使用write2db(datatype,data,client)
#datatype是预先定义的数据格式,主要内容是bpf.c中用来输出数据的数据结构体的字段名
#按照格式 datatype = {"measurement":"table_name",
#                      "tags":['表头字段a','表头字段b'],
#                      "fields:['数据字段c','数据字段d']}
#data是需要写入的数据内容,目前支持bpf_perf_output输出的events对象
#events对象中包含了bpf.c中定义的data数据结构,字段a,b,c,d
#client是需要写入的数据库client
'''
假设在bpf.c文件中定义了如下的data数据结构
struct data_t{
    int   id
    char  name[]
    char  sex[]
    int   age