From 5f1b76a0c78a2d5743b607f25704bf1a6efd34e4 Mon Sep 17 00:00:00 2001 From: Billy Xu Date: Wed, 16 Dec 2015 03:14:40 -0500 Subject: [PATCH] Update readme file of scalpels Add the descriptions for All-In-One scenario and multiple nodes' scenario. Change-Id: I0849cb4655f989a23ba71d7312f8b85f35396780 Implements: blueprint update-readme --- README.rst | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/README.rst b/README.rst index 492c3b9..409d6c3 100644 --- a/README.rst +++ b/README.rst @@ -1,18 +1,18 @@ Scalpels ======== -Scalpels is distributed tracing or debuging system for OpenStack. +Scalpels is a distributed tracing or debuging system for OpenStack. Background ========== -OpenStack is made of multiple Python-based projects. Each project has similiar but different architecture. Scalpels gathers useful scripts or 3rd tools to help operator find what happen in your cloud. +OpenStack is made of multiple Python-based projects. Each project has similiar but different architecture. Scalpels intergates some useful scripts or 3rd tools to help operator track system status in your cloud environments. Contribute ========== -This project is prototype now and under development. If you have interests in this work, please contact @kun_huang, at #openstack-chinese channel. +This project is a prototype now and is under development. If you have interests in this work, please contact @kun_huang, at #openstack-chinese channel. Mission ======= -Scalpels is kind of "debugfs" for OpenStack. It gathers data from number of tracers like proc or systemtap which could be used to quantize preformance under workloads. +Scalpels is a kind of "debugfs" for OpenStack. It gathers data from number of tracers like proc or systemtap which could be used to quantize preformance under workloads. Single Node Architecture ======================== @@ -21,6 +21,8 @@ This type of deployment is used as POC in OpenStack community CI. .. image:: doc/source/images/allinone.png :alt: All-in-One deployment +In All-In-One scenario, Scalpels Client works as rpc client, Scalpels Agent works as rpc server. When Scalpels Agent receives a rpc to start tracer 3, it will start a unix process for tracer 3, which can write data to database. Scalpels Client can read data from database directly. + Multiple Node Architecture ========================== This is under Designing: @@ -28,6 +30,12 @@ This is under Designing: .. image:: doc/source/images/multiple.png :alt: Multiple deployment +In multiple nodes scenario, Scalpels Server are non-state servers, they are distributed in multiple nodes, each Scalpels Server knows all agents' location and could forward the request to start tracers. + +Scalpels Agent is introduced to manage trace process, it can be combined with Scalpels server during implementation. + +Tracers can write data into redis bus instead of database to keep data consistency. + Agent-Tracer-Worker =================== The relationship is: @@ -35,6 +43,10 @@ The relationship is: .. image:: doc/source/images/agent-tracer-worker.png :alt: agent-tracer-worker.png +Scalpels Agent: manager tracers by start/stop signals. +Tracer: Start worker process and write its stdout to database. +Worker: It fetches data from operating system. + Ideas ===== Each project will have scripts working: