Business event capture
powered by Grail
To get started with business events, you first need to define the scope of the data you want to capture. The approach depends on the source of the business events.
There are three sources for business events:
-
OneAgent
Configure using the Dynatrace menu to add capture rules, triggers, data fields, and more.
-
Web and mobile RUM
RUM business events can be obtained by leveraging a dedicated method of the RUM JavaScript API, OneAgent for mobile, or OpenKit.
-
External sources
Configure external business or IT systems to send business events in JSON format to the business events API (REST endpoint).
Get business events via OneAgent
OneAgent 1.253+
To capture business events using OneAgent, you must first enable the feature.
- In the Dynatrace menu, go to Settings > Preferences > OneAgent features.
- Enable the OneAgent business events feature for the technologies appropriate for your environment such as .NET, Java, or Webserver.
Note: you need to restart the application process before you can capture business events from that process.
OneAgent can capture business events from incoming HTTP requests. Configuration requires one or more capture rules that consist of triggers, mandatory data fields, and optional event data fields.
Examples of mandatory (event.type
, event.provider
) and optional (event.category
) data fields:
Field | Type | Description | Examples |
---|---|---|---|
event.category | string | Standard categorization based on the significance of an event according to the ITIL event management standard | Availability |
event.type | string | The unique type identifier of a given event. | buy-asset , sell-asset , login |
event.provider | string | Source of the event, for example the name of the component or system that generated the event. | OneAgent , easyTrade.com , easyTravel.com |
Configure business event sources on OneAgent
OneAgent 1.253+
To configure business event sources on OneAgent:
-
In the Dynatrace menu, go to Settings > Business Analytics > Business Event Sources > OneAgent.
-
Select Add new capture rule and name your rule.
-
Select Add trigger to define a condition that will be used to trigger a business event.
Determine the data source for your trigger, such as
Body
,Path
, orHTTP header
, and then select an operator and define a value. This allows you to match content retrieved from the source to the value you define. When OneAgent matches the trigger, a business event is generated.- The Summary tab displays the entire trigger rule (for example,
Request - Path starts with '/api/trade/BuyAssets
). - By default, the
search for
value is not case-sensitive. Turn on Case sensitive if you want your trigger to consider the case of the source. - Triggers are connected with
AND
, so if you set multiple trigger rules, all of them must be fulfilled to capture a business event. - The first matching rule get executed per Agent per request.
- It is recommended to set specific trigger rules. If a trigger rule is too general and results in multiple identical rule matches, you will get multiple business events.
- The Summary tab displays the entire trigger rule (for example,
-
Select the Event provider source and value.
This describes the source of the event, such aswww.easytrade.com
. The data source for this field can be a fixed value that you provide, or it can be extracted from the event. -
Select Event type source and value.
This describes the type of event the event provider is sending, such asAsset purchase
. -
optionalSelect Event category source and value to add helpful context to the event (for example, add a stock exchange name such as
NASDAQ
).You now have configured a business event that will be generated each time the trigger criteria are matched. This might be sufficient if all you need is to count the number of matching events (for example, to answer the question of how many asset purchases were made). In most cases, however, you will want to add event attributes for more granular insight. Attributes are data fields extracted from the event JSON payload.
-
Select Add data field in Event data. Provide a field name, and then provide the data source and value from the JSON payload. This describes the attribute-value pair that will be associated with the event, such as
accountId
,amount
,instrumentId
, orprice
. Adding such pairs can help you answer more complex questions, such as how many accounts purchased a particular asset, which assets are most often purchased, or which accounts make the largest asset purchases.
The buy-asset request JSON file:
{
"accountId":6,
"amount":10,
"instrumentId":1,
"price":157.025
}
- Select Save changes.
Example of data extraction
The following table shows additional examples of how to extract data from incoming JSON payloads.
Field name | Source | Path | Description |
---|---|---|---|
transactionId | Request-Body | transactionId | Example of capturing a top-level attribute |
userName | Request-Body | user.userName | Example of capturing a nested attribute |
priceOfItems | Request-Body | items.0.price | Example of capturing the first array item attribute |
Last tag | Request-Body | tags.-1 | Example of capturing the last element of an array |
Second last tag | Request-Body | tags.-2 | Example of capturing the second last element of an array |
FullBody | Request-Body | * | Example of capturing a full request body |
ContentType | Request-HTTP Header | Content-Type | Example of capturing a certain request header |
Action | Request-Query String parameters | action | Example of capturing a certain query string parameter |
Get business events from RUM
Business events are available for all Dynatrace RUM technologies (web RUM, mobile RUM, and OpenKit). RUM business events can be obtained by leveraging a dedicated method of the RUM JavaScript, OneAgent for mobile, or OpenKit.
To enable RUM business events, please contact a Dynatrace ONE product specialist by selecting the chat button in the upper-right corner of the Dynatrace menu bar.
Check the sections below for instructions on how to report business events for different platforms.
To report business events for the native part of Cordova apps, follow the instructions for Android or iOS. For the web part, use the RUM JavaScript.
Ingest business events from API
Business Analytics offers a dedicated API to ingest JSON format data into Dynatrace.
To access the dedicated Environment API:
-
In Dynatrace, open the User menu by selecting the User icon in the upper-right corner.
-
Select Environment API v2.
-
Expand Business events, then POST section.
- Endpoint-Url:
[https://\|https:] {environmentId}.dynatrace.com/api/v2/bizevents/ingest
- Method: POST
- Authentication: OAuth
Note: Business Events API limits the data size to 1 MB per request.
- Endpoint-Url:
Request body
- Pure JSON: no mandatory fields are required for ingest
Example payload using pure JSON:
{
"paymentId": "pid-{% randomnumber 1, 10000, 0, 0 %}",
"orderId": "oid-{% randomnumber 1, 10000, 0, 0 %}",
"amount": {% randomnumber 1, 10000, 0, 0 %},
"event.type": "com.bizingest.json.flat"
}
In addition to the pure JSON format, Dynatrace offers the CloudEvent and the CloudEvent Batch formats.
- CloudEvent
-
In the CloudEvent standard, mandatory fields exist and can be enriched by additional data fields. The mandatory fields are:
- Specversion
- Source - automatically converted into
event.provider
- Type - automatically converted into
event.type
- Id - automatically converted into
event.id
Note: Your additional data need to be added in the
data
object fields. In the example above, the additional data ispaymentId
,orderId
,firstName
, andlastName
. -
CloudEvent batch (batch ingest of events): as in the previous example, mandatory fields exist and can be enriched by additional data fields, such as
paymentId
andorderId
.
Set up OAuth for API access
To set up OAuth for API access, perform the following steps:
Create a new OAuth client
Create a new policy
Grant the policy to a group
Obtain an access token
Create a new OAuth client
You can create new OAuth clients on the account management page in your Dynatrace tenant, following the steps mentioned below.
- In the user menu in the upper-right corner of the page, go to Account management > Account Management API > Create new Client.
- Provide a description and email addresses of your users.
- Choose the needed scope by selecting one or more options: Read logs, Edit logs, Read metrics, Edit metrics, Read events, and Write/edit events.
- Select Generate client. Make sure to save your client's secret since you won't have the chance to see it again.
Create a new policy
To create a new policy
- In the user menu in the upper-right corner of the page, go to Account management > Identity management > Policy management.
- Select Add policy, name the policy and following policy statement:
Allow storage:events:read, storage:events:write
Grant the policy to a group
You can assign the new policy to a group where your user belongs, or create a new group where you will add your user.
- In the user menu in the upper-right corner of the page, go to Account management > Identity management > Group management.
- Select Edit
to edit a group, go to the Policies tab, and select the policies that you need to bind (for example, the ones you created).
- Select Save.
If you have access to multiple tenants, make sure that you work on the right one. You get an overview of all tenants by selecting Accounts in the upper left corner below the Dynatrace logo.
Obtain an access token
You can use the newly created OAuth client to obtain an access token for the API. Follow the OAuth 2.0 flow as described below and send a request to the access token url. You will receive a bearer access token that you can use for authentication in the other endpoints.
-
Method: POST
-
Grant Type: client_credentials
-
Access Token Url:
- Live:
https://sso.dynatrace.com/sso/oauth2/token
- Live:
-
Client Id: your client ID
-
Client Secret: your client secret
-
Scope:
storage:events:read, storage:events:write
-
If possible, send client credentials in the header.
Business event enrichment
When you report business events, Dynatrace enriches them by adding additional context. For example, Dynatrace adds information about your application, geolocation, device, and more.
For details, see Business event enrichment.