<div dir="ltr">Hi Guys, <div><br></div><div style>Here my script than I use with very big streaming site, for parse the logs and insert into batch process the information into the Mysql DB</div><div style><br></div><div style>
<a href="https://github.com/cdgraff/icecast-logs-parser">https://github.com/cdgraff/icecast-logs-parser</a><br></div><div style><br></div><div style>We need to do this into external process for the big number of concurrent users we have, currently more than 80k on peak an average of 50k handle this on realtime, affect the connection time performance.</div>
<div style><br></div><div style>I hope this be interesting to anything else.</div><div style><br></div><div style>Regards, </div><div style>Alejandro</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/3/28 Luca Cireddu <span dir="ltr">&lt;<a href="mailto:sardylan@gmail.com" target="_blank">sardylan@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi guys,<div>thanks for your answers...</div><div><br></div><div>My idea was to create a simple system that can be linked to radio schedule.</div>
<div>To avoid problems modifing a working code, I decided to do less modifications as possible by simply adding a call to 2 functions, one to add a listener and one to remove a listener. Using only 2 tables on db I can obtain all informations.</div>


<div>One table, called &quot;online&quot;, contain a &quot;mirror&quot; of the online status that can be browsed in the admin section of icecast web interface. It is composed by 5 fields: id, ip, agent, start and mountpoint. Each time a new listener connects, icecast adds a record with a numerical ID, the same ID used to identify the connection on the source code. The &quot;start&quot; field contains the unix timestamp, filled by icecast. &quot;Agent&quot; is the user-agent.</div>


<div>When a listener closes the connection, my function remove the record from the online table (using the ID to choose the right one) and put a new record in the second table,  called &quot;stats&quot;, which contains 7 fileds: &quot;id&quot;, &quot;ip&quot;, &quot;agent&quot;, &quot;mount&quot;, &quot;start&quot;, &quot;stop&quot; and &quot;duration&quot;.</div>


<div>Many of the fields are taken from the online table, adding the &quot;stop&quot; timestamp, ancd counting the difference in seconds to fill the &quot;duration&quot; value.</div><div>Once you have data in the &quot;stats&quot; table, you can simply parse them with a PHP page... You can order them by duration or start time, but most important is that you can simply have the medium time a user stay online. You can also have the medium calculated per-hour. You are also able to exclude several IP address (local connections or relay servers).</div>


<div>All informations are directly created real-time by icecast itself, so you don&#39;t have to query the server each 5 or 10 seconds. Using a DB, you can also have different servers for streaming and stats, and if you like you can simply integrate some information in existing web sites.</div>

<div>I made also few modifications to integrate mysql configuration params in icecast.xml file.</div><div><br></div><div>About source code there is a little problem. I&#39;ve start working on the code on-the-fly because I thought to create only one file, so I&#39;m not using any of the versioning system like git.</div>

<div>How can I upload it? I think that the best solution could be to checkout an existing repository and re-apply all modifications, but it may take a lot to complete.</div><div>I considered to produce a patch using diff, but there are a lot of difference becasue I needed to recreate some files using autoreconf.</div>

<div>I will upload a tar archive of my version as soon as possible in my personal site, and I will share the link in this mailing list, so you can start to take a look in source code.</div><div>I used SVN several times, but I&#39;m newbie in git. :)</div>
<span class="HOEnZb"><font color="#888888">
<div>-- </div><div>Luca Cireddu<br><a href="mailto:sardylan@gmail.com" target="_blank">sardylan@gmail.com</a><br><a href="http://www.lucacireddu.it" target="_blank">http://www.lucacireddu.it</a>
</div>
</font></span><br>_______________________________________________<br>
Icecast-dev mailing list<br>
<a href="mailto:Icecast-dev@xiph.org">Icecast-dev@xiph.org</a><br>
<a href="http://lists.xiph.org/mailman/listinfo/icecast-dev" target="_blank">http://lists.xiph.org/mailman/listinfo/icecast-dev</a><br>
<br></blockquote></div><br></div>