我希望捕获用户在我的MVC网站上做什么的记录。对于每个控制器操作,我想识别用户,捕获控制器和操作的名称,还有一些文本,其中我捕获传入的任何参数的值。
我想在所有这些数据之上放置一个UI,我可以显示这些记录,按用户过滤,如果可能的话,还可以过滤控制器和操作。
Azure表存储是否可以用于捕获此数据?如果是这样,理想的结构会是什么样子?在不了解表存储的情况下,我想知道是否可以使用用户的ID作为分区键,并连接控制器和rowkey的操作:
|PartitionKey|RowKey |Timestamp |Parameters |
|1 |Order/Edit |2015-08-06T12:00|{orderId: 3}|
|1 |Order/Edit |2015-08-06T14:55|{orderId: 3}|
|2 |Order/Delete|2015-08-06T13:35|{orderId: 4}|
如果我想要查询单个用户的所有操作,那么这会有效吗?我还要提一下,我希望有大约30,000个用户,这会对所有独特的分区密钥造成问题吗?
答案 0 :(得分:3)
我会考虑将 Application Insights 添加到您的应用程序中,而不是编写代码来捕获此遥测数据。对于此数据之上的UI,您将能够使用Azure门户(预览门户)查看和深入查看应用程序的遥测数据。
有关此服务的更多信息,请here。
答案 1 :(得分:0)
Azure表存储对于通过多个不同方面(即:按时间,按用户,通过控制器)进行搜索或查询非常糟糕...尤其是涉及大量数据时。对于可以使用特定查找进行定位的分析/数学/运行时数据,情况要好得多。
我会使用SQL Azure或者尝试使用DocumentDb。