<html><body><div style="font-family: lucida console,sans-serif; font-size: 12pt; color: #000000"><div>No worries.<br></div><div><br></div><div>Is this something that could be prototyped in python, tp generate feedback/requirements from the community and then made more permanent in 'c'?<br></div><div><br></div><hr id="zwchr"><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><b>From: </b>"Krishnan Parthasarathi" &lt;kparthas@redhat.com&gt;<br><b>To: </b>"Paul Cuzner" &lt;pcuzner@redhat.com&gt;<br><b>Cc: </b>"Vipul Nayyar" &lt;nayyar_vipul@yahoo.com&gt;, "Vijay Bellur" &lt;vbellur@redhat.com&gt;, "gluster-devel" &lt;gluster-devel@nongnu.org&gt;<br><b>Sent: </b>Wednesday, 12 February, 2014 4:37:25 PM<br><b>Subject: </b>Re: [Gluster-devel] New project on the Forge - gstatus<br><div><br></div>Sorry for the spam, I pressed the send button too soon.<br>Note to self, your editor short-cuts don't work on your<br>email client :-(<br><div><br></div>The premise under which rrdtool integration with io-stats was<br>suggested to offset the current deficiency of io-stats. io-stats<br>logs its counters to the log file or presents it to glusterd/cli<br>via an RPC. These are not really good interfaces for reporting<br>tools, for instance glusterfsiostat.<br><div><br></div>I think we should move this discussion to another thread and give it some<br>time for more requirements to come by. Once we identify what GlusterFS<br>needs to provide in the form of statistics. How it should can<br>be determined having in mind the available set of statistics analysis<br>and collection framework.<br><div><br></div>thanks,<br>Krish <br><div><br></div>----- Original Message -----<br>&gt; The premise under which rrdtool integration with io-stats was<br>&gt; suggested to offset the current deficiency of io-stats. io-stats<br>&gt; logs its counters to the log file or presents it to glusterd/cli<br>&gt; via an RPC. These are not really good interfaces for external monitoring<br>&gt; <br>&gt; ----- Original Message -----<br>&gt; &gt; glusterfsiostat is a great idea!<br>&gt; &gt; <br>&gt; &gt; I do wonder if the inclusion of rrd in the design is adding complication<br>&gt; &gt; though. For example, does cifsiostat and nfsiostat do this?<br>&gt; &gt; <br>&gt; &gt; As an admin, would I not just run the glusterfsiostat command with an<br>&gt; &gt; interval/count - and if I want to see the stats over a time period,<br>&gt; &gt; couldn't<br>&gt; &gt; I just pipe it to a file and background the process? I could get the high<br>&gt; &gt; level perf ctrs for any time period that way and not be bound to the fixed<br>&gt; &gt; rrd file size.<br>&gt; &gt; <br>&gt; &gt; For my money - longer term time series observations don't belong in rrd,<br>&gt; &gt; but<br>&gt; &gt; should be forwarded to a "management layer" - and in that context would we<br>&gt; &gt; get the value out of the addtional integration work with rrd?<br>&gt; &gt; <br>&gt; &gt; Just another point of view to consider<br>&gt; &gt; <br>&gt; &gt; ----- Original Message -----<br>&gt; &gt; <br>&gt; &gt; &gt; From: "Vipul Nayyar" &lt;nayyar_vipul@yahoo.com&gt;<br>&gt; &gt; &gt; To: "Vijay Bellur" &lt;vbellur@redhat.com&gt;, "Paul Cuzner"<br>&gt; &gt; &gt; &lt;pcuzner@redhat.com&gt;,<br>&gt; &gt; &gt; "gluster-devel" &lt;gluster-devel@nongnu.org&gt;<br>&gt; &gt; &gt; Cc: "Krishnan Parthasarathi" &lt;kparthas@redhat.com&gt;<br>&gt; &gt; &gt; Sent: Wednesday, 12 February, 2014 3:54:10 AM<br>&gt; &gt; &gt; Subject: Re: [Gluster-devel] New project on the Forge - gstatus<br>&gt; &gt; <br>&gt; &gt; &gt; Hello,<br>&gt; &gt; <br>&gt; &gt; &gt; I'm Vipul, a Computer Engg. student studying in New Delhi. I have some<br>&gt; &gt; &gt; past<br>&gt; &gt; &gt; experience in contributing to open source and I'm interested in<br>&gt; &gt; &gt; contributing<br>&gt; &gt; &gt; to Gluster along with learning from the community.<br>&gt; &gt; <br>&gt; &gt; &gt; For the past couple of weeks, I've been in constant contact with Krishnan<br>&gt; &gt; &gt; Parthasarathi, regarding building a tool named glusterfsiostat, an<br>&gt; &gt; &gt; nfsiostat<br>&gt; &gt; &gt; clone integrated with rrdtool(a data logging system)[1]. We believe that<br>&gt; &gt; &gt; storing io-stats data in a database will be a great improvement over<br>&gt; &gt; &gt; dumping<br>&gt; &gt; &gt; it in a log file. Since it's a Round Robin database, so it's more<br>&gt; &gt; &gt; suitable<br>&gt; &gt; &gt; for our cause as we'll be generating time-series data and our window size<br>&gt; &gt; &gt; would also be fixed. Plus, the data can be easily accessed from the db<br>&gt; &gt; &gt; and<br>&gt; &gt; &gt; processed/modified with a perl/bash script according to the consumer's<br>&gt; &gt; &gt; requirement.<br>&gt; &gt; <br>&gt; &gt; &gt; As for the issue of integrating the io-stats xlator code with rrdtool,<br>&gt; &gt; &gt; Krish<br>&gt; &gt; &gt; asked me to explore two aspects of it. First, compiling rrdtool code in<br>&gt; &gt; &gt; io-stats optionally, only when the user provides a --enable-rrdtool like<br>&gt; &gt; &gt; parameter during configure, can be done similar to how<br>&gt; &gt; &gt; --disable-xml-output<br>&gt; &gt; &gt; option is dealt with by configure and code compiled optionally by<br>&gt; &gt; &gt; checking<br>&gt; &gt; &gt; certain macros defined in confdefs.h.<br>&gt; &gt; <br>&gt; &gt; &gt; On the second note, rrdtool provides a C API which works quite similar to<br>&gt; &gt; &gt; the<br>&gt; &gt; &gt; rrd comand line tool. So including the rrd C api in io-stats will do the<br>&gt; &gt; &gt; work of storing stats in db. As written earlier, getting/displaying the<br>&gt; &gt; &gt; data<br>&gt; &gt; &gt; would just be a simple task of querying the rrd database.<br>&gt; &gt; <br>&gt; &gt; &gt; Although I've spent some considerable time studying the io-stats code and<br>&gt; &gt; &gt; the<br>&gt; &gt; &gt; data structures being used, I think starting to work on a prototype along<br>&gt; &gt; &gt; with everyone's criticism will help me a lot. Is there anywhere written,<br>&gt; &gt; &gt; exactly what data is currently being logged and dumped in the log file ??<br>&gt; &gt; &gt; This will help me in identifying the important data structures and place<br>&gt; &gt; &gt; the<br>&gt; &gt; &gt; rrdtool code in the proper place, where it needs to be.<br>&gt; &gt; <br>&gt; &gt; &gt; I know the draft above, seems quite simple and maybe it doesn't cover too<br>&gt; &gt; &gt; many aspects that need to be dealt with beforehand, but that's where as<br>&gt; &gt; &gt; an<br>&gt; &gt; &gt; amateur contributor, I need the community's help.<br>&gt; &gt; <br>&gt; &gt; &gt; I'll send a patch soon, your way, if you think that the direction in<br>&gt; &gt; &gt; which<br>&gt; &gt; &gt; I'm planning to tread is good for the community.<br>&gt; &gt; <br>&gt; &gt; &gt; [1] http://oss.oetiker.ch/rrdtool/<br>&gt; &gt; <br>&gt; &gt; &gt; Hoping to hear your views soon.<br>&gt; &gt; <br>&gt; &gt; &gt; Regards<br>&gt; &gt; &gt; Vipul Nayyar<br>&gt; &gt; <br>&gt; &gt; &gt; On Monday, 10 February 2014 8:29 PM, Vijay Bellur &lt;vbellur@redhat.com&gt;<br>&gt; &gt; &gt; wrote:<br>&gt; &gt; &gt; On 02/10/2014 02:00 AM, Paul Cuzner wrote:<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; Hi,<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; I've started a new project on the forge, called gstatus.- wiki page is<br>&gt; &gt; &gt; &gt; https://forge.gluster.org/gstatus/pages/Home<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; The idea is to provide admins with a single command to assess the state<br>&gt; &gt; &gt; &gt; of the components of a cluster - nodes, bricks and volume states -<br>&gt; &gt; &gt; &gt; together with capacity information.<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; It's the kind of feature that would be great (IMO) as a sub command of<br>&gt; &gt; &gt; &gt; gluster i.e. gluster status - but as a stop gap here's the python<br>&gt; &gt; &gt; &gt; project (we could even use this as a prototype!)<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; On the wiki page, you'll find some additional volume status definitions<br>&gt; &gt; &gt; &gt; that I've dreamt up - online-degraded, online-partial, to describe the<br>&gt; &gt; &gt; &gt; effect brick down events have on a volume's data availability. There<br>&gt; &gt; &gt; &gt; are<br>&gt; &gt; &gt; &gt; output examples on the wiki, but here's some examples to show you what<br>&gt; &gt; &gt; &gt; you currently get from the tool<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; On my test 4-way cluster, this is what a healthy state looks like<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; [ root@rhs1-1 gstatus]# ./gstatus.py<br>&gt; &gt; &gt; &gt; Analysis complete<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; Cluster Summary:<br>&gt; &gt; &gt; &gt; Version - 3.4.0.44rhs Nodes - 4/ 4 Bricks - 4/ 4 Volumes - 1/ 1<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; Volume Summary<br>&gt; &gt; &gt; &gt; myvol ONLINE (4/4 bricks online) - Distributed-Replicate<br>&gt; &gt; &gt; &gt; Capacity: 64.53 MiB/19.97 GiB (used,total)<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; Status Messages<br>&gt; &gt; &gt; &gt; Cluster is healthy, all checks successful<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; And then if I take a *two nodes* down, that provide bricks to the *same<br>&gt; &gt; &gt; &gt; replica set*, I see;<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; Analysis complete<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; Cluster Summary:<br>&gt; &gt; &gt; &gt; Version - 3.4.0.44rhs Nodes - 2/ 4 Bricks - 2/ 4 Volumes - 0/ 1<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; Volume Summary<br>&gt; &gt; &gt; &gt; myvol ONLINE_PARTIAL (2/4 bricks online) - Distributed-Replicate<br>&gt; &gt; &gt; &gt; Capacity: 32.27 MiB/9.99 GiB (used,total)<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; Status Messages<br>&gt; &gt; &gt; &gt; - rhs1-4 is down<br>&gt; &gt; &gt; &gt; - rhs1-2 is down<br>&gt; &gt; &gt; &gt; - Brick rhs1-4:/gluster/brick1 is down/unavailable<br>&gt; &gt; &gt; &gt; - Brick rhs1-2:/gluster/brick1 is down/unavailable<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; <br>&gt; &gt; &gt; This is great!<br>&gt; &gt; <br>&gt; &gt; &gt; I think adding one more for the client stack would be neat. A tool<br>&gt; &gt; &gt; similar to nfsstat/nfsiostat which can expose various counters in<br>&gt; &gt; &gt; iostats xlator and also status information like brick connectivity from<br>&gt; &gt; &gt; the client perspective. I also have a cool name for that - glusteriostat<br>&gt; &gt; &gt; ;)<br>&gt; &gt; <br>&gt; &gt; &gt; Cheers,<br>&gt; &gt; &gt; Vijay<br>&gt; &gt; <br>&gt; &gt; &gt; _______________________________________________<br>&gt; &gt; &gt; Gluster-devel mailing list<br>&gt; &gt; &gt; Gluster-devel@nongnu.org<br>&gt; &gt; &gt; https://lists.nongnu.org/mailman/listinfo/gluster-devel<br>&gt; &gt; <br>&gt; <br></blockquote><div><br></div></div></body></html>