All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.