Go to primary content
Oracle® Communications Service Communication Proxy (SCP) Cloud Native User's Guide
Release 1.0
F12310-01
Go To Table Of Contents
Contents

Previous
Previous
Next
Next

Configuring Circuit Breaking and Outlier Detection

Outlier detection in SCP tracks the status of each individual endpoint of the producer NFs/NF Services. Upstream producer EndPoints that continually returns 5xx errors for service requests are ejected from the routing pool for a pre-defined period of time.

Outlier detection is a form of passive health checking of producer NFs. Outlier detection is per endpoint (of producer NF instance) and triggers when SCP receives consecutively 5xx error response and exceeds the configurable number of consecutive 5XX errors.

Circuit breaking is triggered on a per FQDN basis when its outstanding transactions exceeds a configurable value. When circuit breaking is activated, requests are alternate routed if possible or rejected otherwise.

Operator configuration:

  • Enable/Disable the circuit breaking on a per NF or FQDN basis.
  • Outstanding Transactions Threshold beyond which Circuit breaking shall be invoked on a per NF or FQDN basis.
  • Error code to be sent if the Request cannot be alternate routed also on a per NF service basis.

Table 3-8 provides information about the configuring parameters for outlier detection.

Table 3-8 Outlier Detection Parameters

Parameter Value Description Example
outlierDetection.consecutiveErrors Integer 5G defined NF Type. For example, BSF, UDR, UDSF, etc., Set the value of ConsecutiveErrors field under outlierDetection in the curl command below consecutiveErrors UPDATE Command
curl -X PUT \
 http://<Soothsayerfqdn>:8081/soothsayer/v1/systemoptions \
 -H 'Content-Type: application/json' \
 -d '{
    "instanceId": "e33ac015-081a-4e25-99c1-d1d6c332246e",
    "cb_and_od_enabled": true,
    "trafficPolicy": {
      "connectionPool": {
        "http": {
          "http2MaxRequests": 1000
        }
      },
      "outlierDetection": {
        "consecutiveErrors": 5,
        "interval": "10s",
        "baseEjectionTime": "30s",
        "maxEjectionPercent": 100
      }
    }
  }'
outlierDetection.interval String Time interval between ejection sweep analysis.

Format: 1h/1m/1s/1ms.

MUST BE >=1ms.

Default is 10s

Set the value of interval field under outlierDetection in the curl command below interval UPDATE Command
curl -X PUT \
 http://<Soothsayerfqdn>:8081/soothsayer/v1/systemoptions \
 -H 'Content-Type: application/json' \
 -d '{
    "instanceId": "e33ac015-081a-4e25-99c1-d1d6c332246e",
    "cb_and_od_enabled": true,
    "trafficPolicy": {
      "connectionPool": {
        "http": {
          "http2MaxRequests": 1000
        }
      },
      "outlierDetection": {
        "consecutiveErrors": 5,
        "interval": "10s",
        "baseEjectionTime": "30s",
        "maxEjectionPercent": 100
      }
    }
  }'
outlierDetection.baseEjectionTime String Minimum ejection duration.

Format: 1h/1m/1s/1ms.

MUST BE >=1ms.

Default is 30s.

Set the value of field baseEjectionTime under outlierDetection in the curl command below baseEjectionTime UPDATE Command
curl -X PUT \
 http://<Soothsayerfqdn>:8081/soothsayer/v1/systemoptions \
 -H 'Content-Type: application/json' \
 -d '{
    "instanceId": "e33ac015-081a-4e25-99c1-d1d6c332246e",
    "cb_and_od_enabled": true,
    "trafficPolicy": {
      "connectionPool": {
        "http": {
          "http2MaxRequests": 1000
        }
      },
      "outlierDetection": {
        "consecutiveErrors": 5,
        "interval": "10s",
        "baseEjectionTime": "30s",
        "maxEjectionPercent": 100
      }
    }
  }'
outlierDetection.maxEjectionPercent Integer Maximum percentage of hosts in the load balancing pool for the upstream service that can be ejected. Set the value of field maxEjectionPercent under outlierDetection in the curl command below maxEjectionPercent UPDATE Command
curl -X PUT \
 http://<Soothsayerfqdn>:8081/soothsayer/v1/systemoptions \
 -H 'Content-Type: application/json' \
 -d '{
    "instanceId": "e33ac015-081a-4e25-99c1-d1d6c332246e",
    "cb_and_od_enabled": true,
    "trafficPolicy": {
      "connectionPool": {
        "http": {
          "http2MaxRequests": 1000
        }
      },
      "outlierDetection": {
        "consecutiveErrors": 5,
        "interval": "10s",
        "baseEjectionTime": "30s",
        "maxEjectionPercent": 100
      }
    }
  }'