It turned out that out current load balancer was hiding user ip address behind his. Additionally we had few services constantly sending uptime requests that because of load balancer were identified by the same ip.
MiniProfiler by default is storing request profiling results per ip. These results are read asynchronously by client side request and only when they were read they are cleared. It meant that I was getting all the profiling results made by uptime services that were not mine but since we had the same ip they were identified as mine.
Possible available solutions:
- Ensure that your IIS is getting unique IP's
- MiniProfiler allows extensibility point for IUserProvider (https://github.com/SamSaffron/MiniProfiler/blob/master/StackExchange.Profiling/IUserProvider.cs) so if necessary we can distinguish users in some other way. GetUser is getting HttpRequest as an argument. One way could be for example to read Session Id from cookies passed in HttpRequest.