Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

In the Services tab you have two predefined services, Supervision Service and Order Service. You can also add and configure different workflow services that have been developed using the Development Toolkit.

...

titleNote!

The Services tab is only

...

for

...

Image Removed

Preferences dialog - Services tab

...

Add Workflow Service

...

Click the Add icon to select a service to be used by the Workflow. In the Add Workflow Service dialog, select a service from the list and click Apply after each selected service. Click OK when finished.

...

Remove Workflow Service

...

Select a service from the Services list and click the Remove icon to remove the service from the workflow.

...

This section describes the Supervision Service. With this service you can create decision tables for triggering different actions to be executed based on current MIM values. This may, for example, be useful for overload protection purposes.

Overview

The Supervision Service uses decision tables, where you can define different actions to be taken depending on which conditions that are met; log in System Log, use an overload protection configuration, or generate an event. You can use any MIMs available in the workflow for configuration of conditions, e g throughput, queue size, etc.

Image Removed

Supervision Service concept

The Supervision Service is available for real-time workflows, and can be configured in the Services tab in the Workflow Properties dialog. The supervision service with action overload can also be manually triggered with mzsh commands, in case it is needed for maintenance or other purposes. If the service is manually triggered, it has to be reverted to automatic mode for the settings in the Services tab to take effect once again.

Configuration of the Ordered Service

The Ordered Service is required by the Ordered Routing Queue Strategy. A function defined in APL code will extract values from any routed UDR or bytearray to decide which partition queue to add it to.

Ordered Routing allows you to utilize multicore cpus, but still have deterministic order. If we have session updates from a collection point that are encoded to a user defined UDR type Ordered.Subscriber.Update with the field 'id' containing a session id, the following example shows how the values are read and added to the ordered.SessionIdentifier that the queue strategy will use to hash and select a partition based on.

...

titleExample - Ordered Routing Queue Strategy
Code Block
import ultra.Ordered.Subscriber;
void route(ordered.SessionIdentifier si, any input) {
     if(instanceOf(input, Update)) {
         Update u = (Update)input;
         ordered.addInteger(si, u.id);
     }
}

Multiple values can be added to the SessionIdentifier, it will calculate the hash based on them all after the route function returns. If there is more than one type routed into the workflow, there needs to be a longer if-else chain, with a clause for each type.

FunctionDescription
ordered.addInteger(ordered.SessionIdentifier si, int i)Add the value of integer i to the SessionIdentifier
ordered.addString(ordered.SessionIdentifier si, string s)Add the value of string s to the SessionIdentifier
ordered.addByte(ordered.SessionIdentifier si, byte b)Add the value of byte b to the SessionIdentifier
ordered.addBytes(ordered.SessionIdentifier si, bytearray ba)Add the value of bytearray ba to the SessionIdentifier
ordered.addByteRange(ordered.SessionIdentifier si, bytearray bs, int offset, int len)Add the values of bytearray ba from offset and the next len bytes to the SessionIdentifier
ordered.setPartition(ordered.SessionIdentifier si, int partition)Alternatively, if more control over partition selection is wanted one can set the partition id explicitly, this will override any values added to the SessionIdentifier.

If no values are added to the SessionIdentifier it will fall back to send the UDR to the first partition (partition zero).

Configuration of the Supervision Service

To open the configuration for the Supervision Service, open the Workflow Properties dialog in a real-time workflow configuration, click on the Services tab, click on the Add button, select the Supervision option and click OK.

The configuration for the Supervision service will now appear on the right side of the Services tab.

Image Removed

Configuration for Supervision Workflow Service

...

Execution Interval (ms)

...

Enter the time interval, in milliseconds, with which current MIM values should be checked against the conditions in the decision tables. This configuration will be valid for all decision tables.

...

All the decision tables you have configured are listed in this section. Click the Add button to add a new decision table. It may be a good idea to have different decision tables for different purposes.

Note
titleNote!

Even though you can change the order of your decision tables, this does not affect the functionality. All decision tables will be applied.

Creating a Decision Table

When you select to add a new decision table, the Add Decision Tables dialog opens.

Image Removed

Creating a Decision Table

In this dialog you configure your decision table. In a decision table, you determine which action to take depending on which conditions are met. These conditions and actions are configured in separate lists and will then be available for selection in the decision table configuration.

...

Decision Table

...

Enter a name for your decision table in the Name field.

...

Click the buttons Action Lists and Conditions Lists to configure the different conditions and actions for this table.

...

You configure your decision tables by following these steps:

...

Configure conditions. The conditions you configure are based on different MIM parameters having defined values.
 

...

Tip
titleHint!

If you are using Diameter or Radius agents in your workflow, you can also select from a range of Diameter and Radius specific overload protection strategies in order to only reject specific types of messages. See Diameter Agents and 9.60 Radius Agents for further information about these strategies. 

 

...

Create the decision table, i e set the conditions to either True , False or - (which means ignore) and select which action to take.
 

...

Set a name.
 

...

Note
titleNote!

When a condition is evaluated to true, the corresponding action will be performed only once, until any other condition is also evaluated to true. Generally, this means that a minimum of two conditions is required in the decision table.

 

Configure conditions

To configure conditions:

Image Removed

Add Condition

...

Left Operand

...

Select a MIM parameter that you want to use for you condition in this section.

...

This is the drop-down list located between the two operands. Select either > (larger than),< (smaller than), == (equals), or != (not equal).

...

In the Add Decision Tables dialog, click the Condition Lists button.
 

...

Click the Add button to open the Add Conditions dialog.
 

...

Click the Add button to add conditions.
 

...

In this dialog, select a MIM value for the left operand.
 

...

Select an operator.
 

...

Enter a constant, or select a MIM value, for the right operand.
 

...

Click Add to add the condition to the condition list.
 

Repeat steps 4 to 7 until you have added all the conditions you want to have in the condition list and then click Close when you are finished.

You will return to the Add Conditions dialog.

Image Removed

...

ItemDescription

List

Enter a name for the condition list in the Name field.

Match

Select if you want all the conditions in the list to be matched or, if only one condition is required to match by selecting either of the buttons Any of the Following or All of the Following.

ConditionsThis section contains all the different conditions you have added to the list.

...

Select if you want to match all conditions in the list, or if you want to match one of the conditions in the list.

...

Configure actions

To configure actions:

...

In the Add Decision Tables dialog, click the Action Lists button.
 

...

Click the Add button to open the Add Actions dialog.
 

Click the Add button to add actions.

Image Removed 

Add Action

...

In this drop-down-list, you select if you want an entry to be logged in the System Log, or if you want an  Overload Protection configuration to be configured, or if you want to generate a  Supervision Event that can be sent to various targets depending on how you configure your Event Notifications.

Note
titleNote!

The Overload Protection option is only available if you have Diameter or Radius agents in your workflow. 

...

Enter a description for this action.

...

This option is only available when you have selected to configure an Overload Protection action and determines if you want to apply this action on all types of requests or if you only want to apply them to the requests following a selected Diameter or Radius overload protection strategy.

...

In this dialog, select which type of action you want to use; System LogOverload Protection or Supervision Event. Depending on what you choose, the options in the dialog differ.
 

...

  • Enter a description in the Description field.
  • Select the percentage of messages you want to reject; 0, 25, 50 or 100 % in the Reject drop-down list.

  • In the Strategy drop-down list, you select if you want the action to be applied for all requests, or only for requests following any of the Diameter overload protection strategies.
     

...

  • Enter a description in the Description field.

  • Enter the event content in the Content field. This content can then be used when configuring Event Notifications for this event.
     

...

  • Enter a description in the Description field.

  • Select a severity in the Severity drop-down-list.

  • Enter an optional message in the Message field.
     

...

Repeat step 4 to 8 until you have added all the actions you want to have in the action list and then click  Close  when you are  finished.

You will return to the Add Actions dialog.
Image Removed
Add actions
ItemDescription

List

Enter a name for the action list in the Name field.

Action

This section contains all the actions you have added in this list.

...

Give the list a name and click the Add button to add the action list in the Create Decision Tables dialog.
 

...

Configuring a Decision Table

In the Decision Table tab you will now have two columns; Conditions and Actions.

Image Removed

Creating a Decision Table

The Conditions column contains all the condition lists you have created, and in the Actions column you can set a condition to either True (true), False (false), or - (Ignore), and then select which action you want to trigger when the settings in the decision table match.

Depending on how many conditions you have configured, there may be many different combinations that you may want to configure different actions for. To add another column, right-click the Action column heading and select the option Add Column.... A new column will then be added. This can be repeated for all the different combinations you want to have.

Note
titleNote!

Only one action can be selected for each set of combinations.

Info
titleExample - Decision Table

Image Removed
Decision table example

The following actions will be taken during the following conditions:

Case 1 
If the Incoming messages exceeds 50, a Supervision Event will be triggered.

Case 2 
If the Incoming messages exceeds 100, 25 % of the incoming Diameter Credit-Control Initial requests will be rejected.

Case 3 
If the Incoming messages exceeds 150, 100 % of the incoming Diameter Credit-Control Initial requests will be rejected.

MZSH Commands

If you need to manually trigger or clear the supervision service with action overload, e g for maintenance or other purposes, you can use the mzsh wfcommand. See the /wiki/spaces/MD82/pages/3778935 for further information about thisRealtime workflows. The Services tab is not available on the desktop UI, refer to https://infozone.atlassian.net/wiki/x/ngFb on our Legacy Desktop for more information.