Feature Tracking
Feature Tracking is an Instrumentation feature that allows an injected application to track when certain application functions are exercised by the user.
Configuration
To track features:
Using either in-code attributes or extended attributes, add
FeatureAttribute
s to the appropriate methods.Configure the properties of these attributes appropriately.
Build your Dotfuscator config.
The output assemblies will now contain injected code for feature tracking.
Supported Application Types
Feature tracking can be used on methods within all assemblies supported by instrumentation.
Name
Features are identified by their Feature Name, which is case- and whitespace-sensitive. A single session may track a feature multiple times, either by calling the same method multiple times, or by calling different methods with the same Feature Name.
Event Type
Features come in two basic varieties:
- Feature Tick: An atomic event. Does not have duration information.
- Start/Stop Feature: A feature that occurs over a period of time.
The start and stop points for the feature are marked individually and must have the same Feature Name to be properly correlated.
The start
FeatureAttribute
and stopFeatureAttribute
may go on the same method if desired. Code for the start event is injected at the beginning of the annotated method, while code for the stop event is injected at the end.
Messages
There is one message type for Feature Ticks. There are two message types for Start/Stop Features: a Feature Start and a Feature Stop.
Feature Tick
Generated when a method annotated with a FeatureAttribute
with the "Tick" FeatureEventType begins and the user has not opted-out.
Indicates an atomic event.
Includes the following data:
- Session ID
- Timestamp
- Feature Name
- Extended Keys if configured
Feature Start
Generated when a method annotated with a FeatureAttribute
with the "Start" FeatureEventType begins and the user has not opted-out.
Indicates the start of a feature.
Includes the following data:
- Session ID
- Timestamp
- Feature Name
- Feature ID (to correlate with a matching Stop)
- Extended Keys if configured
Feature Stop
Generated when a method annotated with a FeatureAttribute
with the "Stop" FeatureEventType ends and the user has not opted-out.
Indicates the end of a feature.
Includes the following data:
- Session ID
- Timestamp
- Feature Name
- Feature ID (to correlate with a matching Start)
- Extended Keys if configured