* [ANNOUNCE] shark project: trace and monitor system easily
@ 2015-05-12 22:08 shark linux
0 siblings, 0 replies; only message in thread
From: shark linux @ 2015-05-12 22:08 UTC (permalink / raw)
To: linux-kernel
Hi,
For any people who interesting on system tracing and monitoring, shark
project might worth a minute to take a look.
https://github.com/sharklinux/shark
Motivation
========
Currently system performance management is painful, shark project is
trying to change system performance management in three levels: API,
Consistent commandline tools, Cloud monitoring and analysis.
API
-----
shark project expect to delieve a unified event API, user can
programming the API, we believe that a well designed system tracing
and monitoring API is the fundamental base for Consistent commandline
tools and Cloud monitoring.
We already developed lua perf event and bpf API, more API will be support soon.
Consistent standalone tools
-------------------------------------
Based on powerful API, we can invent many consistent commandline tools
which cover different subsystems. We think "consistent" is very
important for long term evolution, and it's important for cloud
analysis platform.
Cloud monitoring and analysis
----------------------------------------
We believe ultimately all system performance management will goes to
intelligent, most likely through cloud. user don't need spend many
days to investigate why system become slow, the cloud robot will tell
you the reason instantly.
In first step, we already support flamegraph and heatmap viewing in
cloud(see samples/)
Samples
=======
1. tracepoint
local perf = require "perf"
local ffi = require "ffi"
perf.on("sched:sched_switch", function (e)
print(ffi.sting(e.name), e.cpu, e.pid)
print(ffi.string(e.raw.prev_comm), ffi.string(e.raw.next_comm))
end)
2. view flamegraph in cloud
local perf = require "perf"
local sharkcloud = require "sharkcloud"
local profile = {}
setmetatable(profile, {__index = function() return 0 end})
perf.on("cpu-clock", {callchain_k = 1}, function(e)
profile[e.callchain] = profile[e.callchain] + 1
end)
shark.on_end(function()
--Open flamegraph at http://sharkly.io/
sharkcloud.post("flamegraph", profile)
end)
3. bpf
local bpf = require "bpf"
bpf.cdef[[
bpf_map_hash<char[100], int, 1024> mymap;
/* your C code in here*/
]]
shark.on_end(function()
-- access mymap as normal lua table
bpf.print_map(bpf.map.mymap)
end)
All is open sourced, any feedback is welcome.
Thanks.
shark project.
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2015-05-12 22:08 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-12 22:08 [ANNOUNCE] shark project: trace and monitor system easily shark linux
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.