We need someone to build a cron using PHP that will take MRTG / RRD polling data and place it into a MySql database for later display / reporting.
## Deliverables
Description has changed 08/27/2005:
Cron built in PHP that grabs MRTG / RRD data every 5 minutes, evaluates that data to find if the usage is over 1mbit. If the usage is above 1mbit, polling data needs to be updated into MySql in order to obtain usage for that polling period.
This also needs to adjust for incorrect timestamping issues with MRTG. (sometimes MRTG does not run during a 5 minute cycle, and will run 1 to 5 minutes late).
Perl is fine... we just need it to work correctly.
If the traffic is above 1Mbps, we need to have the data updated into MySql. If the traffic is <= 1Mbps, no data is dumped into MySql. We're using this to measure the traffic of an event that occurs infrequently but uses lots of traffic, so when the event starts, the cron needs to start.
Every 5 minutes, the Cron should take a poll of current usage, evaluate if it is above 1Mbps... if it is above 1Mbps, it needs to calcluate the amount of GB transfered within the last 5 minutes, and needs to add that amount of GB transfered to a table within MySql. So, the calculation is being made as a conversion between Mbps and total GB used by a port.
example:
Cron evaluates that the bandwidth is above 1Mbps
Cron Creates an 'event' in the event table:
eventTable
EventID ClientID EventStart EventEnd
1 1 Now() Now()
Cron then needs to create a row in the port table for the port that the event is occuring on. Cron will need to update this row as long as the event continues.
Porttable
ClientID PortNumber PollTimeStamp Usage EventID
1 1 (MRTG Stamp) 1024(bytes) 1
When the event stops, cron will need to update the event table with the date/time the event ended, and will need to email someone to let them know that an event has occured.
there will be multiple cron running for different clients and different ports. we'll hard-code the client id and port id into the cron when we set them up.
the one issue that i've noticed with mrtg is that it does not always poll on time. it will sometimes poll every 6 minutes... or miss a polling interval entirely and you'll get a 10 minute poll instead of a 5 minute poll. this has to be accounted for when you're looking at the difference between times and usage.
* * *This broadcast message was sent to all bidders on Saturday Aug 27, 2005 11:38:39 AM:
We've changed the description of this project to be a little more specific on what our needs are.
## Platform
Linux, PHP, MySql