Kernel Parameters Interface using HTTP
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
misc
src
.gitignore
Cargo.lock
Cargo.toml
LICENSE Add MIT LICENSE May 3, 2017
README.md
Vagrantfile Vagrant use cpu 2 core Dec 3, 2018

README.md

k2i crates.io License

Kernel Parameters Interface using HTTP(S)

Quick Install

cargo install k2i

k2i Server Run

k2i 

Support API

k2i information response

$ curl 127.0.0.1:8000/v1/proc/self
[{"tid":0,"ppid":5294,"maj_delta":0,"min_delta":0,"pcpu":0,"state":83,"pad_1":0,"pad_2":0,"pad_3":0,"utime":3,"stime":1,"cutime":0,"cstime":0,"start_time":9479566,"signal":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"blocked":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sigignore":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sigcatch":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"_sigpnd":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"start_code":94062006767616,"end_code":94062010354808,"start_stack":140724759217040,"kstk_esp":140724759213088,"kstk_eip":140628670241165,"wchan":0,"priority":20,"nice":0,"rss":484,"alarm":0,"size":0,"resident":0,"share":0,"trs":0,"lrs":0,"drs":0,"dt":0,"vm_size":0,"vm_lock":0,"vm_rss":0,"vm_data":0,"vm_stack":0,"vm_swap":0,"vm_exe":0,"vm_lib":0,"rtprio":0,"sched":0,"vsize":239472640,"rss_rlim":18446744073709551615,"flags":1077936128,"min_flt":2945,"maj_flt":2,"cmin_flt":0,"cmaj_flt":0,"environ":"","cmdline":[],"cgroup":[],"supgid":"","supgrp":"","euser":"","ruser":"","suser":"","fuser":"","rgroup":"","egroup":"","sgroup":"","fgroup":"","cmd":"k2i","pgrp":5507,"session":5294,"nlwp":4,"tgid":0,"tty":34816,"euid":0,"egid":0,"ruid":0,"rgid":0,"suid":0,"sgid":0,"fuid":0,"fgid":0,"tpgid":5507,"exit_signal":17,"processor":0,"ns":[0,0,0,0,0,0]}]

root response

$ curl 127.0.0.1:8000/v1/
root response!

test response

$ curl 127.0.0.1:8000/v1/hello
hello!
  • current configuration response
$ curl -s 127.0.0.1:8000/v1/config | jq .
{
  "hostname": "127.0.0.1",
  "port": 8000,
  "threads": 1
}

all proc information response

$ curl -s 127.0.0.1:8000/v1/proc | jq . | head -n 30
[
  {
    "tid": 1,
    "ppid": 0,
    "maj_delta": 0,
    "min_delta": 0,
    "pcpu": 0,
    "state": 83,
    "pad_1": 0,
    "pad_2": 0,
    "pad_3": 0,
    "utime": 113,
    "stime": 1498,
    "cutime": 63742,
    "cstime": 4669,
    "start_time": 12,

(snip)

    "sched": 0,
    "vsize": 9887744,
    "rss_rlim": 18446744073709552000,
    "flags": 4194304,
    "min_flt": 143,
    "maj_flt": 0,
    "cmin_flt": 0,
    "cmaj_flt": 0,
    "environ": "",
    "cmdline": [
      "less"
    ],
    "cgroup": [
      "11:cpuset:/",
      "10:net_cls,net_prio:/",
      "9:hugetlb:/",
      "8:devices:/user.slice",
      "7:perf_event:/",
      "6:memory:/user.slice",
      "5:blkio:/user.slice",
      "4:pids:/user.slice/user-1000.slice",
      "3:cpu,cpuacct:/user.slice",
      "2:freezer:/",
      "1:name=systemd:/user.slice/user-1000.slice/session-39.scope"
    ],
(snip)

Specified PID proc information response

$ curl -s 127.0.0.1:8000/v1/proc/19309 | jq . | head -n 30
[
  {
    "tid": 19309,
    "ppid": 19256,
    "maj_delta": 0,
    "min_delta": 0,
    "pcpu": 0,
    "state": 83,
    "pad_1": 0,
    "pad_2": 0,
    "pad_3": 0,
    "utime": 3,
    "stime": 15,
    "cutime": 0,
    "cstime": 0,
    "start_time": 2879872,
    "signal": [
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
(snip)

Specified cmd name proc information response

$ curl 127.0.0.1:8000/v1/proc/cmd/lxc | jq .
[
  {
    "tid": 756,
    "ppid": 1,
    "maj_delta": 0,
    "min_delta": 0,
    "pcpu": 0,
    "state": 83,
    "pad_1": 0,
    "pad_2": 0,
    "pad_3": 0,
    "utime": 12,
    "stime": 41,
    "cutime": 0,
    "cstime": 0,
    "start_time": 861,

(snip)

    "rtprio": 0,
    "sched": 0,
    "vsize": 468344832,
    "rss_rlim": 18446744073709552000,
    "flags": 1077936384,
    "min_flt": 555,
    "maj_flt": 5,
    "cmin_flt": 33,
    "cmaj_flt": 0,
    "environ": "",
    "cmdline": [
      "/usr/bin/lxcfs",
      "/var/lib/lxcfs/"
    ],
    "cgroup": [
      "11:cpuset:/",
      "10:net_cls,net_prio:/",
      "9:hugetlb:/",
      "8:devices:/system.slice/lxcfs.service",
      "7:perf_event:/",
      "6:memory:/system.slice/lxcfs.service",
      "5:blkio:/system.slice/lxcfs.service",
      "4:pids:/system.slice/lxcfs.service",
      "3:cpu,cpuacct:/system.slice/lxcfs.service",
      "2:freezer:/",
      "1:name=systemd:/system.slice/lxcfs.service"
    ],

(snip)

    "cmd": "lxcfs",
    "pgrp": 756,
    "session": 756,
    "nlwp": 7,
    "tgid": 756,
    "tty": 0,
    "euid": 0,
    "egid": 0,
    "ruid": 0,
    "rgid": 0,
    "suid": 0,
    "sgid": 0,
    "fuid": 0,
    "fgid": 0,
    "tpgid": -1,
    "exit_signal": 17,

(snip)

License

This project is under the MIT License: