Experience League | Image

L760 - Campaign Classic: Improving your Performance

Prerequisites

  • Be familiar with Adobe Campaign

Key Takeaways

In this training, you will learn to:

  • Use the HeatMap
  • Detect anomalies
  • Prevent issues by applying best practices
  • Monitor the workflows

A screenshot of a cell phone Description automatically generated

Lesson 1 - How to use the Workflow HeatMap

Objective

  • Overview about HeatMap functionalities

Use the HeatMap

Adobe Campaign Workflow HeatMap consists in a color-coded graphical representation of all the workflows that are currently running. By providing a quick overview on the number of concurrent workflows, it enables the Adobe Campaign platform administrators to monitor the load on the instance and plan workflows accordingly.

For this lesson, we will demonstrate and search for the top major issues related to Workflow planification by using the different filters:

  • See and understand concurrent workflows
  • Find individual workflows and all related activities
  • Filter workflows by duration to see which workflows may encounter issues
  • Search by workflow type (technical workflows or campaign workflows) and discover related issues
  • Look for a specific workflow to analyze and apply best practices (naming convention, JavaScript…)

Detect anomalies

Goal: manipulate Workflow HeatMap feature and find concurrent workflows.

Find concurrent Workflows

As a Campaign administrator, the Workflow HeatMap can help you to understand the load on the instance and plan existing or new workflows at appropriate times.

From the Campaign Workflow HeatMap view, click the Filters button.

Set activity duration to 0s to find all concurrent activities:

Explore results to understand the load on the instance and take appropriate actions:

If you encounter performance issues and if one or more red cells are displayed in the grid, consider changing several workflows starting times.

To avoid peaks and prevent the instance from overload, look at the HeatMap before planning new workflows and choose the best time. Consider time slots corresponding to grey or green cells in the grid to start new workflows.

Find long-running workflows that impact performance

The Workflow HeatMap helps you to find the longest workflows which can slow down the activity.

From the Campaign Workflow HeatMap view, click the Filters button.

Set duration to 1 hour.

Include more results by decreasing the Min duration filter.

Explore the results to find the longest workflows, who can potentially have more impact on the server and database resources (CPU, RAM, network, IOPS, and so on).

Take appropriate actions:

  • Advise users to split the longest workflows to reduce processing time.
  • Start a deeper analyze on specific workflows and specific activities (such as JavaScript, import, export, and so on) to isolate the issues and solve them more easily.

Lesson 2 - Best Practices

Objective

  • Naming & Comments best practices
  • Workflow scheduler best practices
  • How to cleanup logs automatically

Naming convention and comments

Workflow name

It’s really important to give your workflows proper names and labels. As an operator won’t always refer to the documentation, fill in the workflow's description field to summarize the process to be performed.

If the workflow is part of a process involving multiple workflows, feel free to be explicit when entering a label; using numbers is a great way to order the workflows (by Label). For example:

  1. Event import

  2. Import of delivery message qualifications

  3. Import of event delivery logs

  4. Import of tracked URLs

  5. Import of event tracking logs

A screenshot of a social media post Description automatically generated

Activity name

While developing your workflow, all activities will have a default name. While the name is generated by the tool, we recommend you rename it with an explicit name when configuring it.

The activity name can be found in the Advanced tab. Don’t leave them named queryquery1query11, but instead give them explicit names such as querySubscribedRecipients. This name will show up in the journal, and if applicable in the SQL logs, and this will help to debug the workflow when configuring it.

A screenshot of a social media post Description automatically generated

JavaScript within an activity comment

You may want to add JavaScript when initializing a workflow activity. This can be done in an activity's Advanced tab. To make spotting the workflow easier, we recommend using double dashes at the start and end of the activity label as follows: __My label__.

A screenshot of a social media post Description automatically generated

Workflow history and logs

Avoid having workflows running simultaneously. A workflow should run at a frequency not higher than 15 minutes.

Workflow logs take a lot of disk space. If a workflow is to be repeated frequently, you should check and reduce the History settings of the logs. For example, a workflow running every 15 minutes should not have a history longer than 3 days.

A screenshot of a social media post Description automatically generated

Cleanup logs

Keep the result of interim populations between two executions

This option, available in the workflow properties' General tab, can be as useful as it can be dangerous. It prevents Adobe Campaign from deleting the temporary tables created between two executions. While it could be useful for dev environments, it’s forbidden to use it on production environments and should be monitored. Keeping temporary tables could result in the size of the database increasing significantly and eventually the size limit being reached. Moreover, it will slow down the backup.

Log SQL queries in the journal

Available in the Execution tab of workflow properties, this will log all SQL queries generated by the tool from the different activities. It is a great way to see what is actually executed by the platform. However, this option should only be used temporarily during development and not activated on production.

A screenshot of a social media post Description automatically generated

Lesson 3 - Monitoring 

All your scheduled workflows running on production environments should be monitored in order to be alerted if there is an error.

In the workflow properties, select a supervisor group, either the default “Workflow supervisors” or a custom group. Make sure that at least one operator belongs to this group, with an email set up.

You can also create views on major activities to make sure troubleshooting will be easier:

Objective

  • Find workflow by state
  • Configure workflow severity level
  • Configure an alert based on execution duration

Find workflows by status

Running workflows

Create a filter to monitor running workflows. It helps to monitor what is currently have impact on the system.

A screenshot of a social media post Description automatically generated

Paused workflows

If you create a temporary workflow, make sure it will be able to finish correctly and not stay in a “paused” state. If it is paused, it would imply that you need to keep the temporary tables and thus increase the size of the database.

A screenshot of a social media post Description automatically generated

Failed workflows

Workflows can run but have a failed status. If it is failed, you may know why and decide if you should stop the workflows or repair it.

A screenshot of a social media post Description automatically generated

Severity monitoring & alerting

You can configure the severity of a workflow in the workflow properties, in the Execution tab:

  • Normal
  • Production
  • Critical

Campaign workflows (workflows created as part of a campaign/operation) with a higher severity are executed in priority in case the campaign has many processes supposed to run simultaneously.

By default, only 10 processes can run simultaneously in a campaign, according to the option NmsOperation_LimitConcurrency. For example, if a campaign contains 25 workflows, workflows with a higher severity will then be executed in the first pool of 10 processes.

A screenshot of a social media post Description automatically generated

Alert on execution duration

A single workflow should not run for more than one hour. Less than 10 minutes should be the general processing time. A workflow that runs for more than an hour is a sign that it's using a lot of resources. Likewise, a single activity in a workflow that runs for more than 10 minutes is a sign of a heavy query.

You can set the maximum time of execution for an activity. It's located under "max. execution duration" in the Advanced tab of the activity. If the tasks run for longer, an alert will be displayed in the instance monitoring web page.

A screenshot of a cell phone Description automatically generated

Extra - How to lock workflows to prevent simultaneous execution

When a workflow is restarted several times, simultaneous executions must be prevented in most cases. This can be accomplished by the use of an instance variable (ie variables that are specific to a given workflow and all its related tasks).

A screenshot of a social media post Description automatically generated

A screenshot of a cell phone Description automatically generatedA screenshot of a social media post Description automatically generated

A screenshot of a social media post Description automatically generated

Additional Resources

Additional resources available at adobe.com/go/summit2019-l760