Configure Tracking

This topic describes the tracking profiles available in Windows Server AppFabric and how you configure the tracking profile for a service. You cannot configure a tracking profile for a server, site, or application.

Tracking Profiles

The workflow runtime produces a stream of events that follow its execution. The stream can be monitored by one or more consumers known as tracking participants. You can customize the event stream for a particular tracking participant by specifying a tracking profile. A tracking profile is a declarative definition of filters against event type and the data that needs to be queried from the workflow instance (for example, the value of a variable) for a given event.

The following configuration sample shows the basic structure and attributes for a tracking profile definition (this example is the default health monitoring profile, declared in the root Web.config file).

<trackingProfile name="HealthMonitoring Tracking Profile">
   <workflow activityDefinitionId="*">
         <workflowInstanceQueries>
               <workflowInstanceQuery>
                     <states>
                           <state name="Started" />
                           <state name="Completed" />
                           <state name="Terminated" />
                           <state name="Canceled" />
                           <state name="Unsuspended" />
                           <state name="Persisted" />
                           <state name="Aborted" />
                           <state name="UnhandledException" />
                     </states>
               </workflowInstanceQuery>
         </workflowInstanceQueries>
         <activityStateQueries>
               <activityStateQuery activityName="*">
                     <states>
                           <state name="Closed" />
                     </states>
               </activityStateQuery>
         </activityStateQueries>
         <faultPropagationQueries>
               <faultPropagationQuery faultSourceActivityName="*" faultHandlerActivityName="*" />
         </faultPropagationQueries>
         <customTrackingQueries>
               <customTrackingQuery name="*" activityName="*" />
         </customTrackingQueries>
   </workflow>
</trackingProfile>

AppFabric includes five predefined tracking profiles, plus the option to turn off tracking profiles. The following table describes these profiles.

Tracking Profile Description

ErrorsOnly Tracking Profile

Subscribes to the following WF Tracking events:

  • Unhandled exceptions

  • Aborted instances

  • Faulted propagation events

HealthMonitoring Tracking Profile

Subscribes to all of the WF Tracking events included in ErrorsOnly Tracking Profile, plus the following:

  • All WF instance state change events for states of Started, Completed, Terminated, Canceled, Unsuspended, Persisted, Aborted, and UnhandledException

  • WF activity closed and faulted events

  • All CustomTrackingRecords emitted from WF activities

EndToEnd Tracking Profile

Subscribes to all of the WF Tracking events included in HealthMonitoring Tracking Profile, plus the following:

  • All WF instance events

  • WF activity events for Executing and Closed states

  • All CustomTrackingRecords emitted from WF activities

Troubleshooting Tracking Profile

This profile includes all the WF Tracking events in the EndToEnd Tracking Profile. This is the most verbose tracking profile, and subscribes to all tracking records emitted from WF instances.

Off Tracking Profile

Tracking profile is not configured. Instrumentation events are not enabled and thus no metrics are displayed in the Dashboard.

Note

Certain functionality in AppFabric depends on using at least the HealthMonitoring tracking profile. If the monitoring level is off or set to ErrorsOnly, or if you have customized the level by disabling the tracking profile or setting the ErrorsOnly tracking profile, the Dashboard does not display the Tracked WF Instances history. Additionally, if you create your own custom profile you need to include all the attributes of the default Health Monitoring profile for all AppFabric monitoring tools to remain fully functional. For example, the Clear-MonitoringDatabase cmdlet requires that the profile subscribe to WF instance completed events in order for PurgeMode to purge only completed WF tracked instances from the monitoring store.

Configuring a Tracking Profile

The following procedure shows how to change the tracking profile for your service.

To configure the tracking profile for a service

  1. Start or switch to IIS Manager.

  2. In the Connections pane, select the server, site, or application you want to configure.

  3. In the center pane of the IIS Manager window, find the section titled AppFabric. Double-click the Services icon.

  4. Select the service you want to edit from the Services list. Right-click the service, and on the context menu, click Configure.

  5. When the Configure Service dialog box appears, click the Monitoring tab.

  6. Find the Workflow Tracking profile section. The current tracking profile name is displayed. To change the tracking profile, click Configure.

  7. The Workflow Tracking Profile Dialog Box appears. Use this dialog box to select a different tracking profile, or to import a custom tracking profile by clicking Add new. This displays the Add Tracking Profile Dialog Box that you can use to select a custom tracking profile and designate it as the active tracking profile for this service.

  8. Click OK to close the dialog box and save your changes, or click Cancel to close the dialog box without saving changes.

See Also

Reference

Configure WCF and WF for Server, Site, or Application: Monitoring Tab
Configure Service: Monitoring Tab
Workflow Tracking Profile Dialog Box

Concepts

Monitoring Applications

Other Resources

Tracking Profiles