About Consumers

In addition to presenting performance results based on the performance of individual transactions, services, and endpoints, Business Transaction Management allows you to view performance results in terms that are meaningful to your business. You can see transaction performance segmented by business criteria: your suppliers, your users, your re-sellers, or your customers. And you can see this information even in those cases when the object of interest participates in a series of different transactions. To this end, Business Transaction Management provides a consumer business object that you can define to segment performance data using the criteria that is important to you. You can then monitor your business objects to make sure that your objectives are being met. For example,

  • You can view custom graphs showing performance segmented by a given consumer.

  • You can have Business Transaction Management generate alerts when the performance of your system for a given consumer does not meet the targets you define.

Consumers refer to Business Transaction Management consumer business objects; a consumer is an instance of the Consumer business object you have defined for your environment. The default name "Consumer" implies that this business object could be the initial client of a transaction; but it could also be the country or city where an order originates, a company name, and so on. Throughout this section, we will use the default name "consumer," with the understanding that this can refer to the wider range of criteria just mentioned.

To make the actual segmentation criteria more clear, the Business Transaction Management administrator can customize the consumer label that appears on fields, buttons, and links in the Management Console. For example, your administrator could change the label from "Consumer" to "Department", "Supplier", or any other descriptive term.

The following sections explain how you set up consumers:

Setting up Consumer Segmentation

In the simplest case, to obtain performance segmentation by consumer, you must do the following:

  1. On the start operation for a transaction, create a property whose value is the request message element that uniquely identifies the consumer. It could be an ID number, a social security number, a name, or an email address. If the consumer is not a person, it could be a company name, a code identifying the company, and so on. (The information you choose to supply for the property value can be based on a single message element, an xpath expression, or content in the message header.)

  2. Map this property to the consumer attribute on the consumer business object. This mapping process is called mapping messages to consumer.

  3. Enable consumer segmentation in your transaction definition.

The figure below shows a simple mapping between a property called email (associated with the request.submit.order.customerEmail element of the starting message of a transaction) and the default attribute of the business object, Consumer Name.

Description of simple_bus_obj.gif follows
Description of the illustration simple_bus_obj.gif

If consumer segmentation is enabled for the transaction, once traffic starts to flow, Business Transaction Management inspects the value of the email property of this transaction as part of its measurement gathering. For this example, let's assume the property value is 123hop@gmail.com:

  • If it finds an existing consumer whose name is 123hop@gmail.com, it records measurements for that consumer.

  • If it does not find a consumer of that name, it creates the consumer, assigns it the value of the property as its name, and records measurements for it.

The business object that Business Transaction Management provides by default is adequate for the simple case where you are monitoring one specific kind of consumer and you are satisfied to use the value of the property as the consumer name. In reality, you might need to handle more complicated situations. To do that, you can customize the definition of the consumer business object by adding custom attributes. Using these attributes, you can teach Business Transaction Management to recognize the same consumer though the consumer is identified by different properties.

For example, what happens if we want to monitor several transactions, and in each transaction the consumer of interest is identified in a different way? In one transaction, the consumer is identified by email address, and in the other, by a social security number.

The following figure shows two transactions, Tx1 and Tx2. Tx1 has a customerEmail element mapped to the email property; Tx2 has a custID element mapped to a SSNumber property. You want Business Transaction Management to monitor both transactions and to recognize that the same consumer is involved whether that consumer is identified by the email property or by the SSNumber property. To do this, you must add two custom attributes to the Consumer business object and map each property to its corresponding attribute.

Description of complex_bus_obj.gif follows
Description of the illustration complex_bus_obj.gif

For the sake of this example, let us assume that all consumers involved in these transactions have already been created. Once traffic starts to flow, Business Transaction Management inspects the value of each of the properties shown as it observes messages. If it encounters either an email address or social security number associated with an existing consumer, it records measurements for that consumer. This makes it possible to see performance information for a given consumer that is an aggregate of performance across all the transactions in which the consumer participates.

In this more complicated case, setting up consumer segmentation would involve the following:

  1. Add custom attributes to the consumer business object that will correspond to the properties you will create in Step 2.

  2. For each transaction you want to segment by consumer: Create a property whose value is the request message element that uniquely identifies the consumer.

  3. Map each property to its corresponding business object custom attribute.

  4. Enable consumer segmentation in your transaction definition.

(You can do steps 2-4 all at once when you define consumer segmentation for a transaction.)

Creating Consumers

Business Transaction Management creates consumers in one or more of the following ways:

  • If you have set up consumer segmentation, Business Transaction Management automatically creates a consumer whenever it encounters a message for a consumer that does not already exist.

  • According to the information you provide when you choose Create > Consumer and supply values for the consumer name and attributes.

  • According to the information you provide using the importBusinessObject command.

If you create consumers manually, as with the last two options, consumer monitoring will only start after you set up consumer segmentation.

Changing the Default Consumer Name

By default, discovered consumers are named according to the value of the message property to which you map them. For example, if you use a property that holds an email address, the name of the consumer displayed in the Management Console is the email address of the consumer. If the value of the property is the user's full name, that name is displayed in the Management Console. You can edit the name that will be displayed for a consumer by editing the consumer profile. If you see a combination of formats used to display user names, this might result from the fact that some were created manually (and assigned an actual name) and others were added automatically and assigned the value of the property used to map messages to consumers.

If you decide that you want to change the default consumer name, please note that you must add an attribute to the business object that corresponds to the property used for segmentation and that you must then map the property to that attribute. In the following illustration, an Email custom attribute is mapped to the email property. If you then change the default consumer name to an actual name (by editing the consumer profile), Business Transaction Management will continue to gather measurements for this consumer when it sees the message and evaluates the email property, but it will display the name you supply in the main pane of the Consumers view and in the Name field of the Profile tab for the consumer.

Description of simple_bus_obj_attr.gif follows
Description of the illustration simple_bus_obj_attr.gif