title: Best way to report events / read events (also MySQL)
body: <p>So I'm going to attempt to create a basic monitoring tool in VB.net. Now I'd like some advice on how basically to tackle the logging and reporting side of things so I'd appreciate some responses from users who I'm sure have a better idea than me and can tell me far more efficient ways of doing things.</p>
  
  <p>So my plan is to have a client tool, which will read from a MySQL database values and basically change every x interval, I'm thinking 10/15 minutes at the moment. This side of the application is quite easy, I mean I can get something to read a database every x amount of time and then change labels and display alerts based on them. - This is all well documented and I am probably okay with that.</p>
  
  <p>The second part is to have a client that sits in the system tray of the server gathering the required information. Now the system tray part I think will probably be the trickiest bit of this, however that's not really part of my question.</p>
  
  <p>So I assume I can use the normal information gathering commands and store them perhaps as strings and I can then connect to the same database and add them to the relevant fields. For example if I had a MySQL table called "server" and a column titled "Connection" I could check if the server has an internet connection for example and store the result as the value 1 for yes and 0 for no and then send a MySQL command to the table to update the "connection" value to either 0/1.</p>
  
  <p>Then I assume the monitoring tool I can run a MySQL query to check the "Connection" column and if the value is = 0 change a label or flag an error and if 1 report that connectivity is okay?</p>
  
  <p>My main questions about the above are listed below.</p>
  
  <ol>
  <li>Is using a MySQL database the most efficient way of doing something like this? </li>
  <li>Obviously if my database goes down there's no more reporting, I still think that's a con I'll have to live with though.</li>
  <li>Storing everything as values within the code is the best way to store my data?</li>
  <li>Is there anything particular type of format I should use in the MySQL colum, I was thinking maybe tinyint(9)?</li>
  <li>Is the above method redundant and pointless?</li>
  <li>I assume all these database connections could cause some unwanted server load, however the 15 minute refresh time should combat that.</li>
  <li>Is  there a way to properly combat delays with perhaps client updating not in time for the reporter so it picks up false data, perhaps a fail safe for a column containing last updated time?</li>
  </ol>