) cloud native user's guide · communication proxy (scp) in the cloud native 5g core network....
TRANSCRIPT
Oracle® CommunicationsService Communication Proxy (SCP)Cloud Native User's Guide
Release 1.0F12310-01April 2019
Oracle Communications Service Communication Proxy (SCP) Cloud Native User's Guide, Release 1.0
F12310-01
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
This software and related documentation are provided under a license agreement containing restrictions on use anddisclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement orallowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit,perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilationof this software, unless required by law for interoperability, is prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free. If you findany errors, please report them to us in writing.
If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf ofthe U.S. Government, then the following notice is applicable:
U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, anyprograms installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercialcomputer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplementalregulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operatingsystem, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to licenseterms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.
This software or hardware is developed for general use in a variety of information management applications. It is notdeveloped or intended for use in any inherently dangerous applications, including applications that may create a risk ofpersonal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take allappropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliatesdisclaim any liability for any damages caused by use of this software or hardware in dangerous applications.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of theirrespective owners.
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used underlicense and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, andthe AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registeredtrademark of The Open Group.
This software or hardware and documentation may provide access to or information about content, products, andservices from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim allwarranties of any kind with respect to third-party content, products, and services unless otherwise set forth in anapplicable agreement between you and Oracle. Oracle Corporation and its affiliates will not be responsible for any loss,costs, or damages incurred due to your access to or use of third-party content, products, or services, except as set forth inan applicable agreement between you and Oracle.
Contents
1 Introduction
Acronyms 1-1Terminology 1-2My Oracle Support 1-2
2 Service Communication Proxy System Architecture
3 Configuring Service Communication Proxy using REST APIs
Configuring CanaryRelease Options 3-2Configuring Routing Options 3-5Configuring MessagePriority Options 3-18Configuring Http2 Protocol Options for scp-gateway 3-28Configuring SystemOptions 3-35Configuring Port 3-39Configuring Circuit Breaking and Outlier Detection 3-40
4 Metrics, KPIs, and Traces
Alerts 4-1Configuring Service Communication Proxy Alert in Prometheus 4-1Configuring Service Communication Proxy Alert using SCPAlertrules.yaml file 4-2
Metrics Reference 4-4Traces Reference 4-14
iii
List of Tables
1-1 Acronyms 1-1
1-2 Terminology 1-2
3-1 Configuring Parameters for CanaryRelease Options 3-3
3-2 Parameters for RoutingOptions 3-6
3-3 Routing Options Operations 3-13
3-4 Configuring Parameters for MessagePriority Options 3-19
3-5 Message Type List 3-27
3-6 Configuring Http2 Protocol Options 3-30
3-7 Configuring Parameters for SystemOptions 3-36
3-8 Outlier Detection Parameters 3-41
4-1 Alert Reference 4-1
4-2 Metrics Reference 4-4
4-3 Traces Reference 4-14
v
1Introduction
This document provides information on how to use the Oracle Communications ServiceCommunication Proxy (SCP) in the cloud native 5G core network.
The core network in 5G follows a Service Based Architecture where network elementsadvertise and provide services that can be consumed using REST APIs by other elements in thecore. This allows for the adoption of web-scale technologies and software that are used bydifferent organizations in telecom networks.
The SCP Offloads the 5G NFs from below common functionality load balancing, routing andselection at 5G NFs.
• Routing/Selection – Consumers need to define routing rules, refresh cache, and handleapplication failures/redirects
• Load Balancing Based on static capacity, no feedback loop, and NF specific
• NF Subscription- Subscription for all producers (change in load, capacity, priority), whichmay decrease network traffic.
• NF Degradation and Failures – Timeouts can result in cascaded failures, need for circuitbreaker
• Traffic Prioritization - Message Priority assignment
• Congestion and Overload - Provides uniform load balancing/routing strategy across thenetwork.
• Dynamic discovery of 5G Topology from NRF and creation of routing rules.
The Oracle Communications Service Communication Proxy brings telecom awareness to theservice mesh and helps resolve the above issues in the 5G core network.
AcronymsThe following table provides information about the acronyms used in the document.
Table 1-1 Acronyms
Field Description
5G-AN 5G Access Network5GC 5G Core Network5G-GUTI 5G Globally Unique Temporary Identifier5QI 5G QoS Identifier5G-S-TMSI 5G S-Temporary Mobile Subscription Identifier5GS 5G System5G-EIR 5G-Equipment Identity Register(R)AN (Radio) Access NetworkAMF Access and Mobility Management FunctionAUSF Authentication Server Function
1-1
Table 1-1 (Cont.) Acronyms
Field Description
CAPIF Common API Framework for 3GPP northbound APIsIWF Inter-Working FunctionNEF Network Exposure FunctionNF Network FunctionNRF Network Repository FunctionNSI ID Network Slice Instance IdentifierNSSAI Network Slice Selection Assistance InformationNSSF Network Slice Selection FunctionNSSP Network Slice Selection PolicyPEI Permanent Equipment IdentifierPCF Policy Control FunctionQFI QoS Flow IdentifierQoE Quality of ExperienceSEPP Security Edge Protection ProxySBA Service Based ArchitectureSBI Service Based InterfaceSSC Session and Service ContinuitySSCMSP Session and Service Continuity Mode Selection PolicySMF Session Management FunctionSMSF Short Message Service FunctionS-NSSAI Single Network Slice Selection Assistance InformationUDM Unified Data ManagementUDR Unified Data RepositoryUDSF Unstructured Data Storage Function
TerminologyThe following table provides the terms and their definitions used in this document.
Table 1-2 Terminology
Term Description
Downstream Host A downstream host connects to SCP, sendsrequests, and receives responses
Upstream Host An upstream host receives connections andrequests from SCP and returns responses.
My Oracle SupportMy Oracle Support (https://support.oracle.com) is your initial point of contact for all productsupport and training needs. A representative at Customer Access Support can assist you withMy Oracle Support registration.
Chapter 1Terminology
1-2
Call the Customer Access Support main number at 1-800-223-1711 (toll-free in the US), or callthe Oracle Support hotline for your local country from the list at http://www.oracle.com/us/support/contact/index.html. When calling, make the selections in the sequence shown below onthe Support telephone menu:
1. Select 2 for New Service Request.
2. Select 3 for Hardware, Networking and Solaris Operating System Support.
3. Select one of the following options:
• For Technical issues such as creating a new Service Request (SR), select 1.
• For Non-technical issues such as registration or assistance with My Oracle Support,select 2.
You are connected to a live agent who can assist you with My Oracle Support registration andopening a support ticket.
My Oracle Support is available 24 hours a day, 7 days a week, 365 days a year.
Chapter 1My Oracle Support
1-3
2Service Communication Proxy SystemArchitecture
This section explains the Service Communication Proxy system architecture.
The Service Communication Proxy is a decentralized solution and composed of control planeand data plane. This solution is deployed along side of 5G Network Functions (NF) forproviding routing control, resiliency, and observability to the core network. The ServiceCommunication Proxy has a control plane and a data plane.
Figure 2-1 Service Communication Proxy Architecture
The Service Communication Proxy solution is deployed either as a default outbound proxy toNF instances or as a router model where SCP is configured as http2 outbound proxy at eachNFs in cloud native environments. SCP provides the following benefits to the 5G core networkarchitecture:
• Improved Load Balancing
• Routing Control
2-1
• Message Priority Assignment/Override
• Circuit Breaking and Outlier Detection
• Overload Control
• Observability
Improved Load Balancing
The 5G core network is a service based architecture which does not lend itself to an efficientload balancing of provider NFs and by introducing an Service Communication Proxy in themidst, load balancing across available NFs can be significantly improved. The ServiceCommunication Proxy has a complete view of all the messages arriving for a given NF typeand supports schemes such as round robin, weighted round robin, transaction latency, etc whilefactoring in the current load and NF availability.
Routing Control
By leveraging its position in the network, the Service Communication Proxy provides betterrouting control and bring resiliency to the network. It relieves user NFs from remembering andinterpreting complex routing rules associated with next hop selection and at the same timemakes re-routing decisions based on load conditions and health status of NF providers.
In the absence of an alternate route, the Service Communication Proxy rejects requests destinedto a failed or degraded NF, thereby acting as a circuit breaker. This prevents valuable resourcesat the user NFs from being tied up waiting for responses from providers. The ServiceCommunication Proxy can also perform Retries on behalf of the service user there by relievingthe service user from this burden and leaving it to focus on the application.
Message Priority Assignment/Override
3gpp-Sbi-Message-Priority header is defined to carry the message priority of 5G messages.The SCP includes or modifies the header based on the configuration parameters. See Configuring MessagePriority Options.
Circuit Breaking and Outlier Detection
Service Communication Proxy tracks the status of each individual endpoint of the producerNFs/NF Services. Upstream producer EndPoints that continually return 5xx errors for servicerequests are ejected from the routing pool for a pre-defined period of time. Outlier detection isa form of passive health checking of producer NFs. Outlier detection is per endpoint (ofproducer NF instance) and triggers when SCP receives consecutively 5xx error response andexceeds the configurable number of consecutive 5XX errors.
Overload Control
The overload control protects the pod (server) from overload with respect to various systemresources such as memory, CPU, or file descriptors due to several client connections orrequests.
The SCP worker and controller supports overload control based on the usage of below listedresources:
• Memory
• CPU
• File descriptors
Chapter 2
2-2
The SCP worker and controller considers itself to be overloaded if the usage associated withmemory, CPU or File descriptors exceeds the operator configured threshold values.
In the event of overload, the SCP performs the below configured actions
• Refuse new connections
• Respond to new ingress requests with a configurable Error (http status) and code (DefaultError code - 503).
Observability
The following are available in observability.
• MetricsMetrics services requests are proxied through the Service Communication Proxy, theService Proxy Controller can collect Metrics and KPIs related to message processing. Withthis information, the Service Communication Proxy is in a unique position to provide aview of health status the network at a given time. See Metrics, KPIs, and Traces.
• TracingCompliant with open API tracing
• LoggingCompliant with ELK stack.
Chapter 2
2-3
3Configuring Service Communication Proxyusing REST APIs
This section provides information for configuring Service Communication Proxy using RESTAPIs.
SCP provides the following two configuration interfaces:
• Signaling Interface
– Signaling interface is exposed by SCP data plane (i.e. SCP Worker) and this interfacewill be used to receive all 5G signaling traffic.
• Config Interface
– Config interface is exposed by SCP control plane (i.e. SCPC-Soothsayer) and thisinterface is used to receive all SCP configuration traffic.
SCP Signaling Service
• FQDN
– Consumer NFs may use SCP Signaling service's FQDN to send the 5G signalingtraffic to SCP for routing.
– K8S service FQDN will be of the form as below
* fqdn = scp-worker.<namespace>.<domain> where, namespace is K8S namespaceas provided during helm installation, and domain is as provided in helm chart(values.yaml) while installation.
* If user NFs are deployed outside of K8S cluster, then operator need to make surethat this fqdn is resolvable by consumer NFs.
* Operator can specify the public or K8s-cluster fqdn of SCP in helm chart(values.yaml, scpInfo.fqdn" = scp-worker.<namespace>.<domain>) duringinstallation.
• IP Address
– Consumer NFs may use SCP Signaling service's IP Address to send the 5G signalingtraffic to SCP for routing.
– <global.publicSignalingIP>, as provided in helm chart (values.yaml) whileinstallation.
• Port
– Consumer NFs need port info along with fqdn/ip address to send the 5G signalingtraffic to SCP for routing.
– Port is <global.publicSignalingPort> as provided in helm chart (values.yaml) whileSCP installation.
SCP Config Service
• FQDN
3-1
– Operator may use SCP Config service's FQDN to configure the SCP for routing.
– K8S service FQDN will be of the form as below
* fqdn = scpc-config-svc.<namespace>.<domain> where, namespace is K8Snamespace as provided during helm installation, and domain is as provided inhelm chart (values.yaml) while installation.
* Operator need to make sure that this fqdn is resolvable, if operating from outsideof K8S cluster.
• IP Address
– Consumer NFs may use SCP Signaling service's IP Address to configure the SCP forrouting.
– <scpc-
soothsayer.
configService.publicConfigIP>, as provided in helm chart (values.yaml) whileinstallation.
• Port
– Operator needs port info along with fqdn/ip address to configure the SCP for routing.
– Port is 8081 i.e. fixed port (not configurable).
Configuring CanaryRelease OptionsCanary testing involves simultaneous deployment of both old release and new release softwareinto a production network and then splitting the production workload such a way that just asmall fraction goes to the new release while the majority of the workload continues to bedirected at the old release. The KPIs of the new release software is monitored, and if passes thecriteria, then the canary release is removed and the main (old) release is upgraded. If the newrelease software fails, then it is removed, and developers are alerted.
The CanaryRelease inspects the version (API version) attribute of the NF Service profilepublished by the NFs (during NF registration/update) and can identify the release as a canaryversion if the version matches the configured value. The older version is considered theproduction version and the newer version of the service instance is considered the canaryrelease and the SCP distributes traffic between Production version and the Canary versionsbased on operator configuration
User can configure CanaryRelease options by following the information provided in the tablebelow. The supported operations are LIST, GET, and PATCH.Table 3-1 provides details about the operations and parameters for CanarayRelease Options.
Chapter 3Configuring CanaryRelease Options
3-2
Table 3-1 Configuring Parameters for CanaryRelease Options
Method
Scheme
FieldName
Type Authority
Port Path Parameters/Command Description
GET http - - <SCPconfigservicefqdn>
8081 /soothsayer/v1/canaryrelease/
[{ "canaryReleaseFlag": false, "serviceName": "nudm-uecm" "apiFullVersion": "1.R15.1.0", "canaryTraffic": 5}...]
Example:
curl --header 'Content-type: application/json' --header 'accept: application/ json' --request GET http://<SCP config service fqdn>:8081/soothsayer/v1/ canaryrelease/
[{
"canaryReleaseFlag": false,
"serviceName": "nudm-uecm",
"apiFullVersion": "1.R15.1.0",
"canaryTraffic": 5
}
...
]
-
Chapter 3Configuring CanaryRelease Options
3-3
Table 3-1 (Cont.) Configuring Parameters for CanaryRelease Options
Method
Scheme
FieldName
Type Authority
Port Path Parameters/Command Description
LIST - - - - - -curl --header 'Content-type: application/json' --header 'accept: application/json' --request GET http://<SCP config service fqdn>:8081/soothsayer/v1/canaryrelease/ [{ "canaryReleaseFlag": false, "serviceName": "nudm-uecm", "apiFullVersion": "1.R15.1.0", "canaryTraffic": 5}...]
-
PATCH
- canaryReleaseFlag
Boolean
- - - Set the value of fieldcanaryReleaseFlagand mentionserviceNamefor which theconfiguration is needed in theresource path of below CurlCommand. canaryReleaseFlagUPDATE Command
curl --header "Content-Type: application/json" --request PATCH --data '{ "canaryReleaseFlag": true}' http://<SCP config service fqdn>:8081/soothsayer/v1/canaryrelease/<serviceName>
Enable/Disablecanaryreleasesupport.DefaultValue: null
Chapter 3Configuring CanaryRelease Options
3-4
Table 3-1 (Cont.) Configuring Parameters for CanaryRelease Options
Method
Scheme
FieldName
Type Authority
Port Path Parameters/Command Description
apiFullVersion
String - - - Set the value of fieldapiFullVersionand mentionserviceNamefor which theconfiguration is needed in theresource path of below CurlCommand. apiFullVersionUPDATE Command
curl --header "Content-Type: application/json" --request PATCH --data '{ "apiFullVersion": "2.R16.1.0"}' http://<SCP config service fqdn>:8081/soothsayer/v1/canaryrelease/<serviceName>
The APIfull versionof thecanaryservice.DefaultValue: null
canaryTraffic
Integer - - - Set the value of field canaryTrafficand mention serviceName forwhich the configuration is neededin the resource path of below CurlCommand.canaryTraffic UPDATECommand
curl --header "Content-Type: application/json" --request PATCH --data '{ "canaryTraffic": 10}' http://<SCP config service fqdn>:8081/soothsayer/v1/canaryrelease/<serviceName>
The trafficthat shouldbedistributedto Canaryrelease.DefaultValue: null
Configuring Routing OptionsSCP acts as a transparent proxy and forwards or routes any 5G ingress service request to thehost (5G NF) present in request URI.
SCP supports:
• Routing based on IMSI and MSISDN only.
– Routing based on SUPI and GPSI is supported based on the start and end attributesonly as published in NFProfile and routing based on the pattern attribute is notsupported.
• Only IPv4 IP family.
Chapter 3Configuring Routing Options
3-5
• Every Producer NFs are required to publish IpEndPoints for each NFServices in NFProfilewhile registering with NRF.
• Routing Scope: Site
• DB Sync Status: No Sync, Site Wide
– Load Balancing and alternate routing will be based on DB Sync Status within Site.
• Load Balancing Algorithm: Priority only (and Capacity).
– Load Balancing across the equivalent NFs/NF Services is based on Priority andcapacity.
Parameters for Configuring Routing Options
Table 3-2 provides details of the parameters for configuring Routing Options.
Table 3-2 Parameters for RoutingOptions
ParameterName
Description Applicable toNF ServiceType
Default Values Applicable toPod level withinNF
Values
ResponseTimeout
When responsetimeout expires,then SCP initiatesalternatererouting toavailablealternate NF orPod.
Yes 1 second Yes 1 second
Totaltransactionlifetime
• Timeconsumed inprocessingof all retriesshould notexceed thetotaltransactionlife time.
• The totaltime allowedto forward arequest,includinginitial andallsubsequentroutingattempts
Yes 6 seconds Yes 6 seconds
Chapter 3Configuring Routing Options
3-6
Table 3-2 (Cont.) Parameters for RoutingOptions
ParameterName
Description Applicable toNF ServiceType
Default Values Applicable toPod level withinNF
Values
MaxRoutingattempts
• Number ofre-routeattempt(retries) atNF/Podlevel
• Maximumnumber oftimes SCP isallowed toforward arequestmessage. Ifthe MaxRoutingattemptsvalue is setto 1 for bothService andPod level,the totaltransactionlifetime fieldvalue is notneeded andIf the MaxRoutingattemptsvalue (includingboth serviceand podlevel) isgreater than1, totaltransactionlifetimevalue isconsideredin reroutingprocessing.
Yes 3 Yes 2
Chapter 3Configuring Routing Options
3-7
Table 3-2 (Cont.) Parameters for RoutingOptions
ParameterName
Description Applicable toNF ServiceType
Default Values Applicable toPod level withinNF
Values
RerouteonResponse Code
• SCP willattempt areroute if theupstreamserverrespondswith any oftheseconfiguredresponsecode.– 5xx
(includesgateway-error,connection-failure,refused-stream)
– 500(Internal ServerError)
– 501(NotImplemented)
– gateway-error(502,503,504)
– 404(NotFound)
– 408(RequestTimeout)
– retriable-4xx(409)
– 410(Gone)
– 307(Temporary
• 5xx, whichincludesgateway-error (502,503, 504.)connect-failure,refused-stream
• retriable-4xx (409)
- • 5xx, whichincludesgateway-error (502,503, 504.)connect-failure,refused-stream
• retriable-4xx(409)
-
Chapter 3Configuring Routing Options
3-8
Table 3-2 (Cont.) Parameters for RoutingOptions
ParameterName
Description Applicable toNF ServiceType
Default Values Applicable toPod level withinNF
Values
Redirect)
– 308(PermanentRedirect)
– Complete listofsupportedHTTPstatuscode isat HTTPStatusCodeand it'sapplicabilityforrerouting.
• SCPattempts re-route therequest incase ofresponsetimeout,connect-failure,refused-stream,GOAWAYframereceived onanyconnection.Theseoptions(events) arenotconfigurableand issupported bySCP.
Chapter 3Configuring Routing Options
3-9
Table 3-2 (Cont.) Parameters for RoutingOptions
ParameterName
Description Applicable toNF ServiceType
Default Values Applicable toPod level withinNF
Values
AlternateRouting
Alternatererouting isEnabled orDisabled• Reroute to
alternatePod (withinsame NF)
• Reroute toalternateproducer NF
Yes Enabled Yes Enabled
RequestRoutingScope
Site Yes Site Yes Within NF
Status • No Sync• Site Wide
Yes No Sync Yes Synced withinNF
RoutingPolicy
• ForwardRequest– Forwar
dRequest(Useconsumer'sorig.destinationunlessavailable)
• LoadBalance(Consumerselected sitefirst)
• LoadBalance (LBAcross sites)
Yes Forward Proxy NO Load Balance(Non-configurable)
LoadBalancingAlgorithm
Priority Only• Use priority
as the firstlevelcriteria. Usecapacity assecond levelcriteria
Yes Priority Only Yes Round Robin
Chapter 3Configuring Routing Options
3-10
Table 3-2 (Cont.) Parameters for RoutingOptions
ParameterName
Description Applicable toNF ServiceType
Default Values Applicable toPod level withinNF
Values
DefaultPriority
• Priority(relative toother NFServices ofthe sametype) in therange of0-65535, tobe used forNF Serviceselection;lower valuesindicate ahigherpriority. Ifpriority ispresent ineither NFprofile ornfServiceList parameters,those willhaveprecedenceover thisvalue.
• This defaultpriorityvalue shallbe used forNF serviceinstanceselectiononly ifpriority isnotpublished byproducerNFs whileregistrationwith NRF inNF profile(includingboth NFprofile andnfServiceListparameters).
Yes 1 No -
Chapter 3Configuring Routing Options
3-11
Table 3-2 (Cont.) Parameters for RoutingOptions
ParameterName
Description Applicable toNF ServiceType
Default Values Applicable toPod level withinNF
Values
DefaultCapacity
• Capacityinformationin the rangeof 0-65535,expressed asa weightrelative toother NFserviceinstances ofthe sametype; ifcapacity isalso presentin either NFprofile ornfServiceList parameters,those willhaveprecedenceover thisvalue.
• This defaultcapacityvalue shallbe used forNF serviceinstanceselectiononly ifcapacity isnotpublished byproducerNFs whileregistrationwith NRF inNF profile(includingboth NFprofile andnfServiceListparameters ).
Yes 65535 No -
Configuring Operations for Routing Options
User can configure routing options by using the operations LIST, GET, and PUT.
provides sample details of the operations to configure routing options.
Chapter 3Configuring Routing Options
3-12
Table 3-3 Routing Options Operations
Operation REST Command
LISTcurl --header 'Content-type: application/json' --header 'accept: application/json' --request GET http://<Soothsayerfqdn>:8081/soothsayer/v1/routingoptions/ [{ "pod": { "maxPendingResponses": 1000, "maxRoutingAttempts": 2, "alternateRouting": true, "loadBalancingAlgorithm": "Round_Robin" }, "srv": { "name": "nudm-uecm", "maxPendingResponses": 1000, "maxRoutingAttempts": 3, "actions": "Forward", "alternateRouting": true, "scope": "Site", "dbSyncStatus": "No_Sync", "routingPolicy": "Forward_Proxy", "loadBalancingAlgorithm": "Priority_only", "nfServiceLoadBasedCongestionControl": { "alternateRoutingOnsetThresholdPercent": 80, "alternateRoutingAbatementThresholdPercent": 75, "throttleOnsetThresholdPercent": 90, "throttleOnsetThresholdPercent": 85, "responseErrorCode": 503 }, "defaultPriority": 1, "defaultCapacity": 65535 }, "totalTransactionLifetime": "6s", "reRouteOnResponseCodeList": [ "ALL_SERVER_ERROR", "NOT_FOUND", "REQUEST_TIMEOUT", "RETRIABLE_4XX", "GONE", "TOO_MANY_REQUESTS", "TEMPORARY_REDIRECT", "PERMANENT_REDIRECT" ],
Chapter 3Configuring Routing Options
3-13
Table 3-3 (Cont.) Routing Options Operations
Operation REST Command
"responseTimeout": "1s"},... ]
Chapter 3Configuring Routing Options
3-14
Table 3-3 (Cont.) Routing Options Operations
Operation REST Command
GETcurl --header 'Content-type: application/json' --header 'accept: application/json' --request GET http://<Soothsayerfqdn>:8081/soothsayer/v1/routingoptions/<serviceName> { "pod": { "maxPendingResponses": 1000, "maxRoutingAttempts": 2, "alternateRouting": true, "loadBalancingAlgorithm": "Round_Robin" }, "srv": { "name": "nudm-uecm", "maxPendingResponses": 1000, "maxRoutingAttempts": 3, "actions": "Forward", "alternateRouting": true, "scope": "Site", "dbSyncStatus": "No_Sync", "routingPolicy": "Forward_Proxy", "loadBalancingAlgorithm": "Priority_only", "nfServiceLoadBasedCongestionControl": { "alternateRoutingOnsetThresholdPercent": 80, "alternateRoutingAbatementThresholdPercent": 75, "throttleOnsetThresholdPercent": 90, "throttleAbatementThresholdPercent": 85, "responseErrorCode": 503 }, "defaultPriority": 1, "defaultCapacity": 65535 }, "totalTransactionLifetime": "6s", "reRouteOnResponseCodeList": [ "ALL_SERVER_ERROR", "NOT_FOUND", "REQUEST_TIMEOUT", "RETRIABLE_4XX", "GONE", "TOO_MANY_REQUESTS", "TEMPORARY_REDIRECT", "PERMANENT_REDIRECT"
Chapter 3Configuring Routing Options
3-15
Table 3-3 (Cont.) Routing Options Operations
Operation REST Command
], "responseTimeout": "1s"}
Chapter 3Configuring Routing Options
3-16
Table 3-3 (Cont.) Routing Options Operations
Operation REST Command
PUTcurl --header "Content-Type: application/json" --request PUT --data '{ "pod": { "maxPendingResponses": 1000, "maxRoutingAttempts": 2, "alternateRouting": true, "loadBalancingAlgorithm": "Round_Robin" }, "srv": { "name": "nudm-uecm", "maxPendingResponses": 1000, "maxRoutingAttempts": 3, "actions": "Forward", "alternateRouting": true, "scope": "Site", "dbSyncStatus": "No_Sync", "routingPolicy": "Forward_Proxy", "loadBalancingAlgorithm": "Priority_only", "nfServiceLoadBasedCongestionControl": { "alternateRoutingOnsetThresholdPercent": 80, "alternateRoutingAbatementThresholdPercent": 75, "throttleOnsetThresholdPercent": 90, "throttleAbatementThresholdPercent": 85, "responseErrorCode": 503 }, "defaultPriority": 1, "defaultCapacity": 65535 }, "totalTransactionLifetime": "6s", "reRouteOnResponseCodeList": [ "ALL_SERVER_ERROR", "NOT_FOUND", "REQUEST_TIMEOUT", "RETRIABLE_4XX", "GONE", "TOO_MANY_REQUESTS", "TEMPORARY_REDIRECT", "PERMANENT_REDIRECT" ], "responseTimeout": "1s"}' http://<Soothsayerfqdn>:8081/
Chapter 3Configuring Routing Options
3-17
Table 3-3 (Cont.) Routing Options Operations
Operation REST Command
soothsayer/v1/routingoptions/<serviceName>
Configuring MessagePriority OptionsMessage Priority assignment/override is supported for below 5G NFs. User can configurerouting options by using the operations LIST, GET, and PUT.
NRF
• NRFMessage Priority assignment/override is supported for below NF services:
– Nnrf_NFManagement Service
* All message supported except Notification Callback messages.
– Nnrf_NFDiscovery Service
• UDMMessage Priority assignment/override is supported for below NF services:
– Nudm_SubscriberDataManagement Service
– Nudm_UEContextManagement Service
– Nudm_UEAuthentication Service
– Nudm_EventExposure Service
– Nudm_ParameterProvision Service
• AMFMessage Priority assignment/override is supported for below NF services:
– Namf_Communication Service
* All message supported except N1N2Transfer Failure Notification messages.
– Namf_EventExposure Service
– Namf_MT Service
– Namf_Location Service
* Not supported in SCP 1.0 release.
• PCFMessage Priority assignment/override is supported for below NF services:
– Npcf_AMPolicyControl Service
– Npcf_SMPolicyControl Service
– Npcf_PolicyAuthorization Service
– Npcf_BDTPolicyControl Service
• UDRMessage Priority assignment/override is supported for below NF service:
Chapter 3Configuring MessagePriority Options
3-18
– Nudr_DataRepository Service
Table 3-4 Configuring Parameters for MessagePriority Options
Operation
Parameter Type Description REST Command
LIST - - -curl --header 'Content-type: application/json' --header 'accept: application/json' --request GET 'http://<Soothsayerfqdn>:8081/soothsayer/v1/messagepriority'[ { "requestResponse": "REQUEST", "nfServiceName": "nudm-uecm", "messageType": "amf-3gpp-access", "whenHeaderPresent": { "overrideFlag": false, "headerValue": "" }, "whenHeaderNotPresent": { "overrideFlag": false, "headerValue": "" } }, { "requestResponse": "RESPONSE", "nfServiceName": "nudm-uecm", "messageType": "amf-3gpp-access", "whenHeaderPresent": { "overrideFlag": false, "headerValue": "" }, "whenHeaderNotPresent": { "overrideFlag": true, "headerValue": "" } }, ...]
Chapter 3Configuring MessagePriority Options
3-19
Table 3-4 (Cont.) Configuring Parameters for MessagePriority Options
Operation
Parameter Type Description REST Command
GET - - -curl --header 'Content-type: application/json' --header 'accept: application/json' --request GET 'http://<Soothsayerfqdn>:8081/soothsayer/v1/messagepriority?nfServiceName=<serviceName>&messageType=amf-3gpp-access'[ { "requestResponse": "REQUEST", "nfServiceName": "nudm-uecm", "messageType": "amf-3gpp-access", "whenHeaderPresent": { "overrideFlag": false, "headerValue": "" }, "whenHeaderNotPresent": { "overrideFlag": false, "headerValue": "" } }, { "requestResponse": "RESPONSE", "nfServiceName": "nudm-uecm", "messageType": "amf-3gpp-access", "whenHeaderPresent": { "overrideFlag": false, "headerValue": "" }, "whenHeaderNotPresent": { "overrideFlag": true, "headerValue": "" } }]
Chapter 3Configuring MessagePriority Options
3-20
Table 3-4 (Cont.) Configuring Parameters for MessagePriority Options
Operation
Parameter Type Description REST Command
PUT requestResponse
Enum • If the value isRESPONSE - EgressResponse
• If the value isREQUEST - IngressRequest
Set the value of fieldrequestResponse and masterIPand Configuration as REQUESTor RESPONSE in the curlcommand belowrequestResponse UPDATECommand
curl -X PUT \ http://<Soothsayerfqdn>:8081/soothsayer/v1/messagepriority \ -H 'Content-Type: application/json' \ -d '{ "requestResponse" : "REQUEST", "nfServiceName" : "nudm-uecm", "messageType" : "amf-3gpp-access", "whenHeaderPresent" : { "overrideFlag" : false, "headerValue" : "10" }, "whenHeaderNotPresent" : { "overrideFlag" : true, "headerValue" : "5" }}'
Chapter 3Configuring MessagePriority Options
3-21
Table 3-4 (Cont.) Configuring Parameters for MessagePriority Options
Operation
Parameter Type Description REST Command
nfServiceName String Name of the NF ServiceList of NF Services
nnrf-discnnrf-nfmnnwdaf-analyticsinfonsmsf-smsnnwdaf-eventssubscriptionnudr-drnlmf-locnchf-spendinglimitcontrolnbsf-managementnnssf-nssaiavailabilityn5g-eir-eicnnssf-nsselectionnudm-eenudm-ueaunudm-sdmnudm-uecmnudm-ppnnef-pfdmanagementnamf-comnamf-evtsnamf-mtnamf-locationnausf-sorprotectionnsmf-event-exposurensmf-pdusessionnausf-authnpcf-smpolicycontrolnpcf-am-policy-controlnpcf-bdtpolicycontrolnpcf-policyauthorization
Set the value of fieldnfServiceNamein the curlcommand below nfServiceNameUPDATE Command
curl -X PUT \ http://<Soothsayerfqdn>:8081/soothsayer/v1/messagepriority \ -H 'Content-Type: application/json' \ -d '{ "requestResponse" : "REQUEST", "nfServiceName" : "nudm-uecm", "messageType" : "amf-3gpp-access", "whenHeaderPresent" : { "overrideFlag" : false, "headerValue" : "10" }, "whenHeaderNotPresent" : { "overrideFlag" : true, "headerValue" : "5" }}'
Chapter 3Configuring MessagePriority Options
3-22
Table 3-4 (Cont.) Configuring Parameters for MessagePriority Options
Operation
Parameter Type Description REST Command
messageType String Message type for givenservice nameMessageTypeList Table 3-5
Set the value of fieldmessageType for the mentionedNF Service in the curl commandbelow messageType UPDATECommand
curl -X PUT \ http://<Soothsayerfqdn>:8081/soothsayer/v1/messagepriority \ -H 'Content-Type: application/json' \ -d '{ "requestResponse" : "REQUEST", "nfServiceName" : "nudm-uecm", "messageType" : "amf-3gpp-access", "whenHeaderPresent" : { "overrideFlag" : false, "headerValue" : "10" }, "whenHeaderNotPresent" : { "overrideFlag" : true, "headerValue" : "5" }}'
Chapter 3Configuring MessagePriority Options
3-23
Table 3-4 (Cont.) Configuring Parameters for MessagePriority Options
Operation
Parameter Type Description REST Command
overrideFlag(whenHeaderPresent)
boolean Override Flag for the casewhen Header is Present
Set the value of fieldoverrideFlag section in the curlcommand below overrideFlagUPDATE Command
curl -X PUT \ http://<Soothsayerfqdn>:8081/soothsayer/v1/messagepriority \ -H 'Content-Type: application/json' \ -d '{ "requestResponse" : "REQUEST", "nfServiceName" : "nudm-uecm", "messageType" : "amf-3gpp-access", "whenHeaderPresent" : { "overrideFlag" : false, "headerValue" : "10" }, "whenHeaderNotPresent" : { "overrideFlag" : true, "headerValue" : "5" }}'
Chapter 3Configuring MessagePriority Options
3-24
Table 3-4 (Cont.) Configuring Parameters for MessagePriority Options
Operation
Parameter Type Description REST Command
headerValue(whenHeaderPresent)
String Value of the priority headerfor the corresponding flagfor the case when Header isPresent
Set the value of field headerValuesection in the curl commandbelow headerValue UPDATECommand
curl -X PUT \ http://<Soothsayerfqdn>:8081/soothsayer/v1/messagepriority \ -H 'Content-Type: application/json' \ -d '{ "requestResponse" : "REQUEST", "nfServiceName" : "nudm-uecm", "messageType" : "amf-3gpp-access", "whenHeaderPresent" : { "overrideFlag" : false, "headerValue" : "10" }, "whenHeaderNotPresent" : { "overrideFlag" : true, "headerValue" : "5" }}'
Chapter 3Configuring MessagePriority Options
3-25
Table 3-4 (Cont.) Configuring Parameters for MessagePriority Options
Operation
Parameter Type Description REST Command
overrideFlag(whenHeaderNotPresent)
boolean Override Flag for the casefor the case when Header isnot Present
Set the value of fieldoverrideFlag section in the curlcommand below overrideFlagUPDATE Command
curl -X PUT \ http://<Soothsayerfqdn>:8081/soothsayer/v1/messagepriority \ -H 'Content-Type: application/json' \ -d '{ "requestResponse" : "REQUEST", "nfServiceName" : "nudm-uecm", "messageType" : "amf-3gpp-access", "whenHeaderPresent" : { "overrideFlag" : false, "headerValue" : "10" }, "whenHeaderNotPresent" : { "overrideFlag" : true, "headerValue" : "5" }}'
Chapter 3Configuring MessagePriority Options
3-26
Table 3-4 (Cont.) Configuring Parameters for MessagePriority Options
Operation
Parameter Type Description REST Command
headerValue(whenHeaderNotPresent
String Value of the priority headerfor the corresponding flagfor the case when Header isnot Present
Set the value of field headerValuesection in the curl commandbelow headerValue UPDATECommand
curl -X PUT \ http://<Soothsayerfqdn>:8081/soothsayer/v1/messagepriority \ -H 'Content-Type: application/json' \ -d '{ "requestResponse" : "REQUEST", "nfServiceName" : "nudm-uecm", "messageType" : "amf-3gpp-access", "whenHeaderPresent" : { "overrideFlag" : false, "headerValue" : "10" }, "whenHeaderNotPresent" : { "overrideFlag" : true, "headerValue" : "5" }}'
Message Type List
3gpp-Sbi-Message-Priority" header carries the message priority of 5G messages. The SCPincludes/modifies the header based on the configuration parameters.
HTTP2 stream priorities are valid only per connection, it's not an E2E mechanism so to have it:
• 3gpp-Sbi-Message-Priority header contains the HTTP/2 message priority value anythingbetween1 to 256.The default is16.
• SCP allocates resources for priority streams and reorders the frames in accordance or dropfew non-priority frames as per congestion.
Table 3-5 provides MessagePriority Options for PATCH operation.
Table 3-5 Message Type List
Resource Name(Archetype)
Resource URI HTTP Method orCustom Operation
Description
mf3GppAccessRegistration (Document)
/{ueId}/registrations/amf-3gpp-access
PUT Update the AMFregistration for 3GPPaccess
Chapter 3Configuring MessagePriority Options
3-27
Table 3-5 (Cont.) Message Type List
PATCH Modify the AMFregistration for 3GPPaccess
GET Retrieve the AMFregistration informationfor 3GPP access
AmfNon3GppAccessRegistration (Document)
/{ueId}/registrations/amf-non-3gpp-access
PUT Update the AMFregistration for non3GPP access
PATCH Modify the AMFregistration for non3GPP access
GET Retrieve the AMFregistration informationfor non 3GPP access
SmfRegistrations (Store) /{ueId}/registrations/smf-registrations
- -
IndividualSmfRegistration(Document)
/{ueId}/registrations/smf-registrations/{pduSessionId}
PUT Create an SMFregistration identified byPDU Session Id
DELETE Delete an individualSMF registration
PATCH Modify an individualSMF Registration
Smsf3GppAccessRegistration (Document)
/{ueId}/registrations/smsf-3gpp-access
PUT Create or Update theSMSF registration
DELETE Delete the SMSFregistration for 3GPPaccess
PATCH Modify the SMSFregistration
GET Retrieve the SMSFregistration information
SmsfNon3GppAccessRegistration (Document)
/{ueId}/registrations/smsf-non-3gpp-access
PUT Create or Update theSMSF registration fornon 3GPP access
DELETE Delete the SMSFregistration for non3GPP access
PATCH Modify the SMSFregistration for non3GPP access
GET Retrieve the SMSFregistration informationfor non 3GPP access
Configuring Http2 Protocol Options for scp-gatewaySCP allows to set HTTP2 options parameter system wide. User can configure Http2 protocoloptions by using the operations GET, and PUT.
Chapter 3Configuring Http2 Protocol Options for scp-gateway
3-28
Table 3-6 provides Http2 Protocol Options for scp-gateway.
Chapter 3Configuring Http2 Protocol Options for scp-gateway
3-29
Table 3-6 Configuring Http2 Protocol Options
Operation
Parameter Type Description with Default Values REST Command
GET - - -curl --header 'Content-type: application/json' --header 'accept: application/json' --request GET http://<Soothsayerfqdn>:8081/soothsayer/v1/gatewaydetails/scp-gateway { "servers": [ { "port": { "number": 80, "name": "http", "protocol": "HTTP" }, "hosts": [ "*" ], "ocscpw_http2protocoloptions": { "ocscpw_max_concurrent_streams": 1000, "ocscpw_initial_window_size": 65535 }, "ocscpw_httpprotocoloptions": { "ocscpw_allow_absolute_url": true }
Chapter 3Configuring Http2 Protocol Options for scp-gateway
3-30
Table 3-6 (Cont.) Configuring Http2 Protocol Options
Operation
Parameter Type Description with Default Values REST Command
} ]}
Chapter 3Configuring Http2 Protocol Options for scp-gateway
3-31
Table 3-6 (Cont.) Configuring Http2 Protocol Options
Operation
Parameter Type Description with Default Values REST Command
PUT ocspfw_max_concurrent_streams
Integer Http2 Protocol Options of maximumconcurrent streams for spf-gatewayDefault Value: 1000
Set the value offieldocspfw_max_concurrent_streams in thebelow CurlCommandocspfw_max_concurrent_streamsUPDATECommand
curl --header "Content-Type: application/json" --request PUT --data '{ "servers": [ { "port": { "number": 80, "name": "http", "protocol": "HTTP" }, "hosts": [ "*" ], "ocspfw_http2protocoloptions": { "ocspfw_max_concurrent_streams": 1000, "ocspfw_initial_window_size":
Chapter 3Configuring Http2 Protocol Options for scp-gateway
3-32
Table 3-6 (Cont.) Configuring Http2 Protocol Options
Operation
Parameter Type Description with Default Values REST Command
65535 } } ] }' http://<Soothsayerfqdn>:8081/soothsayer/v1/nrfdetails/soothsayer/v1/gatewaydetails/scp-gateway
Chapter 3Configuring Http2 Protocol Options for scp-gateway
3-33
Table 3-6 (Cont.) Configuring Http2 Protocol Options
Operation
Parameter Type Description with Default Values REST Command
ocspfw_initial_window_size
Integer Http2 Protocol Options of initial windowsize for spf-gatewayDefault Value: 65535
Set the value offieldocspfw_initial_window_sizein thebelow CurlCommandocspfw_initial_window_sizeUPDATECommand
curl --header "Content-Type: application/json" --request PUT --data '{ "servers": [ { "port": { "number": 80, "name": "http", "protocol": "HTTP" }, "hosts": [ "*" ], "ocspfw_http2protocoloptions": { "ocspfw_max_concurrent_streams": 1000, "ocspfw_initial_window_size": 65535
Chapter 3Configuring Http2 Protocol Options for scp-gateway
3-34
Table 3-6 (Cont.) Configuring Http2 Protocol Options
Operation
Parameter Type Description with Default Values REST Command
} } ] }' http://<Soothsayerfqdn>:8081/soothsayer/v1/nrfdetails/soothsayer/v1/gatewaydetails/scp-gateway
Configuring SystemOptionsThese options are used to control system behavior per service wide. User can configureSystemOptions by using the operations GET, and PUT.
Note:
Default systemOptions is provided during the installation of Service CommunicationProxy through helm.
Table 3-7provides SystemOptions for PUT operation.
Chapter 3Configuring SystemOptions
3-35
Table 3-7 Configuring Parameters for SystemOptions
Operation Parameter
Value
Description Example
GET - - -curl -X GET http://<Soothsayerfqdn>:8081/soothsayer/v1/systemoptions/{instanceId} Response:{ "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 } }}
Chapter 3Configuring SystemOptions
3-36
Table 3-7 (Cont.) Configuring Parameters for SystemOptions
Operation Parameter
Value
Description Example
PUT instanceId
String
Unique ID that representsSystemOption record
Set the value of instanceId field in the curlcommand below instanceId UPDATECommand
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 } } }'
Chapter 3Configuring SystemOptions
3-37
Table 3-7 (Cont.) Configuring Parameters for SystemOptions
Operation Parameter
Value
Description Example
cb_and_od_enabled
Boolean
Provides informationwhether the Circuit-Breaking and Outlier-Detection is enabled or not.
Set the value of cb_and_od_enabled fieldin the curl command belowcd_and_od_enabled 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 } } }'
Chapter 3Configuring SystemOptions
3-38
Table 3-7 (Cont.) Configuring Parameters for SystemOptions
Operation Parameter
Value
Description Example
trafficPolicy.connectionPool.http.http2MaxRequests
Integer
Maximum number ofrequests to a backend.Default is 1024.
Set the value of http2MaxRequests fieldunder trafficPolicy.connectionPool.http inthe curl command. http2MaxRequestsUPDATE 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 } } }'
Configuring PortConfiguring port allows user to configure default port for a combination of locality, nftype, andservice
Supported Operations: List, PUT
Port Configuration - LIST
GET Command
curl --header 'Content-type: application/json' --header 'accept: application/json' --request GET http://<Soothsayerfqdn>:8081/soothsayer/v1/portconfiguration[ { "nftype": "ALL", "locality": "ALL", "serviceName": "ALL", "unsecuredPort": 80, "securedPort": 443, "transport": "TCP",
Chapter 3Configuring Port
3-39
"nfType": "ALL" }]
Configuring Circuit Breaking and Outlier DetectionOutlier detection in SCP tracks the status of each individual endpoint of the producer NFs/NFServices. Upstream producer EndPoints that continually returns 5xx errors for service requestsare 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 perendpoint (of producer NF instance) and triggers when SCP receives consecutively 5xx errorresponse and exceeds the configurable number of consecutive 5XX errors.
Circuit breaking is triggered on a per FQDN basis when its outstanding transactions exceeds aconfigurable value. When circuit breaking is activated, requests are alternate routed if possibleor 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 aper NF or FQDN basis.
• Error code to be sent if the Request cannot be alternate routed also on a per NF servicebasis.
Table 3-8 provides information about the configuring parameters for outlier detection.
Chapter 3Configuring Circuit Breaking and Outlier Detection
3-40
Table 3-8 Outlier Detection Parameters
Parameter Value Description Example
outlierDetection.consecutiveErrors
Integer 5G defined NF Type. Forexample, BSF, UDR, UDSF,etc.,
Set the value ofConsecutiveErrors fieldunder outlierDetection in thecurl command belowconsecutiveErrorsUPDATE 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 } } }'
Chapter 3Configuring Circuit Breaking and Outlier Detection
3-41
Table 3-8 (Cont.) Outlier Detection Parameters
Parameter Value Description Example
outlierDetection.interval
String Time interval betweenejection sweep analysis.Format: 1h/1m/1s/1ms.MUST BE >=1ms.Default is 10s
Set the value of intervalfield under outlierDetectionin the curl command belowinterval UPDATECommand
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 } } }'
Chapter 3Configuring Circuit Breaking and Outlier Detection
3-42
Table 3-8 (Cont.) Outlier Detection Parameters
Parameter Value Description Example
outlierDetection.baseEjectionTime
String Minimum ejection duration.Format: 1h/1m/1s/1ms.MUST BE >=1ms.Default is 30s.
Set the value of fieldbaseEjectionTime underoutlierDetection in the curlcommand belowbaseEjectionTimeUPDATE 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 } } }'
Chapter 3Configuring Circuit Breaking and Outlier Detection
3-43
Table 3-8 (Cont.) Outlier Detection Parameters
Parameter Value Description Example
outlierDetection.maxEjectionPercent
Integer Maximum percentage ofhosts in the load balancingpool for the upstreamservice that can be ejected.
Set the value of fieldmaxEjectionPercent underoutlierDetection in the curlcommand belowmaxEjectionPercentUPDATE 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 } } }'
Chapter 3Configuring Circuit Breaking and Outlier Detection
3-44
4Metrics, KPIs, and Traces
This section provides the information for Metrics, KPIs, and Traces.
AlertsThis section provides information about configuring alerts and supported alerts.
Configuring Alerts
You can configure Alerts in Prometheus and SCPAlertrules.yaml file.
The following table provides information for Alerts for Service Communication Proxy.
Table 4-1 Alert Reference
S.No
Alert Name Sevreity Comments
1 SCPIngressTrafficRateAboveMinorThreshold
Minor Notify that Traffic rate is minor (user configureminor threshold value) with Locality and currentvalue of traffic rate.
2 SCPIngressTrafficRateAboveMajorThreshold
Major Notify that Traffic rate is major (user configuremajor threshold value) with Locality and currentvalue of traffic rate.
3 SCPIngressTrafficRateAboveCriticalThreshold
Critical Notify that Traffic rate is critical (user configurecritical threshold value) with Locality and currentvalue of traffic rate.
4 SCPRoutingFailedForServiceAlert
Minor Notify that Routing failed for service. Provide detailslike NFService Type, NFType, Locality, and value.
5 SCPSoothsayerPodMemoryUsage
Warning Notify Soothsayer per Pod memory usage is abovethreshold (here threshold value take n as 8 GB).
6 SCPWorkerPodMemoryUsage Warning Notify Worker per Pod memory usage is abovethreshold (here threshold value taken as 4 GB).
7 SCPPilotPodMemoryUsage Warning Notify Pilot per Pod memory usage is abovethreshold (here threshold value taken as 6 GB).
Note:
All metric are operated on namespace of Service Communication Proxy deployed. Youmust configure scp namespace when configuring SCPAlertRule.yaml
Configuring Service Communication Proxy Alert inPrometheus
SCP Helm Chart Release Name: _NAME_
4-1
Prometheus NameSpace: _Namespace _
To configure Service Communication Proxy Alert in Prometheus:
1. Take backup of current config map of Prometheus:kubectl get configmaps _NAME_-server -o yaml -n _Namespace_> /tmp/tempConfig.yaml
2. Check and add SCP Alert File name inside Prometheus config map:sed -i'/etc\/config\/alertsscp/d'/tmp/tempConfig.yamlsed -i'/rule_files:/a\ \- /etc/config/alertsscp'/tmp/tempConfig.yaml
3. Update Config map with updated file name of SCP Alert File.kubectl replace configmap _NAME_-server -f /tmp/tempConfig.yaml
4. Add scpAlertrules in Config map under file name of SCP Alert File.kubectl patch configmap _NAME_-server -n _Namespace_ --typemerge --patch"$(cat ~/SCPAlertrules.yaml)"
Note:
Prometheus server considers updated configmap reloaded after approximately 20seconds.
Configuring Service Communication Proxy Alert usingSCPAlertrules.yaml file
Note:
Default NameSpace is scpsvc for Service Communication Proxy. You can update theNameSpace as per the deployment.
Following is a sample yaml file.
apiVersion: v1data: alertsscp: | groups: - name: SCPAlerts rules: #Alerts for SCP Ingress Traffic Rate, it uses namespace of scp deployed - alert: SCPIngressTrafficRateAboveMinorThreshold annotations: description: 'Ingress Traffic Rate at Locality: "{{$labels.ocscp_locality}}" is above minor threshold (i.e. 800 mps)' summary: 'Current Ingress Traffic Rate is {{ $value | printf "%.2f" }} mps which is above 80 Percent of Max MPS(1000)' # Provide app and kubernetes_namespace of scp deployed expr: sum(rate(ocscp_metric_total_http_rx_req{app="scp-worker",kubernetes_namespace="scpsvc"}[2m])) by (kubernetes_namespace,ocscp_locality) >= 800 < 900 labels: severity: Minor
Chapter 4Alerts
4-2
- alert: SCPIngressTrafficRateAboveMajorThreshold annotations: description: 'Ingress Traffic Rate at Locality: {{$labels.ocscp_locality}} and is above major threshold (i.e. 900 mps)' summary: 'Current Ingress Traffic Rate is {{ $value | printf "%.2f" }} mps which is above 90 Percent of Max MPS(1000)' # Provide app and kubernetes_namespace of scp deployed expr: sum(rate(ocscp_metric_total_http_rx_req{app="scp-worker",kubernetes_namespace="scpsvc"}[2m])) by (kubernetes_namespace,ocscp_locality) >= 900 < 950 labels: severity: Major - alert: SCPIngressTrafficRateAboveCriticalThreshold annotations: description: 'Ingress Traffic Rate at Locality: {{$labels.ocscp_locality}} and is above critical threshold (i.e. 950 mps)' summary: 'Current Ingress Traffic Rate is {{ $value | printf "%.2f" }} mps which is above 95 Percent of Max MPS(1000)' # Provide app and kubernetes_namespace of scp deployed expr: sum(rate(ocscp_metric_total_http_rx_req{app="scp-worker",kubernetes_namespace="scpsvc"}[2m])) by (kubernetes_namespace,ocscp_locality) >= 950 labels: severity: Critical - alert: SCPRoutingFailedForServiceAlert annotations: description: 'Routing failed for service' summary: 'Routing failed for service: NFService Type = "{{$labels.ocscp_nf_service_type}}", NFType = "{{$labels.ocscp_nf_type}}", Locality = "{{$labels.ocscp_locality}}" and value = "{{ $value }}" ' # Provide app and kubernetes_namespace of scp deployed expr: ocscp_metric_total_routing_send_fail{app="scp-worker",kubernetes_namespace="scpsvc"} labels: severity: Minor - alert: SCPSoothsayerPodMemoryUsage # Provide kubernetes_namespace of scp deployed and pod name substring as its regex match of pod name expr: sum(container_memory_usage_bytes{image!="",namespace="scpsvc",pod_name=~".+soothsayer.+"}) by (pod_name, namespace) > 8589934592 for: 2m labels: severity: Warning annotations: summary: "NameSpace: {{$labels.namespace}}, Pod: {{$labels.pod_name}}: Soothsayer Pod High Memory usage detected" description: "Namespace: {{$labels.namespace}},Pod: {{$labels.pod_name}}: Memory usage is above 8 GB (current value is: {{ $value }})" - alert: SCPWorkerPodMemoryUsage # Provide kubernetes_namespace of scp deployed and pod name substring as its regex match of pod name expr: sum(container_memory_usage_bytes{image!="",namespace="scpsvc",pod_name=~".+worker.+"}) by (pod_name, namespace) > 4294967296 for: 2m labels: severity: Warning annotations: summary: "NameSpace: {{$labels.namespace}}, Pod: {{$labels.pod_name}}:
Chapter 4Alerts
4-3
Worker Pod High Memory usage detected" description: "Namespace: {{$labels.namespace}},Pod: {{$labels.pod_name}}: Memory usage is above 4 GB (current value is: {{ $value }})" - alert: SCPPilotPodMemoryUsage # Provide kubernetes_namespace of scp deployed and pod name substring as its regex match of pod name expr: sum(container_memory_usage_bytes{image!="",namespace="scpsvc",pod_name=~".+pilot.+"}) by (pod_name, namespace) > 6442450944 for: 2m labels: severity: Warning annotations: summary: "NameSpace: {{$labels.namespace}}, Pod: {{$labels.pod_name}}: Pilot Pod High Memory usage detected" description: "Namespace: {{$labels.namespace}},Pod: {{$labels.pod_name}}: Memory usage is above 6 GB (current value is: {{ $value }})"
Metrics ReferenceThe following table provides information for Metrics for Service Communication Proxy.
Table 4-2 Metrics Reference
S.No Promotheus Stat MetricName
MetricDescription
Dimensions Example usage tofilter metric bydimension onGrafana GUI
MetricGroup
1 ocscp_metric_total_http_rx_req
ThetotalnumberofincomingHTTPrequests
ocscp_nf_type ( e.g., UDM, PCF, AMF, etc.) ocscp_nf_service_type( e.g., nudm-uecm, nudm-sdm, etc.) ocscp_req_msg_size( The request message size buckets. e.g., 1 ( size < 1k bytes), 2 ( 1k < size < 2k bytes), 4 ( 2k < size < 4k ), etc.) ocscp_locality( SCP site name e.g., Loc6, Loc7, etc.)
ocscp_metric_total_http_rx_req{ocscp_nf_type="UDM"} ocscp_metric_total_http_rx_req{ocscp_nf_service_type="nudm-uecm"} ocscp_metric_total_http_rx_req{ocscp_req_msg_size="2"} ocscp_metric_total_http_rx_req{ocscp_locality="Loc7"}
SCPUsage
Chapter 4Metrics Reference
4-4
Table 4-2 (Cont.) Metrics Reference
2. ocscp_metric_total_http_tx_req
TotalnumberofHTTPrequestsforwarded byServiceCommunicationProxytoupstreamcluster
ocscp_nf_type( e.g., UDM, PCF, AMF, etc.) ocscp_nf_service_type ( e.g., nudm-uecm, nudm-sdm, etc.) ocscp_nf_end_point( Default value = 0.0:00 ) ocscp_locality( SCP site name e.g., Loc6, Loc7, etc.) ocscp_nf_instance_id( e.g., 6faf1bbc-6e4a-4454-a507-a14ef8e1bc5c, etc. Default value = NA) ocscp_service_instance_id( e.g., fe137ab7-740a-46ee-aa5c-951806d77b02, etc. Default value = NA)
ocscp_metric_total_http_tx_req{ocscp_nf_type="UDM"} ocscp_metric_total_http_tx_req{ocscp_nf_service_type="nudm-uecm"} ocscp_metric_total_http_tx_req{ocscp_nf_end_point="10.96.166.65:80"} ocscp_metric_total_http_tx_req{ocscp_locality="Loc7"} ocscp_metric_total_http_tx_req{ocscp_nf_instance_id="6faf1bbc-6e4a-4454-a507-a14ef8e1bc5c"} ocscp_metric_total_http_tx_req{ocscp_service_instance_id="fe137ab7-740a-46ee-aa5c-951806d77b02"}
SCPUsage
Chapter 4Metrics Reference
4-5
Table 4-2 (Cont.) Metrics Reference
3 ocscp_metric_total_http_rx_res
TotalnumberofHTTPresponsereceived bySCPwithspecificHTTPresponse codes(e.g.,201,503,etc.)
ocscp_response_code( e.g., 201, 503, 404, etc.) ocscp_nf_type( e.g., UDM, PCF, AMF, etc.) ocscp_nf_service_type (e.g., nudm-uecm, nudm-sdm, etc.) ocscp_nf_end_point( Default value = 0.0:00 ) ocscp_locality( SCP site name e.g., Loc6, Loc7, etc.) ocscp_nf_instance_id( e.g., 6faf1bbc-6e4a-4454-a507-a14ef8e1bc5c, etc. Default value = NA) ocscp_service_instance_id( e.g., fe137ab7-740a-46ee-aa5c-951806d77b02, etc. Default value = NA) ocscp_res_msg_size( The response message size buckets. e.g., 1 ( size < 1k bytes), 2 ( 1k < size < 2k bytes), 4 ( 2k < size < 4k ), etc.)
ocscp_metric_total_http_rx_res{ocscp_response_code="201"} ocscp_metric_total_http_rx_res{ocscp_nf_type="UDM"} ocscp_metric_total_http_rx_res{ocscp_nf_service_type="nudm-uecm"} ocscp_metric_total_http_rx_res{ocscp_nf_end_point="10.96.166.65:80"} ocscp_metric_total_http_rx_res{ocscp_locality="Loc7"} ocscp_metric_total_http_rx_res{ocscp_nf_instance_id="6faf1bbc-6e4a-4454-a507-a14ef8e1bc5c"} ocscp_metric_total_http_rx_res{ocscp_service_instance_id="fe137ab7-740a-46ee-aa5c-951806d77b02"} ocscp_metric_total_http_rx_res{ocscp_res_msg_size="2"}
SCPUsage
Chapter 4Metrics Reference
4-6
Table 4-2 (Cont.) Metrics Reference
4 ocscp_metric_total_http_rx_res_xx
TotalnumberofHTTPresponsereceived bySCPwithaggregatedHTTPresponse codes(e.g.,2xx,5xx,etc.)
ocscp_response_code_class(e.g., 2xx, 5xx, etc.) ocscp_nf_type( e.g., UDM, PCF, AMF, etc.) ocscp_nf_service_type(e.g., nudm-uecm, nudm-sdm, etc.) ocscp_nf_end_point( Default value = 0.0:00 ) ocscp_locality( SCP site name e.g., Loc6, Loc7, etc.) ocscp_nf_instance_id( e.g., 6faf1bbc-6e4a-4454-a507-a14ef8e1bc5c, etc. Default value = NA) ocscp_service_instance_id( e.g., fe137ab7-740a-46ee-aa5c-951806d77b02, etc. Default value = NA)
ocscp_metric_total_http_rx_res_xx{ocscp_response_code_class="2"} ocscp_metric_total_http_rx_res_xx{ocscp_nf_type="UDM"} ocscp_metric_total_http_rx_res_xx{ocscp_nf_service_type="nudm-uecm"} ocscp_metric_total_http_rx_res_xx{ocscp_nf_end_point="10.96.166.65:80"} ocscp_metric_total_http_rx_res_xx{ocscp_locality="Loc7"} ocscp_metric_total_http_rx_res_xx{ocscp_nf_instance_id="6faf1bbc-6e4a-4454-a507-a14ef8e1bc5c"} ocscp_metric_total_http_rx_res_xx{ocscp_service_instance_id="fe137ab7-740a-46ee-aa5c-951806d77b02"}
SCPUsage
5 ocscp_metric_total_http_tx_res
TotalnumberofHTTPresponseforwarded bySCPwithspecificHTTPresponse codes(e.g.,201,503,etc.)
ocscp_response_code( e.g., 201, 503, 404, etc.) ocscp_nf_type( e.g., UDM, PCF, AMF, etc.) ocscp_nf_service_type (e.g., nudm-uecm, nudm-sdm, etc.) ocscp_locality( SCP site name e.g., Loc6, Loc7, etc.)
ocscp_metric_total_http_tx_res{ocspf_response_code="201"} ocscp_metric_total_http_tx_res{ocspf_nf_type="UDM"} ocscp_metric_total_http_tx_res{ocspf_nf_service_type="nudm-uecm"} ocscp_metric_total_http_tx_res{ocscp_locality="Loc7"}
SCPUsage
Chapter 4Metrics Reference
4-7
Table 4-2 (Cont.) Metrics Reference
6 ocscp_metric_total_http_tx_res_xx
TotalnumberofHTTPresponseforwarded bySCPwithaggregatedHTTPresponse codes(e.g.,2xx,5xx,etc.)
ocscp_response_code_class(e.g., 2xx, 5xx, etc.) ocscp_nf_type( e.g., UDM, PCF, AMF, etc.) ocscp_nf_service_type(e.g., nudm-uecm, nudm-sdm, etc.) ocscp_locality( SCP site name e.g., Loc6, Loc7, etc.
)
ocscp_metric_total_http_tx_res_xx{ocscp_response_code_class="2"} ocscp_metric_total_http_tx_res_xx{ocscp_nf_type="UDM"} ocscp_metric_total_http_tx_res_xx{ocscp_nf_service_type="nudm-uecm"} ocscp_metric_total_http_tx_res_xx{ocscp_locality="Loc7"}
SCPUsage
7 ocscp_metric_total_http_rx_messages
Totalincoming( rx )messages toSPF.Thisincludesrequests andresponses.
ocscp_nf_type ( e.g., UDM, PCF, AMF, etc.) ocscp_nf_service_type( e.g., nudm-uecm, nudm-sdm, etc.) ocscp_locality( SCP site name e.g., Loc6, Loc7, etc.)
ocscp_metric_total_http_rx_messages{ocscp_nf_type="UDM"} ocscp_metric_total_http_rx_messages{ocscp_nf_service_type="nudm-uecm"} ocscp_metric_total_http_rx_messages{ocscp_locality="Loc7"}
SCPUsage
Chapter 4Metrics Reference
4-8
Table 4-2 (Cont.) Metrics Reference
8 ocscp_metric_total_http_tx_messages
Totaloutgoing( tx )messages fromSPF.Thisincludesrequests andresponses.
ocscp_nf_type( e.g., UDM, PCF, AMF, etc.) ocscp_nf_service_type (e.g., nudm-uecm, nudm-sdm, etc.) ocscp_nf_end_point( Default value = 0.0:00 ) ocscp_locality( SCP site name e.g., Loc6, Loc7, etc.) ocscp_nf_instance_id( e.g., 6faf1bbc-6e4a-4454-a507-a14ef8e1bc5c, etc. Default value = NA) ocscp_service_instance_id( e.g., fe137ab7-740a-46ee-aa5c-951806d77b02, etc. Default value = NA)
ocscp_metric_total_http_tx_messages{ocscp_nf_type="UDM"} ocscp_metric_total_http_tx_messages{ocscp_nf_service_type="nudm-uecm"} ocscp_metric_total_http_tx_messages{ocscp_nf_end_point="10.96.166.65:80"} ocscp_metric_total_http_tx_messages{ocscp_locality="Loc7"} ocscp_metric_total_http_tx_messages{ocscp_nf_instance_id="6faf1bbc-6e4a-4454-a507-a14ef8e1bc5c"} ocscp_metric_total_http_tx_messages{ocscp_service_instance_id="fe137ab7-740a-46ee-aa5c-951806d77b02"}
SCPUsage
Chapter 4Metrics Reference
4-9
Table 4-2 (Cont.) Metrics Reference
9 ocscp_metric_total_attempts_to_forward_route
Totalnumberofrequests thatmatched thecatch-all-routeroutingrule.
ocscp_nf_type( e.g., UDM, PCF, AMF, etc.) ocscp_nf_service_type (e.g., nudm-uecm, nudm-sdm, etc.) ocscp_nf_end_point( Default value = 0.0:00 ) ocscp_locality( SCP site name e.g., Loc6, Loc7, etc.) ocscp_nf_instance_id( e.g., 6faf1bbc-6e4a-4454-a507-a14ef8e1bc5c, etc. Default value = NA) ocscp_service_instance_id( e.g., fe137ab7-740a-46ee-aa5c-951806d77b02, etc.
Default value = NA
ocscp_metric_total_attempts_to_forward_route{ocscp_nf_type="UDM"} ocscp_metric_total_attempts_to_forward_route{ocscp_nf_service_type="nudm-uecm"} ocscp_metric_total_attempts_to_forward_route{ocscp_nf_end_point="10.96.166.65:80"} ocscp_metric_total_attempts_to_forward_route{ocscp_locality="Loc7"} ocscp_metric_total_attempts_to_forward_route{ocscp_nf_instance_id="6faf1bbc-6e4a-4454-a507-a14ef8e1bc5c"} ocscp_metric_total_attempts_to_forward_route{ocscp_service_instance_id="fe137ab7-740a-46ee-aa5c-951806d77b02"}
SCPUsage
Chapter 4Metrics Reference
4-10
Table 4-2 (Cont.) Metrics Reference
10 ocscp_metric_total_upstream_send_fail
TotalnumberofrequestthatSCPfailedto sendto theupstreamcluster
ocscp_nf_type( e.g., UDM, PCF, AMF, etc.) ocscp_nf_service_type (e.g., nudm-uecm, nudm-sdm, etc.) ocscp_nf_end_point( Default value = 0.0:00 ) ocscp_locality( SCP site name e.g., Loc6, Loc7, etc.) ocscp_nf_instance_id( e.g., 6faf1bbc-6e4a-4454-a507-a14ef8e1bc5c, etc. Default value = NA) ocscp_service_instance_id( e.g., fe137ab7-740a-46ee-aa5c-951806d77b02, etc. Default value = NA)
ocscp_metric_total_upstream_send_fail{ocscp_nf_type="UDM"} ocscp_metric_total_upstream_send_fail{ocscp_nf_service_type="nudm-uecm"} ocscp_metric_total_upstream_send_fail{ocscp_nf_end_point="10.96.166.65:80"} ocscp_metric_total_upstream_send_fail{ocscp_locality="Loc7"} ocscp_metric_total_upstream_send_fail{ocscp_nf_instance_id="6faf1bbc-6e4a-4454-a507-a14ef8e1bc5c"} ocscp_metric_total_upstream_send_fail{ocscp_service_instance_id="fe137ab7-740a-46ee-aa5c-951806d77b02"}
SCPUsage
Chapter 4Metrics Reference
4-11
Table 4-2 (Cont.) Metrics Reference
11 ocscp_metric_total_routing_send_fail
TotalnumberofrequestthatSCPfailedto routedue toanyreason
ocscp_nf_type( e.g., UDM, PCF, AMF, etc.) ocscp_nf_service_type (e.g., nudm-uecm, nudm-sdm, etc.) ocscp_nf_end_point( Default value = 0.0:00 ) ocscp_locality( SCP site name e.g., Loc6, Loc7, etc.) ocscp_nf_instance_id( e.g., 6faf1bbc-6e4a-4454-a507-a14ef8e1bc5c, etc. Default value = NA) ocscp_service_instance_id( e.g., fe137ab7-740a-46ee-aa5c-951806d77b02, etc. Default value = NA)
ocscp_metric_total_routing_send_fail{ocscp_nf_type="UDM"} ocscp_metric_total_routing_send_fail{ocscp_nf_service_type="nudm-uecm"} ocscp_metric_total_routing_send_fail{ocscp_nf_end_point="10.96.166.65:80"} ocscp_metric_total_routing_send_fail{ocscp_locality="Loc7"} ocscp_metric_total_routing_send_fail{ocscp_nf_instance_id="6faf1bbc-6e4a-4454-a507-a14ef8e1bc5c"} ocscp_metric_total_routing_send_fail{ocscp_service_instance_id="fe137ab7-740a-46ee-aa5c-951806d77b02"}
SCPUsage
Chapter 4Metrics Reference
4-12
Table 4-2 (Cont.) Metrics Reference
12 ocscp_metric_request_processing_time
Thismetriccaptures theprocessingtime bySCPforingressrequests intothetimebuckets(e.g.,1ms,2ms,4ms,8msand soon)
ocscp_nf_type( e.g., UDM, PCF, AMF, etc.) ocscp_nf_service_type (e.g., nudm-uecm, nudm-sdm, etc.) ocscp_nf_end_point( Default value = 0.0:00 ) ocscp_locality( SCP site name e.g., Loc6, Loc7, etc.) ocscp_nf_instance_id( e.g., 6faf1bbc-6e4a-4454-a507-a14ef8e1bc5c, etc. Default value = NA) ocscp_service_instance_id( e.g., fe137ab7-740a-46ee-aa5c-951806d77b02, etc. Default value = NA) ocscp_processing_time(e.g., 1ms, 2ms, 4ms, 8ms, etc.)
ocscp_metric_request_processing_time{ocscp_nf_type="UDM"} ocscp_metric_request_processing_time{ocscp_nf_service_type="nudm-uecm"} ocscp_metric_request_processing_time{ocscp_nf_end_point="10.96.166.65:80"} ocscp_metric_request_processing_time{ocscp_locality="Loc7"} ocscp_metric_request_processing_time{ocscp_nf_instance_id="6faf1bbc-6e4a-4454-a507-a14ef8e1bc5c"} ocscp_metric_request_processing_time{ocscp_service_instance_id="fe137ab7-740a-46ee-aa5c-951806d77b02"} ocscp_metric_request_processing_time{ocscp_processing_time="1ms"}
SCPUsage
Chapter 4Metrics Reference
4-13
Table 4-2 (Cont.) Metrics Reference
13 ocscp_metric_response_processing_time
Thismetriccaptures theprocessingtime bySCPforingressresponses intothetimebuckets(e.g.,1ms,2ms,4ms,8msand soon)
ocscp_nf_type( e.g., UDM, PCF, AMF, etc.) ocscp_nf_service_type (e.g., nudm-uecm, nudm-sdm, etc.) ocscp_nf_end_point( Default value = 0.0:00 ) ocscp_locality( SCP site name e.g., Loc6, Loc7, etc.) ocscp_nf_instance_id( e.g., 6faf1bbc-6e4a-4454-a507-a14ef8e1bc5c, etc. Default value = NA) ocscp_service_instance_id( e.g., fe137ab7-740a-46ee-aa5c-951806d77b02, etc. Default value = NA) ocscp_processing_time(e.g., 1ms, 2ms, 4ms, 8ms, etc.)
ocscp_metric_response_processing_time{ocscp_nf_type="UDM"} ocscp_metric_response_processing_time{ocscp_nf_service_type="nudm-uecm"} ocscp_metric_response_processing_time{ocscp_nf_end_point="10.96.166.65:80"} ocscp_metric_response_processing_time{ocscp_locality="Loc7"} ocscp_metric_response_processing_time{ocscp_nf_instance_id="6faf1bbc-6e4a-4454-a507-a14ef8e1bc5c"} ocscp_metric_response_processing_time{ocscp_service_instance_id="fe137ab7-740a-46ee-aa5c-951806d77b02"} ocscp_metric_response_processing_time{ocscp_processing_time="1ms"}
Traces ReferenceThe following table provides information for Traces for Service Communication Proxy.
Table 4-3 Traces Reference
Field Name Request/ Response Type Descriptioncomponent common The software package,
framework, library, or modulethat generated the associatedSpan.
node_id common Local information:method request,common HTTP method of the request for
the associated Span. Example:"GET","POST"
:scheme request Url scheme is http
Chapter 4Traces Reference
4-14
Table 4-3 (Cont.) Traces Reference
:authority request Authority give you details aboutregistered name or server address,along with optional port and userinformation
:path request A path consists of a sequence ofpath segments separated by aslash ("/") character.
3gpp-sbi-message-priority request This header shall be included inHTTP/2 messages when a priorityfor the message needs to beconveyed
x-forwarded-for request To identify the originating IPaddress of a client.
x-forwarded-proto request To determine the protocol usedbetween the client and the spf.
x-envoy-internal request service wants to know whether arequest is internal origin or not
via request It is used for tracking messageforwards, avoiding request loops,and identifying the protocolcapabilities of senders along therequest/response chain
x-request-id common The x-request-idheader is used touniquely identify a request aswell as perform stable accesslogging and tracing
payload request, common http request body.:status response To determine the http request has
been succeeded or not.content-type response The Content-Type entity header is
used to indicate the media type ofthe resource
content-length response The Content-Length headerindicates the size of the entitybody in the message, in bytes
server response The Server response-header fieldcontains information about thesoftware used by the origin serverto handle the request
date response The time and date, when therequest is processed.
x-envoy-upstream-service-time response Contains the time in millisecondsspent by the upstream hostprocessing the request
location response To provide information about thelocation of a newly createdresource
payload response http response body.http.url request,common Specifies the request's URL.downstream_cluster common A downstream host connects to
Envoy, sends requests, andreceives responses
Chapter 4Traces Reference
4-15
Table 4-3 (Cont.) Traces Reference
user_agent request,common When your browser connects to awebsite, it includes a User-Agentfield in itsHTTPheader
http.protocol common The communication betweenclient and server over HTTP/2.
request_size common HTTP header size.upstream_cluster common An upstream host receives
connections and requests fromEnvoy and returns responses.
http.ststus_code common HTTP response status code forthe associated Span. Example:200, 503, 404
response_size common HTTP header size.response_flag common Additional details about the
response or connection, if anyspan.kind common Specifies the role of the Span in a
RPC communication. In the caseof HTTP communication it isseeingclientandservervalues forthis tag.
error common True, if and only if, theapplication considers theoperation represented by the Spanto have failed
x-request-id request The x-request-idheader is used byEnvoy to uniquely identify arequest as well as perform stableaccess logging and tracing
x-b3-traceid request The x-b3-traceidHTTP header isused by the Zipkin tracer inEnvoy. The TraceId is 64-bit inlength and indicates the overallID of the trace. Every span in atrace shares this ID
x-b3-spanid request The x-b3-spanidHTTP header isused by the Zipkin tracer inEnvoy. The SpanId is 64-bit inlength and indicates the positionof the current operation in thetrace tree
x-b3-sampled request The x-b3-sampledHTTP header isused by the Zipkin tracer inEnvoy. When the Sampled flag iseither not specified or set to 1, thespan will be reported to thetracing system
ueidentitytype request NF type.ueidentityvalue request supi range for NF type .x-envoy-expected-rq-timeout-ms request This is the time in milliseconds
the router expects the request tobe completed
Chapter 4Traces Reference
4-16