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 ProcessingTime and 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?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.