Data Planes

What are Data Planes?

Data planes are the logical groupings of the runtimes in the landscape. You can create data planes by grouping the runtimes based on the selection criteria applied to the following fields of the runtime:

Assume that John Doe Enterprises makes use of the AWS and Azure versions of the Software AG Cloud platform. It has runtimes scattered in three different regions - in the United States, Europe, and Australia as shown in the figure. There are three staging runtime environments for each region, including development, pre-production, and production. You can logically group these existing nine runtimes based on your requirement. In this case, the following three data planes are formed:

After adding these data planes, the API Control Plane can now manage and monitor all the three data planes and its associated assets. You can take informed business decisions based on the data plane performance metrics. For example, if an API makes fewer transactions in one region than in the other two regions, necessary action is taken to improve their business in that region with fewer API transactions.

Manage Data Planes

The Manage data planes page lists the data planes in API Control Plane.

As shown in the following figure, the highlighted areas on the Manage data planes page allow you to customize the rows and columns of the data plane list, add, search, filter, view, edit, and delete the data plane.

Adding a data plane

This section explains how to add a data plane to the API Control Plane. To make informed business decisions, you must logically group the added runtimes and form data planes to analyse how the same API is consumed differently in each data plane.

This example explains how to add the Dataplane_Dev data plane by grouping all the development environment in the US, Europe, and Australia regions.

Before you begin:

Ensure that you are assigned to the API platform providers user group to perform this task.

To add a data plane

  1. Click the Data planes tab.
    The Manage data planes page appears.

  2. Click the Add data plane button.
    The Add data plane page appears displaying the Step 1 Basic Details section.

  3. Type the name of the data plane as Dataplane_Dev in the Name field.

  4. Type a description for the data plane in the Description text area.

  5. Upload the file in the Icon drop area using one of the following ways:

    • Drag and drop the file
    • Click the Browse button and select the file

    If the file is not uploaded, API Control Plane uses the Default icon.

    Note
    Make sure the file size does not exceed 1 MB. Also, ensure that the file you upload are in one of the following formats:
    • svg
    • jpeg/jpg
    • png
  6. Click the Next button.

    The Step 2 Tags section appears.

  7. Type the tag name as Dataplane_Dev in the Tag Name field and click the Enter button.
    After the Dataplane_Dev tag is added, the tag appears below the Tag Name field.

    Note
    You can add multiple tags to a data plane. Ensure that you do not add similar tag to a data plane.
  8. Click the Next button.
    The Step 3 Runtime Selection section appears.

  9. Select one of the following operators:

    • OR. Specifies that one of the runtime selection criteria must be applied.
    • AND. Specifies all the runtime selection criteria must be applied.
  10. Select the criterion as Runtime Name from the Criteria drop-down menu.

  11. Select the operator as Starts with from the Operator drop-down menu.

  12. Type the value corresponding to the selected criteria as Dev_ in the Value field.

    Note
    Click the Add more criteria button to add multiple runtime selection criteria. Click Show applicable runtimes to list the runtimes that match the selected criteria.
    Important
    When you add a runtime that starts with the name Dev_, API Control Plane automatically maps the runtime to this data plane.

  13. Click the Save button.
    The added Dataplane_Dev data plane gets listed in the Manage data planes page.

    Similarly, add the rest of the data planes in the landscape to API Control Plane.
    By default, the data plane list is sorted by the Name column. You can also sort the Runtimes column in ascending or descending order Alternative flow

You can also use the Request: POST/api/assetcatalog/v1/dataplanes REST API to add the data plane without using the API Control Plane UI. For details about the REST API, see Runtime REST APIs.

Next Steps

Monitor Data Planes

Monitoring data plane enables you to monitor and analyze the key performance indicators (KPIs) of data planes. It is crucial to maintain the reliability, security, and optimal performance of all runtimes associated with data planes.

Monitor data planes using API Control Plane in the following ways:

Before you begin

Ensure that you have the API platform providers or the API product managers functional privilege to perform this action.

Monitoring all data planes

This section explains how to monitor the business metrics of all data planes in a single view, which enables you to identify the top performing and under performing data planes.

To monitor all data planes in the landscape

  1. Click the Data planes tab.
    The Manage data planes page appears.

  2. Click the Monitor on the top left corner of the page.

    By default, the Monitor data planes page displays the metrics of all data planes for the last 24 hours. If you want to view the metrics for a different time range, select from pre-defined or custom option in the time range drop-down list (that appears on the top right corner of the page) based on your requirement and click the Refresh icon.

    Note
    Since webMethods.io Developer Portal does not send performance metrics to API Control Plane, only the Status and Availability widgets are applicable for Developer Portal runtime type. Therefore, data is populated only in these two widgets. If the data plane consists solely of Developer Portal runtime type and no other runtime types, only the Status and Availability widgets will be rendered on the Monitor data planes page; the remaining widgets will not be displayed.

Widgets in detail

The widgets in the Monitor data planes page are explained in detail as follows:

Status, performance & used capacity

This widget provides a comprehensive view of all data planes by displaying their status, performance, and used capacity.

Status
The status of data plane indicates the health of the data plane. It is determined by the availability of all runtimes associated with that data plane. The status of the data plane can be one of the following:

Status Description
Green indicates that the data plane is in a healthy state. It means that the status of all runtimes in that data plane are green and available.
Amber indicates that the status of atleast one runtime in that data plane is red.
Red indicates that the data plane is not in a healthy state. It means that the status of all runtimes in that data plane are red.
Grey indicates that there is no adequate data to compute the availability of runtimes in the data plane.
For example, if you register a runtime an hour ago and try to view the dashboard by applying the Last 24 hours filter, the status appears grey due to the lack of available data during that time period.

For details about how to determine the availability of runtimes, see Availability.

Performance
Performance shows how good each data plane is performing based on two metrics - error rate and latency. The threshold for the latency and error rate are set based on the user preference. For details about setting the performance threshold, see Change threshold settings. For details about how to determine the error rate and latency, see Error rate.

The performance status of the data plane can be one of the following:

Performance status Description
Green indicates that both latency and error rate threshold values are within the acceptable limit.
Amber indicates that either latency or error rate threshold value is above the acceptable limit and within the warning limit.
Red indicates that both latency and error rate threshold values are above the unacceptable limit.
Grey indicates that there is no adequate data to compute the performance of the runtimes in the data plane.
For example, if you register a runtime an hour ago and you try to view the dashboard by applying the Last 24 hours filter, the status appears as grey due to the lack of available data during that time period.

How to determine the latency for all data planes?

\[\text{Latency Of a data plane} = \frac{\text{Total latency of runtime A} + \text{Total latency of runtime B} + …}{\text{Total transactions of runtime A +Total transactions of runtime B + …}}\]

where:

\[\text{Total latency of a runtime} = \text{Average latency of the runtime} * \text{Total transactions of the runtime}\]

Example:
Let’s determine the latency of all data planes for 6 hours. Let’s assume:

Runtime Total latency Total transactions
A 0.05ms 60
B 0.08ms 80

$\text{Latency of the data plane for 6 hours}= \frac{0.05+0.08}{60 + 80} = 9.28ms$

Used capacity
The used capacity of the data plane shows the percentage of storage used by all runtimes in the data plane. The used capacity status of the data plane can be one of the following:

Used capacity status Description
Green indicates that the capacity rate is lesser than or equal to 30%
Amber indicates that the capacity rate is greater than 30% and lesser than or equal to 70%
Red indicates that the capacity rate is greater than 70%
Grey indicates one of the following:
  • there is no adequate data to compute the capacity rate. For example, if you register a runtime an hour ago and try to view the dashboard by applying the Last 24 hours filter, the status appears grey due to the lack of available data during that time period.
  • the capacity is not defined for all runtimes in the data plane.

How to determine the used capacity of the data plane?

\[\text{Used capacity of the data plane} = (\frac{\text{Actual TPS of runtime A} + \text{Actual TPS of runtime B}}{\text{Expected TPS of runtime A} + \text{Expected TPS of runtime B}})*100\]

Example: Let’s see how to determine the used capacity of a data plane. Assume that you have defined the capacity as 10000 transactions per hour for runtime A. For more details about how to define the capacity of a runtime, see Editing a runtime.

The expected TPS of the runtime A = $\frac{10000}{1hr * 60 min * 60secs} = 2.77$ transactions per second.

Let’s assume that runtime A has performed 39000 transactions in the last 6 hours.

The actual TPS of the runtime A = $\frac{39000}{6hrs * 60 min * 60secs} = 1.81$ transactions per second.

Let’s assume the expected TPS of the runtime B = 3.33 transactions per second

Actual TPS of the runtime B = 1.89 transactions per second

Used Capacity of the data plane =$(\frac{1.81+1.89}{2.77+3.33})*100 = 60\%$

The capacity of the data plane is displayed as 60% in amber.


Transactions

This widget provides a comprehensive overview of total transaction volumes across all data planes with a trend percentage, along with detailed insights into the top-performing and under-performing data planes to help you make informed business decisions. It presents both pictorial and graphical representations of the data planes based on performance, highlighting maximum and minimum transaction counts for easy comparison. Click Top data planes or All data planes tab to view its respective transactions in the data plane split and line graph.

You can customize the number of Top data planes to display using Row settings under User preferences. For more details, see Customizing row settings.

How to determine the total transactions and trend analysis for all data planes?

$\text{Total transactions of the data plane} = \text{Total transactions of runtime A} + \text{Total transactions of runtime B} + ……$

Transactions Trend analysis allows you to compare current and past transactions based on the filter you choose to spot changes, which helps in making informed business decisions and predicting future performance.

\[\text{Transactions Trend percentage for all data planes for 24 hours} = (\frac{\text{Total transactions of data plane in last 24 hours} - \text{Total transactions of data plane in previous 24 hours}}{\text{Total transactions of data plane in previous 24 hours} })*100\]

You can replace 24 hours with the time range you select in the filter. If the determined trend percentage of transactions is a:

Example:
Let’s determine the transactions trend percentage for all data planes for 24 hours:

Let’s assume:

Total transactions of data plane in last 24 hours Total transactions of data plane in previous 24 hours, that is the 24 hours prior to the last 24 hours
1000 500

$\text{Transactions Trend percentage for 24 hours for all data planes} = (\frac{1000-500}{500} )*100 = 100\%$

The determined transactions trend percentage, 100% (positive), appears in green with an upward arrow indicating increased transactions compared to the previous 24 hours.


Problematic data planes by

This widget helps identify issues across data planes by analyzing total transaction volumes, error rate, used capacity, and status of all associated runtimes. Choose a business metric to view its corresponding least and most problematic data plane. The data plane split and line graph display data plane in a sequence from the most problematic to the least.

For details on Transactions, Error rate, and Status, performance & used capacity metrics, see Transactions, Error rate, Status, performance & used capacity.

Availability

This widget shows the availability of all data planes, which enables you to monitor the health status of all associated runtimes.

How to determine the availability and trend analysis for all data planes?

\[ {\text{Availability of the data plane}} = [\frac{\left( \frac{\text{Sum of the heart beats received from runtime A during a selected time period}}{\text{Number of minutes in the selected time period}} + \frac{\text{Sum of the heart beats received from runtime B during a selected time period}}{\text{Number of minutes in the selected time period}}+.. \right)}{\text{Number of runtimes}}]*100\]

Example:
Let’s determine the availability of a data plane:

The availability of a data plane is determined based on the sum of the heart beat status value of the associated runtimes. If API Control Plane:

The frequency at which the runtime must send the heart beat status to API Control Plane is defined in the API Control Plane Agent configuration. For details about how to configure the API Control Plane Agent, see Connecting webMethods.io API Gateway to API Control Plane section in webMethods.io API Gateway Administration guide. For details about how to develop agent using SDK, see Agent SDK.

Let’s determine the availability of a data plane with 2 runtimes for 1 hour time period:

Let’s assume:

Runtime Sum of the Heart beats received Sum of the Heart beats expected
A 55 60
B 60 60

Number of minutes in 1 hour = 60

$\text{{Availability of a data plane}} = \left( \frac{{\left( \frac{{55}}{{60}} \right) + \frac{{60}}{{60}}}}{{2}} \right) \times 100$ = 95.8%

You can replace 1 hour with the time range that you select in the filter.

Availability Trend analysis allows you to compare current and past availability status based on the filter you choose to spot changes, which helps in making informed business decisions and predicting future performance.

\[\text{Availability Trend percentage for data planes for 24 hours filter} = (\frac{\text{Availability of all data planes in last 24 hours} - \text{Availability of all data planes in previous 24 hours}}{\text{Availability of all data planes in previous 24 hours}})*100\]

You can replace 24 hours with the time range that you select in the filter. If the determined trend percentage of availability is a:

Example:

Let’s determine the availability trend percentage for all data planes for 24 hours. Let’s assume:

Availability of all data planes in last 24 hours Availability of all data planes in previous 24 hours
98% 80%

$\text{Availability Trend percentage for data planes for 24 hours filter} = (\frac{0.98-0.80}{0.80})*100 = 22\%$

The determined availability trend percentage, 22% (positive), appears in green with an upward arrow indicating that the availability has increased compared to the previous 24 hours.

Error rate

Error rate indicates the percentage of errors that occurred during API transactions. This widget provides a comprehensive overview of error rate of all data planes along with the details of the data plane with maximum and minimum error rate to make informed business decisions. Click Top data planes or All data planes tab to view its respective error rate in the data plane split and line graph in the order of maximum to minimum.

How to determine the error rate and trend analysis for all data planes?

\[\text{Error count of the data plane} = \text{Total error count of runtime A} + \text{Total error count of runtime B} + {…}\]

\[\text{Error rate of the data plane} = (\frac{\text{Total error count of runtime A} + \text{Total error count of runtime B} + …}{\text{Total transactions of runtime A} +\text{Total transactions of runtime B} + …})*100\]

Example:
Let’s determine the error rate of all data planes for 6 hours. Let’s assume:

Runtime Total Error count Total transactions
A 30 60
B 25 80

$\text{Error rate of all data planes for 6 hours} =(\frac{30 + 25}{60 +80})*100 = 39\%$

Error rate Trend analysis allows you to compare current and past error rates based on the filter you choose to spot changes, which helps in making informed business decisions and predicting future performance.

\[\text{Error rate trend percentage for all data planes for 24 hours filter} = (\frac{\text{Error rate of all data planes in last 24 hours} -\text{Error rate of all data planes in previous 24 hours}}{\text{Error rate of all data planes in previous 24 hours}})*100\]

You can replace 24 hours with the time range that you select in the filter. If the determined error rate trend percentage is a:

Example:

Let’s determine the error rate trend percentage for all data planes for 24 hours. Let’s assume:

Error rate of all data planes in last 24 hours Error rate of all data planes in previous 24 hours, that is 24 hours prior to the last 24 hours
39% 52%

$\text{Error rate trend percentage for 24 hours filter for all data planes} = (\frac{0.39-0.52}{0.52})*100 = -25\%$

The determined error rate trend percentage, -25% (negative), appears in green with a downward arrow indicating that the error rate has decreased compared to the previous 24 hours.

Monitoring a specific data plane

This section explains how to monitor the business metrics of a particular data plane, which enables you to identify the top performing and under performing APIs.

To monitor a specific data plane

  1. Click the Data planes tab.
    The Manage Data planes page appears.

  2. Click the Monitor icon under the Action column corresponding to the data plane for which you want view the business metrics.

    By default, the data plane specific monitoring page displays the metrics of all runtimes for the last 24 hours. If you want to view the metrics for a different time range, select from pre-defined or custom option in the Time Range drop-down list (that appears in the top right corner of the page) based on your requirement and click the Refresh icon.

    Monitor specific data plane using the following ways:

    Health. Click Health tab to monitor the metrics of all runtimes in the data plane.

    Activities. Click Activities tab to view the list of recent activities performed in the data plane.

    Data Plane specific Monitoring: Health

    Note
    Since webMethods.io Developer Portal does not send performance metrics to API Control Plane, only the Status and Availability widgets are applicable for Developer Portal runtime type. Therefore, data is populated only in these two widgets. If the data plane consists solely of Developer Portal runtime type and no other runtime types, only the Status and Availability widgets will be rendered on the Monitor data planes page; the remaining widgets will not be displayed.

    For more details on how each widget is represented, see Widgets in detail section under Monitoring all data planes.

    Data Plane specific Monitoring: Activities