I worked on a project aiming to do just this. Project Ginsberg tracks a user's wellbeing by recording their responses to a set of self-selected subjective questions designed to track aspects of their wellbeing.
The user is able to pick questions that they feel contribute most to their wellbeing:

They are then asked those questions on a regular basis:

The application also tracks objective measures (such as time spent exercising and sleeping) using connected 3rd party applications and attempts to find patterns and correlations between objective and subjective measures.
To answer the question, the only way to get insight into a user's wellbeing is to ask them. You can "mine" objective data from other applications and trackers which can be connected to your application. Subjective data is much trickier and users are a lot less likely to be tracking their mood than they are their sleep for example.
I would suggest that the best practice around trying to access personal information about the user is to be very clear about the information you're taking and how (maybe why too). Asking up front, rather than "mining" for it, might actually be more appropriate.