使用表存储来跟踪网站上的用户操作

时间:2015-08-06 15:40:35

标签: azure azure-table-storage

我希望捕获用户在我的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个用户,这会对所有独特的分区密钥造成问题吗?

2 个答案:

答案 0 :(得分:3)

我会考虑将 Application Insights 添加到您的应用程序中,而不是编写代码来捕获此遥测数据。对于此数据之上的UI,您将能够使用Azure门户(预览门户)查看和深入查看应用程序的遥测数据。

有关此服务的更多信息,请here

答案 1 :(得分:0)

Azure表存储对于通过多个不同方面(即:按时间,按用户,通过控制器)进行搜索或查询非常糟糕...尤其是涉及大量数据时。对于可以使用特定查找进行定位的分析/数学/运行时数据,情况要好得多。

我会使用SQL Azure或者尝试使用DocumentDb。