Jump to content

Recommended Posts

Posted

Diagnostics

For the development team here at IPS, we're constantly striving to make the most stable and reliable software we can. We currently have three main channels through which we hear about potential issues:

  • Our QA team and other power users submit bug reports to our bug tracker.
  • Community owners contact our technical support team who then, where necessary, communicate issues to us.
  • Our Community In The Cloud team monitor server error logs (etc) and where necessary, communicate issues to us.
For IPS Social Suite 4.0, I really wanted to examine how potential software issues (as well as general questions and support enquiries, which I'll talk about in another blog entry) come through to us, and if any improvements can be made. The problem with all of these channels is that they're not direct (we don't get the information directly to us) which means we sometimes don't have all the information we need, and if the issue is never reported, we might not hear about it at all.

Desktop applications and Operating Systems handle this in a very particular way - they send a diagnostic report straight to the vendor when something goes wrong. This means the vendor gets all the information they need about the problem in a way that requires no input from the user - it's automatic, anonymous and instant.

In IPS 4.0, we're introducing the same system. When a problem happens, a report is automatically sent to our servers to let us know. Participation is optional and the report sent is entirely anonymous.

What causes a diagnostic report to send?

Error handling in IPS 4.0 on the programming level is handled through Exceptions. If a class does something unexpected (for example, if the class which communicates with the database gets an error from the database server, or the class which makes HTTP requests gets an unexpected response), the class will throw an Exception (specifically, a RuntimeException). If an Exceptions is not caught (accounted for in the code), a report will be sent.

Also, if a PHP error of a level greater than a notice (a warning) is encountered, it will also throw an Exception (specifically, an ErrorException) which will also cause a report to be sent.

What information does a diagnostic report contain?

The diagnostic report contains:

  • The trace route of the exception, with personal information (the path to your site, which is usually in the trace of all exceptions, and your database name which is often in the message for MySQL errors) removed.
  • The version number of the IPS Social Suite you are running.
  • The version number of the application which caused the error.

The diagnostic report does not contain:

  • Your license key.
  • Your site URL.
  • Any information about the user that triggered the error or any other users.
  • Any information which would allow us to work out which site sent the report.

Here's an example of the contents of a diagnostic report, which would be sent if the code tried to get information from a database table that doesn't exist:

How do I opt-out?

You'll be asked when you install IPS Social Suite, or upgrade to version 4.0 if you want to opt-out. You can change this choice at any time in the Admin CP by simply adjusting a setting, which is in a prominent location.

Usage

While we were working on diagnostics reporting, we had another thought. The other thing that we as developers really want to know besides if there are any problems in the software is how the software is being used. What features are the most popular? How many forums does the average site have? Do most people use the articles system in IP.Content to manage content or do they create pages manually? How many people have upgraded to our new version so far? While a lot of site owners post in our feedback forum (and we love having that communication) - having the raw statistics for these sorts of questions would be really helpful in knowing what we should focus on (plus, everyone loves charts and graphs).

So in a similar vein, IPS 4.0 will also (assuming you've enabled it) periodically (once a month) send a report to us with this sort of information. Participation is optional and the report sent is entirely anonymous.

What information does a usage report contain?

The usage report contains:

  • The number of rows in each database table.
  • MD5-encoded values of settings - see below.
  • The PHP and MySQL versions installed on the server.
  • A list of the PHP extensions installed on the server.
  • A list of installed applications (e.g. IP.Board, IP.Blog, IP.Gallery, etc.) and their versions.
  • A number indicating the number of active applications in your license (for example, if you have purchased IP.Board and IP.Blog, and both are active, the number “2” will be sent).

The usage report does not contain:

  • Your license key.
  • Your site URL.
  • Any information about about users or any user-submitted content.
  • Any information which would allow us to work out which site sent the report.

For the settings values - the values are encoded we cannot see the value (so we can’t see your site name, URL, etc.) - this is a blanket protection so that we do not send anything sensitive and the information cannot be used to work out which site sent the report. The encoded values though are still useful - for text-entry settings, we can see if the value has been changed from the default value (since we know the md5 hash for the default value) which is useful to know how many people change the default configuration. For settings which have a limited number of options, for example, can only be turned on or off, or have a drop down list of options, the hash value has meaning as we know the hash values for each option. Even though values are encoded, particularly sensitive settings such as database connection details are stripped completely.

Here's an example of the contents of a usage report:

How do I opt-out?

You'll be asked when you install IPS Social Suite, or upgrade to version 4.0 if you want to opt-out. You can change this choice at any time in the Admin CP by simply adjusting a setting, which is in a prominent location.

Attached Files

View the full article

View the full article

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...