Prefix is a lightweight .NET CLR profiler. It does not track every single method called by your app like standard profilers do (ANTS, dotTrace, Visual Studio, etc). Prefix only tracks certain methods in your code. Because of this Prefix does not slow your app down and you can use it all the time.
The following frameworks are automatically supported by Prefix with no code or config changes unless noted. Profiler traces will automatically include details from these libraries. Please note that most async functions are supported as well.
Prefix will also automatically track key details associated within many of these technologies. For example, on a cache call it may automatically show the cache key used. Web requests will show the response status code and size.
The following are supported for IIS based apps. Self hosted web app support is coming soon for Prefix.
- ASP.NET Core RC1
- Web API
3rd party routing frameworks:
Most ORM solutions like Entity Framework, NHibernate, Dapper, Linq2SQL and others work perfectly. Unfortunately, Devart libraries are not currently supported.
- SQL Server
- MySql (MySql.Data.MySqlClient)
- Oracle (Oracle.ManagedDataAccess & System.Data.OracleClient)
- Postgres (Npgsql)
- SQL Server CE
- ODBC via OdbcCommand
- MongoDB (MongoDB.Driver v1 & v2)
- Azure libraries (see below)
- AWS libraries (see below)
- All thrown Exceptions
- StackifyLib (Stackify's SDK) direct logging
By adding the Stackify logging appender to your app config file you can view these logs:
- Redis (ServiceStack & StackExchange)
- memcached (enyim)
- AppFabric & Azure Cache (Microsoft cache)
- Azure Service Bus
- Azure Storage Queue
Where possible, web requests will track total download time, serialization and deserialization automatically. Read our blog post about this: Why calling a web service takes longer than you think
- Low level HttpWebRequest/HttpWebResponse
- Auto generated WCF proxy clients
- Plus others from libraries that use HTTP within them like Elasticsearch, Azure storage, etc
- SQL Azure
- Storage (Blobs, Queues, Tables)
- Document DB
- Azure Service Bus
- Caching (via Redis & AppFabric support)
- SimpleNotificationService (SNS)
- ElastiCache (via memcached & redis support)
Prefix also tracks and shows times for some other various activities
- Estimated compilation time
- HTTP Modules
- Reading incoming HTTP post data and deserializing requests
- Serializing and sending HTTP responses
- Request queuing
Please also note that things like compilation, GC pauses, JIT time, IIS queuing and other things can also take time in your code and may not be reflected by Prefix.