I am creating a generic telemetry system, which records some data about client app usages. Technology used: ASP .NET MVC with EF (code-first) hosted on Azure.
There is a requirement to be able to store 'program-custom' data along with other generic usage statistics.
For one program, the custom telemetry data will might be
NumberOfFilesProcessed, whereas for another it will be the count of letter B in files and the name of button that was clicked:) Completely random, not controlled by me.
My idea is to send it over serialized as JSON and store it in a table in DB. This table would only contain a PK/FK to the 'generic' usage data detail and the custom usage detail json string. The 'generic' data will contain timestamp etc.
The developers who use my telemetry system will want to view their custom data in form of the statistics (for example 'I want to see the total
NumberOfFilesProcessed and the total
ProcessingTime' for last week).
I am wondering how can I make it presentable in a generic way (in a table or graph?). I suppose the developer would have to specify the POCO that represents the 'custom data model' and perhaps based on the POCO properties I could figure out the names of the columns for this data to display - but it seems pretty complicated, especially is if the custom data model contains nested complex types...
Perhaps there's an established way? Or do you guys have any idea how to implement this?