7 OCNRF Metrics, KPIs, and Alerts

OCNRF Metrics

This section includes information about Metrics for Oracle Communications Network Repository Function.

Note:

Sample OCNRF dashboard for Grafana is delivered to the customer through OCNRF Custom Templates. Metrics and functions used to achieve KPI are covered in OCNRF Custom Templates. Refer to Oracle Help Center site for the information about OCNRF Custom Templates.

Note:

In the above "NF Screening metrics" table, the dimension NF Type is a requester NF Type.

Dimensions Legend for the Metrics

The following table includes the details about the metrics dimensions:

Table 7-1 Dimensions Legend

Dimension Details
Method HTTP Method Name. For Example:- PUT, GET
Status HTTP Status Code in response
Uri URI defined to identify the Service Operation at Ingress Gateway
Node Name of the kubernetes worker node on which microservice is running
NrfLevel OCNRF Deployment Name by which OCNRF can be identified, it will be OCNRF Instance Id passed through helm
NfType Types of Network Functions (NF)
NfInstanceId Unique identity of the NF Instance sending request to OCNRF
OriginatorNfType NF which originating the request
HttpStatusCode HTTP Status Code
ServiceName Name of the service instance (e.g. "nudm-sdm")
ServiceInstanceId Unique ID of the service instance within a given NF Instance
UpdateType(Partial/Complete) NF Update with PUT (Complete) or PATCH (Partial) methods
OperationType Dimension is for NFSubscribe Service operation to tell if the request is to create or update the subscription
NF type Dimension indicates the NF type which originating the request
NotificationEventType This dimension indicates subscription request is for which event types. For example:- NF_REGISTERED, NF_DEREGISTERED and NF_PROFILE_CHANGED
TargetNfType Dimension indicates request is for which target NF type
RequesterNfType Dimension indicates the NF type which originated the request
ClientNfType Dimension indicates the NF type which originating the request
TargetNfInstanceId Dimension indicates the target NF Instance Id for NF Access Token
ClientNfInstanceId Dimension indicates the client NF Instance Id for NF Access Token
RejectionReason Dimension indicates the rejection reason for NF Access Token
SubscriptionIdType Dimension indicates the Subscription Id type for which SLF query is recieved
GroupId Dimension indicates the GroupId returned by SLF/UDR corresponding to SubscriptionId
BucketSize Dimension indicates how many profiles are returned in the response of Discovery request. Range is not configurable. Possible values are 0-10, +Inf. According to NF profiles returned, corresponding bucket will be incremented by one. For example, if 2 profiles are returned, then bucket 2 will be incremented by one. Profiles getting returned more than 10 will fall in +Inf bucket.

Table 7-2 NRF Common Metrics

Sl. No# Metric Name Metric Details Metric filter Recommended legend to see dimension level data (as applicable) Dimensions Notes
1 Total number of ingress requests Total number of requests received at OCNRF apigateway_http_requests_total
2 NF Register Success Total number of successful NFRegister service operations at OCNRF apigateway_http_responses_total{Status=\"201 CREATED\",Uri=~\".*nnrf-nfm/v1/nf-instances.*\",Method=\"PUT\"} Method- HTTP method of request Status - status code in HTTP response Uri- URI from the request line Node-Name of the kubernetes worker node on which microservice is running
3 NF Update Success (Complete Replacement) Total number of successful NFUpdate service operations at OCNRF apigateway_http_responses_total{Status=\"200 OK\",Uri=~\".*nnrf-nfm/v1/nf-instances.*\",Method=\"PUT\"} Method- HTTP method of request Status - status code in HTTP response Uri- URI from the request line Node-Name of the kubernetes worker node on which microservice is running
4 NF Update Success (Partial Replacement) Total number of successful NFUpdate service operations at OCNRF apigateway_http_responses_total{Status=~\".*2.*\",Uri=~\".*nnrf-nfm/v1/nf-instances.*\",Method=\"PATCH\"} Method- HTTP method of request Status - status code in HTTP response Uri- URI from the request line Node-Name of the kubernetes worker node on which microservice is running
5 NF List/Profile Retrieval Success Total number of successful NF List/Profile retrieval service operations at OCNRF apigateway_http_responses_total{Status=~\".*2.*\",Uri=~\".*nnrf-nfm/v1/nf-instances.*\",Method=\"GET\"} Method- HTTP method of request Status - status code in HTTP response Uri- URI from the request line Node-Name of the kubernetes worker node on which microservice is running
6 Access Token Success Total number of successful Access Token service operations at OCNRF apigateway_http_responses_total{Status=\"200 OK\",Uri=~\".*/oauth2/token*.\"} Method- HTTP method of request Status - status code in HTTP response Uri- URI from the request line Node-Name of the Kubernetes worker node on which micro-service is running
7 NF De-register Success Total number of successful service operations at OCNRF apigateway_http_responses_total{Status=\"204 NO_CONTENT\",Uri=~\".*nnrf-nfm/v1/nf-instances.*\",Method=\"DELETE\"} Method- HTTP method of request Status - status code in HTTP response Uri- URI from the request line Node-Name of the Kubernetes worker node on which micro-service is running
8 NF Subscribe Success Total number of successful NFSubscribe service operations at OCNRF apigateway_http_responses_total{Status=\"201 CREATED\",Uri=~\".*nnrf-nfm/v1/subscriptions.*\",Method=\"POST\"} Method- HTTP method of request Status - status code in HTTP response Uri- URI from the request line Node-Name of the Kubernetes worker node on which micro-service is running
9 NF Unsubscribe Success Total number of successful NFUnSubscribe service operations at OCNRF apigateway_http_responses_total{Status=\"204 NO_CONTENT\",Uri=~\".*nnrf-nfm/v1/subscriptions.*\",Method=\"DELETE\"} Method- HTTP method of request Status - status code in HTTP response Uri- URI from the request line Node-Name of the Kubernetes worker node on which micro-service is running
10 NF Discover Success Total number of successful NFDiscover service operations at OCNRF apigateway_http_responses_total{Status=~\"2.*\",Uri=~\".*nnrf-disc/v1/nf-instances.*\",Method=\"GET\"} Method- HTTP method of request Status - status code in HTTP response Uri- URI from the request line Node-Name of the Kubernetes worker node on which micro-service is running
11 4xx Responses (NF-Instances) Total number of 4xx responses (NfRegister/NfUpdate/NfDelete/NfProfileRetrieval/NfListRetrieval) apigateway_http_responses_total{Status=~"4.*",Uri=~".*nnrf-nfm/v1/nf-instances.*"} Method- HTTP method of request Status - status code in HTTP response Uri- URI from the request line Node-Name of the kubernetes worker node on which microservice is running
12 4xx Responses (Subscriptions) Total number of 4xx responses (NfSubscribe/NfUnsubscribe) apigateway_http_responses_total{Status=~"4.*",Uri=~".*nnrf-nfm/v1/subscriptions.*"} Method- HTTP method of request Status - status code in HTTP response Uri- URI from the request line Node-Name of the kubernetes worker node on which microservice is running
13 4xx Responses (Discovery) Total number of 4xx responses (NfDiscover) apigateway_http_responses_total{Status=~"4.*",Uri=~".*nnrf-disc/v1/nf-instances.*"} Method- HTTP method of request Status - status code in HTTP response Uri- URI from the request line Node-Name of the kubernetes worker node on which microservice is running
14 4xx Responses (AccessToken) Total number of 4xx responses(NfAccessToken) apigateway_http_responses_total{Status=~"4.*",Uri=~".*oauth2/token.*"} Method- HTTP method of request Status - status code in HTTP response Uri- URI from the request line Node-Name of the kubernetes worker node on which microservice is running
15 5xx Responses (NF-Instances) Total number of 5xx responses (NfRegister/NfUpdate/NfDelete/NfProfileRetrieval/NfListRetrieval) apigateway_http_responses_total{Status=~"5.*",Uri=~".*nnrf-nfm/v1/nf-instances.*"} Method- HTTP method of request Status - status code in HTTP response Uri- URI from the request line Node-Name of the kubernetes worker node on which microservice is running
16 5xx Responses (Subscriptions) Total number of 5xx responses (NfSubscribe/NfUnsubscribe) apigateway_http_responses_total{Status=~"5.*",Uri=~".*nnrf-nfm/v1/subscriptions.*"} Method- HTTP method of request Status - status code in HTTP response Uri- URI from the request line Node-Name of the kubernetes worker node on which microservice is running
17 5xx Responses (Discovery) Total number of 5xx responses (NfDiscover) apigateway_http_responses_total{Status=~"5.*",Uri=~".*nnrf-disc/v1/nf-instances.*"} Method- HTTP method of request Status - status code in HTTP response Uri- URI from the request line Node-Name of the kubernetes worker node on which microservice is running
18 5xx Responses (AccessToken) Total number of 5xx responses(NfAccessToken) apigateway_http_responses_total{Status=~"5.*",Uri=~".*oauth2/token.*" Method- HTTP method of request Status - status code in HTTP response Uri- URI from the request line Node-Name of the kubernetes worker node on which microservice is running
19 NfRegistrations Total Number of Registration Requests received ocnrf_nfRegister_rx_requests_total NfRegistrations Total NrfLevel NfInstanceId OriginatorNfType
20 NfRegistrations Responses Total Number of Registration Responses sent. ocnrf_nfRegister_tx_responses_total NfRegistrations Responses Total NrfLevel NfInstanceId OriginatorNfType HttpStatusCode
21 NfRegistrations Per Service Total Number of Registrations received and processed successfully per Service. ocnrf_nfRegister_rx_requests_success_perService_total NfRegistrations Per Service [ serviceName :- {{ serviceName }}, nfInstanceId :- {{NfInstanceId}} ] NrfLevel NfInstanceId ServiceName ServiceInstanceId
22 NFUpdates Total Number of Update Requests received. ocnrf_nfUpdate_rx_requests_total NfUpdates Total NrfLevel NfInstanceId OriginatorNfType UpdateType(Partial/Complete)
23 NFUpdates Responses Total Number of Update Responses sent. ocnrf_nfUpdate_tx_requests_total NfUpdates Responses Total NrfLevel NfInstanceId OriginatorNfType UpdateType(Partial/Complete) HttpStatusCode
24 NFUpdates Per Service Total Number of NfUpdates received and processed successfully per Service. ocnrf_nfUpdate_rx_requests_success_perService_total NFUpdates Per Service [ serviceName :- {{ serviceName }}, serviceInstanceId:- {{ServiceInstanceId}} ] NrfLevel, Updatetype =(Partial/Complete), NfInstanceId, ServiceName, ServiceInstanceId
25 Heartbeat Requests Total Number of Heartbeat Requests received ocnrf_nfHeartbeat_rx_requests_total NrfLevel NfInstanceId OriginatorNfType
26 Heartbeat Responses Total Number of Heartbeat Responses sent ocnrf_nfHeartbeat_tx_responses_total Nrflevel, NfInstanceId, OriginatorNfType, HttpStatusCode
27 NF De-Registration Requests Total Number of De-registration requests received ocnrf_nfDeregister_rx_requests_total NrfLevel, NfInstanceId, OriginatorNfType
28 NF De-Registration Responses Total Number of De-registration responses sent ocnrf_nfDeregister_tx_responses_total NrfLevel, NfInstanceId, OriginatorNfType, HttpStatusCode
29 NF De-Registrations Per Service Total Number of De-registration requests received and process successfully per Service ocnrf_nfDeregister_rx_requests_success_perService_total NFDeregistration Per Service [ serviceName :- {{ serviceName }}, serviceInstanceId:- {{ServiceInstanceId}} ] NrfLevel, ServiceName, ServiceInstanceId, NfInstanceId
30 NF List Retrieval Requests Total Number of NFListRetrieval requests received ocnrf_nfListRetrieval_rx_requests_total NrfLevel, OriginatorNfType
31 NF List Retrieval Responses Total Number of NFListRetrieval responses sent ocnrf_nfListRetrieval_tx_responses_total NrfLevel, OriginatorNfType, HttpStatusCode
32 NF Profile Retrieval Requests Total Number of NFProfileRetrieval requests received ocnrf_nfProfileRetrieval_rx_requests_total NrfLevel, NfInstanceId
33 NF Profile Retrieval Responses Total Number of NFProfileRetrieval responses sent ocnrf_nfProfileRetrieval_tx_responses_total NrfLevel, NfInstanceId, HttpStatusCode
34 Number of Heartbeats missed Number of heartbeats missed. ocnrf_heartbeat_missed_total NrfLevel, NfType, NfInstanceId
35 NF Status Subscribe Requests Total Number of NStatusSubscribe requests received ocnrf_nfStatusSubscribe_rx_requests_total NrfLevel, OriginatorNfType, OperationType
36 NF Status Subscribe Responses Total Number of NfStatusSubscribe responses sent ocnrf_nfStatusSubscribe_tx_responses_total NrfLevel, OriginatorNfType, HttpStatusCode, OperationType
37 NF Status UnSubscribe Requests Total Number of NfStatusUnsubscribe requests received ocnrf_nfStatusUnsubscribe_rx_requests_total NrfLevel, OriginatorNfType
38 NF Status UnSubscribe Responses Total Number of NfStatusUnsubscribe responses sent ocnrf_nfStatusUnsubscribe_tx_responses_total NrfLevel, OriginatorNfType, HttpStatusCode
39 NF Status Notifications Requests Sent Number of NfStatusNotify requests sent ocnrf_nfStatusNotify_tx_requests_total NrfLevel, NotificationEventType, TargetNfType
40 NF Status Notifications Responses Received Number of NfStatusNotify responses received ocnrf_nfStatusNotify_rx_responses_total NrfLevel, NotificationEventType, TargetNfType, HttpStatusCode
41 NF Status Notifications Requests Failed Number of NfStatusNotify requests failed to sent out ocnrf_nfStatusNotify_requests_failed_total ocnrf_nfStatusNotify_requests_failed_total

NrfLevel,

NotificationEventType,

TargetNfType

This metric indicates if Notification message failed to sent out from OCNRF (including Egress gateway too)
42 NfDiscover Requests Total Number of NfDiscover Requests received ocnrf_nfDiscover_rx_requests_total NfDiscover Req [ TargetNf :- {{ TargetNfType }}, RequesterNfType :- {{RequesterNfType}} ] NrfLevel, TargetNfType, RequesterNfType
43 NfDiscover Responses Total Number of NfDiscover responses sent ocnrf_nfDiscover_tx_responses_total NrfLevel, TargetNfType, RequesterNfType, HttpResponseCode
44 NFDiscover Per Service Total Number of NfDiscover requests received and processed successfully per Service ocnrf_nfDiscover_rx_requests_success_perService_total NFDiscover Per Service [ serviceName :- {{ serviceName }} ] NrfLevel, RequesterNfType, ServiceName
45 Discovered profiles Number of Profiles returned in discovery response. Depending on bucket size and corresponding value will tell how many profiles are returned in discovery response. ocnrf_nfDiscover_profiles_discovered_count_total Discovered profiles [ TargetNfType :- {{TargetNfType}}, Bucket :- {{ Bucket }} ] NrfLevel, TargetNfType, BucketSize
46 Active Registrations Number of active registered NFs at any point of time ocnrf_active_registrations_count Active Registrations [ NfType-{{ NfType }}, NrfLevel-{{ NrfLevel }} ] NfType, NrfLevel
47 Avg NRF Latency taken by NRF specific microservice Time taken by NRF specific microservice to process the service operation(NfRegister/NfUpdate/NfDelete/NfProfileRetrieval/NfListRetrieval/NfHeartbeat/NfDiscover/NfSubscribe/NfUnsubscribe/NfAccessToken) ocnrf_message_processing_time_seconds Avg NRF Latency {{ ServiceOperation }} {{ OriginatorNftype }} NrfLevel, OriginatorNfType, ServiceOperation Latency calculated by this metric doesn't include time taken by OCNRF API gateway.
48 Avg NRF Latency Time (in microseconds) to process an ingress request. Measured from when the request is received to when the response is sent apigateway_request_latency_seconds Avg NRF Latency

In the above NRF Metrics table, 4xx and 5xx are the error codes in REST API.

Table 7-3 NF Screening specific metrics

Sl. No# Metric Name Metric Details Metric filter Service Operation Dimensions Notes
1 Total NF Requests for which Screening Failed The total number of requests for which screening failed against NF FQDN screening list. ocnrf_nfScreening_nfFqdn_requestFailed_total NFRegister, NFUpdate NRF level NF type See Note 1 below of this table.
2 Total NF Requests Rejected due to Screening Failed The total number of requests rejected because screening failed against NF FQDN screening list. ocnrf_nfScreening_nfFqdn_requestRejected_total NFRegister, NFUpdate NRF level NF type See Note 1 below of this table.
3 Total NF Requests for which Screening Failed The total number of requests for which screening failed against NF IP endpointscreening list. ocnrf_nfScreening_nfIpEndPoint_requestFailed_total NFRegister, NFUpdate NRF level NF type See Note 1 below of this table.
4 Total NF Requests Rejected due to Screening Failed The total number of requests rejected because screening failed against NF IP endpoint screening list. ocnrf_nfScreening_nfIpEndPoint_requestRejected_total NFRegister, NFUpdate NRF level NF type See Note 1 below of this table.
5 Total NF Requests for which Screening Failed The total number of requests for which screening failed against Callback URIscreening list. ocnrf_nfScreening_callbackUri_requestFailed_total NFRegister, NFUpdate, NFSubscribe NRF level NF type See Note 1 below of this table.
6 Total NF Requests Rejected due to Screening Failed The total number of requests rejected because screening failed against Callback URI screening list. ocnrf_nfScreening_callbackUri_requestRejected_total NFRegister, NFUpdate, NFSubscribe NRF level NF type See Note 1 below of this table.
7 Total NF Requests for which Screening Failed The total number of requests for which screening failed against PLMN idscreening list. ocnrf_nfScreening_plmnId_requestFailed_total NFRegister, NFUpdate NRF level NF type See Note 1 below of this table.
8 Total NF Requests Rejected due to Screening Failed The total number of requests rejected because screening failed against PLMN id screening list. ocnrf_nfScreening_plmnId_requestRejected_total NFRegister, NFUpdate NRF level NF type See Note 1 below of this table.
9 Total NF Requests for which Screening Failed The total number of NFRegister requests rejected as NF type was not allowed to register with NRF. ocnrf_nfScreening_nfTypeRegister_requestFailed_total NFRegister NRF level NF type See Note 1 below of this table.
10 Total NF Requests Rejected due to Screening Failed The total number of NFRegister requests for which screening failed against NF type screening list. ocnrf_nfScreening_nfTypeRegister_requestRejected_total NFRegister NRF level NF type See Note 1 below of this table.
11 NF Screening not applied Internal Error The total number of times screening not applied due to internal error. ocnrf_nfScreening_notApplied_InternalError_total NFRegister, NFUpdate, NFSubscribe NRF level NF type See Note 1 below of this table.

NF Access token metrics

Table 7-4 NF Access token metrics

Sl. No# Metric Name Metric Details Metric filter Service Operation Dimensions Notes
1 NF Access Token Request Received Total The total number of access token requests received ocnrf_accessToken_rx_requests_total Access Token TargetNfType, ClientNfType, TargetNfInstanceId, ClientNfInstanceId, ServiceName, NrfLevel
2 NF Access Token Responses Sent Total The total number of access token responses sent ocnrf_accessToken_tx_responses_total Access Token TargetNfType, ClientNfType, TargetNfInstanceId, ClientNfInstanceId, ServiceName, NrfLevel, HttpStatusCode
3 NF Access Token Request Rejected (ClientNotAuthorized) Number of access token request for which client authorized failed RejectionReason = ClientNotAuthorized ocnrf_accessToken_tx_rejected_total Access Token TargetNfType, ClientNfType, TargetNfInstanceId, ClientNfInstanceId, ServiceName, NrfLevel, RejectionReason HttpStatusCode RejectionReason = ClientNotAuthorized
4 NF Access Token Request Rejected (ProducerWithRequestedScopeNotFound) Number of access token not granted because of no producer instance registered for service/s in the scope RejectionReason = ProducerWithRequestedScopeNotFound ocnrf_accessToken_tx_rejected_total Access Token TargetNfType, ClientNfType, TargetNfInstanceId, ClientNfInstanceId, ServiceName, NrfLevel, RejectionReason HttpStatusCode RejectionReason = ProducerWithRequestedScopeNotFound
5 NF Access Token Request Rejected (ProducerWithRequestedNfInstanceIdNotFound) Number of access token not granted because of no producer instance registered for No producer instance is registered at all for provided target Instance Id in request. RejectionReason = ProducerWithRequestedNfInstanceIdNotFound ocnrf_accessToken_tx_rejected_total Access Token TargetNfType, ClientNfType, TargetNfInstanceId, ClientNfInstanceId, ServiceName, NrfLevel, RejectionReason HttpStatusCode RejectionReason = ProducerWithRequestedNfInstanceIdNotFound
6 NF Access Token Request Rejected (InconsistentScope) Number of access token not granted because services in the scope belong to different NF types. RejectionReason = InconsistentScope ocnrf_accessToken_tx_rejected_total Access Token TargetNfType, ClientNfType, TargetNfInstanceId, ClientNfInstanceId, ServiceName, NrfLevel, RejectionReason HttpStatusCode RejectionReason = InconsistentScope
7 NF Access Token Request Rejected (ConsumerNFTypeMismatch) Number of access token not granted because consumer NF type in profile is not matching with the access token request. RejectionReason = ConsumerNFTypeMismatch ocnrf_accessToken_tx_rejected_total Access Token TargetNfType, ClientNfType, TargetNfInstanceId, ClientNfInstanceId, ServiceName, NrfLevel, RejectionReason HttpStatusCode RejectionReason = ConsumerNFTypeMismatch
8 NF Access Token Request Rejected (ProducerNFTypeMismatch) Number of access token not granted because producer NF type in profile is not matching with the access token request. RejectionReason = ProducerNFTypeMismatch ocnrf_accessToken_tx_rejected_total Access Token TargetNfType, ClientNfType, TargetNfInstanceId, ClientNfInstanceId, ServiceName, NrfLevel, RejectionReason HttpStatusCode RejectionReason = ProducerNFTypeMismatch
9 NF Access Token Request Rejected (InternalError) Number of access token not granted because failure at NRF due to internal error. RejectionReason = InternalError ocnrf_accessToken_tx_rejected_total Access Token TargetNfType, ClientNfType, TargetNfInstanceId, ClientNfInstanceId, ServiceName, NrfLevel, RejectionReason HttpStatusCode RejectionReason= InternalError

NRF-SLF specific metrics

Table 7-5 NRF-SLF specific metrics

Sl. No# Metric Name Metric Details Metric filter Service Operation Dimensions
1 Discover Request Received For SLF Total The total number of NF Discover request received for SLF ocnrf_nfDiscover_ForSLF_rx_requests_total NFDiscover TargetNfType, NRFLevel
2 Discover Response Sent For SLF Total The total number of NF Discover responses sent for SLF ocnrf_nfDiscover_ForSLF_tx_responses_total NFDiscover TargetNfType, NRFLevel, HttpStatusCode, RejectionReason Possible Reject reasons:- RejectionReason = SLFCommunicationFailure RejectionReason = MandatoryParamsMissing RejectionReason = SLFConfigurationMissing RejectionReason = GroupIdNotFound RejectionReason = ErrorFromSLF RejectionReason = InternalError RejectionReason= *NotApplicable *NotApplicable is applicable for 2xx Status code
3 SLF Query Requests Sent Total The total number of SLF query request sent ocnrf_SLF_tx_requests_total NFDiscover TargetNfType, NRFLevel, SubscriptionIdType
4 SLF Query Responses Received Total The total number of SLF query response received ocnrf_SLF_rx_responses_total NFDiscover TargetNfType, NRFLevel, SubscriptionIdTypeHttpStatusCode, GroupId

NRF Forwarding Metrics

Table 7-6 NRF Forwarding Metrics

Sl. No# Metric Name Metric Details Metric filter Service Operation Dimensions
1 NF Access Token Requests Forwarded Total The total number of Access Token Request forwarded to Primary/Secondary NRF ocnrf_forward_accessToken_tx_requests_total AccessToken TargetNfType, ClientNfType, TargetNfInstanceId, ClientNfInstanceId, ServiceName, NrfLevel
2 NF Access Token Forwarded Responses Total The total number of Access Token Responses for request forwarded to Primary/Secondary NRF ocnrf_forward_accessToken_rx_responses_total AccessToken TargetNfType, ClientNfType, TargetNfInstanceId, ClientNfInstanceId, ServiceName, NrfLevel,HttpStatusCode, RejectionReason RejectionReason:
  • InternalError
  • NRFCommunicationFailure
  • ErrorFromNRF
  • NRFForwardingConfigurationMissing
  • LoopDetected

*NotApplicable is applicable for 2xx Status code

3 NF Profile Retrieval Requests Forwarded Total The total number of Profile Retrieval Request forwarded to Primary/Secondary NRF ocnrf_forward_nfProfileRetrieval_tx_requests_total NFProfileRetrieval NrfLevel, NfInstanceId
4 NF Profile Retrieval Forwarded Responses Total The total number of Profile Retrieval Responses for Request forwarded to Primary/Secondary NRF ocnrf_forward_nfProfileRetrieval_rx_responses_total NFProfileRetrieval NrfLevel, NfInstanceId, HttpStatusCode, RejectionReason RejectionReason:
  • InternalError
  • NRFCommunicationFailure
  • ErrorFromNRF
  • NRFForwardingConfigurationMissing
  • LoopDetected

*NotApplicable is applicable for 2xx Status code

5 NF Status Subscribe Forwarded Requests Total The total number of Status Subscribe Request forwarded to Primary/Secondary NRF ocnrf_forward_nfStatusSubscribe_tx_requests_total NFStatusSubscribe, NFStatusUnsubscribe NrfLevel, OriginatorNfType, OperationType
6 NF Status Subscribe Forwarded Responses Total The total number of Responses for Status Subscribe Request forwarded to Primary/Secondary NRF ocnrf_forward_nfStatusSubscribe_rx_responses_total NFStatusSubscribe, NFStatusUnsubscribe, NrfLevel, OriginatorNfType, HttpStatusCode, OperationType, RejectionReason RejectionReason:
  • InternalError
  • NRFCommunicationFailure
  • ErrorFromNRF
  • NRFForwardingConfigurationMissing
  • LoopDetected

*NotApplicable is applicable for 2xx Status code

7 NF Discovery Forwarded Requests Total The total number of NF Discovery Request forwarded to Primary/Secondary NRF ocnrf_forward_nfDiscover_tx_requests_total NFDiscover NrfLevel, TargetNfType, RequesterNfType
8 NF Discovery Forwarded Responses Total The total number of Responses for NF Discovery Request forwarded to Primary/Secondary NRF ocnrf_forward_nfDiscover_rx_responses_total NFDiscover NrfLevel, TargetNfType, RequesterNfType, HttpResponseCode, RejectionReason RejectionReason:
  • InternalError
  • NrfCommunicationFailure
  • NrfForwardingConfigurationMissing
  • LoopDetected

ErrorFromNrf

*NotApplicable is applicable for 2xx Status code

9 Avg Latency for NRF Message Forwarding Time taken by NRF specific microservice to forward the message to other Primary/Secondary NRF with the service operation: (NFProfileRetrieval/NFDiscover/NFStatusSubscribe/NfStatusUnsubscribe/AccessToken) ocnrf_forward_message_roundTripTime_seconds NFStatusSubscribe, NFStatusUnsubscribe, NFProfileRetrieval, NFDiscover, AccessToken NrfLevel, OriginatorNfType, ServiceOperation

OCNRF KPIs

This section includes information about KPIs for Oracle Communications Network Repository Function (OCNRF).

Note:

Sample OCNRF dashboard for Grafana is delivered to the customer through OCNRF Custom Templates. Metrics and functions used to achieve KPI are already covered in OCNRF Custom Templates. Please view the Oracle Help Center site for the information about OCNRF Custom Templates.

Table 7-7 KPI Details

Sl. No# KPI Name KPI Details Metric used for KPI Service Operation Response code
1 OCNRF Ingress Request Rate of HTTP requestes recieved at OCNRF Ingress Gateway apigateway_http_requests_total All Not Applicable
2 NF Register Success sum(increase(apigateway_http_responses_total{Status="201 CREATED",Uri=~".*nnrf-nfm/v1/nf-instances.*",Method="PUT"}[5m])) NFRegister 201
3 NF Update Success (Complete Replacement) sum(increase(apigateway_http_responses_total{Status="200 OK",Uri=~".*nnrf-nfm/v1/nf-instances.*",Method="PUT"}[5m])) NFUpdate 200
4 NF DeRegister Success sum(increase(apigateway_http_responses_total{Status="204 NO_CONTENT",Uri=~".*nnrf-nfm/v1/nf-instances.*",Method="DELETE"}[5m])) NFDeregister 204
5 NF Subscribe Success sum(increase(apigateway_http_responses_total{Status="201 CREATED",Uri=~".*nnrf-nfm/v1/subscriptions.*",Method="POST"}[5m])) NFStatusSubscribe 201
6 NF Unsubscribe Success sum(increase(apigateway_http_responses_total{Status="204 NO_CONTENT",Uri=~".*nnrf-nfm/v1/subscriptions.*",Method="DELETE"}[5m])) NFStatusUnsubscribe 204
7 NF Discover Success sum(increase(apigateway_http_responses_total{Status=~"2.*",Uri=~".*nnrf-disc/v1/nf-instances.*",Method="GET"}[5m])) NFDiscover 200
8 4xx Responses (NF-Instances) sum(increase(apigateway_http_responses_total{Status=~"4.*",Uri=~".*nnrf-nfm/v1/nf-instances.*"}[5m])) NFRegister/NFUpdate/NFDeregister 4xx
9 4xx Responses (Subscriptions) sum(increase(apigateway_http_responses_total{Status=~"4.*",Uri=~".*nnrf-nfm/v1/subscriptions.*"}[5m])) NFStatusSubscribe/NFStatusUnsubscribe 4xx
10 4xx Responses (Discovery) sum(increase(apigateway_http_responses_total{Status=~"4.*",Uri=~".*nnrf-disc/v1/nf-instances.*"}[5m])) NFDiscover 4xx
11 5xx Responses (NF-Instances) sum(increase(apigateway_http_responses_total{Status=~"5.*",Uri=~".*nnrf-nfm/v1/nf-instances.*"}[5m])) NFRegister/NFUpdate/NFDeregister 5xx
12 5xx Responses (Subscriptions) asum(increase(apigateway_http_responses_total{Status=~"5.*",Uri=~".*nnrf-nfm/v1/subscriptions.*"}[5m])) NFStatusSubscribe/NFStatusUnsubscribe 5xx
13 5xx Responses (Discovery) sum(increase(apigateway_http_responses_total{Status=~"5.*",Uri=~".*nnrf-disc/v1/nf-instances.*"}[5m])) NFDiscover 5xx

OCNRF Alerts

This section includes information about alerts for OCNRF.

Table 7-8 OCNRF Alert Details

Alert Name Alert Description Severity Alert Details
OcnrfTrafficRateAboveCriticalThreshold Alert if Ingress traffic reaches 95% of Max requests per secon Critical Traffic Rate is above critical threshold.
OcnrfTrafficRateAboveMajorThreshold Alert if Ingress traffic reaches 90% of Max requests per secon Major Traffic Rate is above major threshold.
OcnrfTrafficRateAboveMinorThreshold Alert if Ingress traffic reaches 80% of Max requests per second Minor Traffic Rate is above minor threshold.
OcnrfTransactionErrorRateAbove0.1Percent Alert if error rate exceeds 0.1% of the total transactions Warning Transaction Error rate is above 0.1 Percent of Total Transactions.
OcnrfTransactionErrorRateAbove1Percent Alert if error rate exceeds 1% of the total transactions Warning Transaction Error rate is above 1 Percent of Total Transactions.
OcnrfTransactionErrorRateAbove10Percent Alert if error rate exceeds 10% of the total transactions Minor Transaction Error rate is above 10 Percent of Total Transactions.
OcnrfTransactionErrorRateAbove25Percent Alert if error rate exceeds 25% of the total transactions Major Transaction Error rate is above 25 Percent of Total Transactions.
OcnrfTransactionErrorRateAbove50Percent Alert if error rate exceeds 50% of the total transactions Critical Transaction Error rate is above 50 Percent of Total Transactions.
OcnrfActiveSubscribersBelowThreshold

Alert if the number of registered NFs is approaching minor threshold (The operator shall define the threshold as per requirement. Default range: 20-29)

Warning The number of registered NFs is approaching minor threshold.

Note: The threshold ranges needs to be updated accordingly to the requirement.

OcnrfActiveSubscribersBelowMinorThreshold

Alert if the number of registered NFs is below minor threshold (The operator shall define the threshold as per requirement. Default range: 10-19)

Minor The number of registered NFs is below minor threshold.

Note: The threshold ranges needs to be updated accordingly to the requirement.

OcnrfActiveSubscribersBelowMajorThreshold

Alert if the number of registered NFs is below major threshold (The operator shall define the threshold as per requirement. Default range: 2-9)

Major The number of registered NFs is below major threshold.

Note: The threshold ranges needs to be updated accordingly to the requirement.

OcnrfActiveSubscribersBelowCriticalThreshold

Alert if the number of registered NFs is below critical threshold (The operator shall define the threshold as per requirement. Default range: < 2)

Critical The number of registered NFs is below critical threshold.

Note: The threshold ranges needs to be updated accordingly to the requirement.

Note:

Max requests/sec in consideration is 1000/second

OCNRF Alert Configuration

Follow the steps below for OCNRF Alert configuration in Prometheus:

Note:

  1. By default Namespace for OCNRF is ocnrf that must be update as per the deployment.
  2. The ocnrf-config-1.5.1.0.0.zip file can be downloaded from OHC.

    Unzip the ocnrf-config-1.5.1.0.0.zip package after downloading to get NrfAlertrules-1.5.1.yaml file.

Procedure
  1. Take Backup of current configuration map of Prometheus:
    kubectl get configmaps _NAME_-server -o yaml -n _Namespace_ > /tmp/tempConfig.yaml
  2. Check and add OCNRF Alert file name inside Prometheus configuration map:
    sed -i '/etc\/config\/alertsnrf/d' /tmp/tempConfig.yaml
    sed -i '/rule_files:/a\  \- /etc/config/alertsnrf' /tmp/tempConfig.yaml
  3. Update configuration map with updated file name of OCNRF alert file:
    kubectl replace configmap _NAME_-server -f /tmp/tempConfig.yaml
  4. Add OCNRF Alert rules in configuration map under file name of OCNRF alert file:
    kubectl patch configmap _NAME_-server -n _Namespace_--type merge --patch
    "$(cat ~/NrfAlertrules.yaml)"

Note:

The Prometheus server takes an updated configuration map that is automatically reloaded after approximately 60 seconds. Refresh the Prometheus GUI to confirm that the OCNRF Alerts have been reloaded.
OCNRF Alert Config Details

Note:

  • By default the NameSpace is set to ocnrf. Update it according to the requirement.
  • Update the number of registered NFs according to the requirement.
  • Max request/sec in consideration is 1000 requests /second

Sample:

apiVersion: v1
data:
  alertsnrf: |
    groups:
    - name: OcnrfAlerts
      rules:
      - alert: OcnrfTrafficRateAboveMinorThreshold
        annotations:
          description: 'Ingress traffic Rate is above minor threshold i.e. 800 requests per second (current value is: {{ $value }})'
          summary: 'Traffic Rate is above 80 Percent of Max requests per second(1000)'
        expr: sum(rate(apigateway_http_requests_total{app_kubernetes_io_name="ingressgateway",kubernetes_namespace="ocnrf"}[2m])) >= 800 < 900
        labels:
          severity: Minor
      - alert: OcnrfTrafficRateAboveMajorThreshold
        annotations:
          description: 'Ingress traffic Rate is above major threshold i.e. 900 requests per second (current value is: {{ $value }})'
          summary: 'Traffic Rate is above 90 Percent of Max requests per second(1000)'
        expr: sum(rate(apigateway_http_requests_total{app_kubernetes_io_name="ingressgateway",kubernetes_namespace="ocnrf"}[2m])) >= 900 < 950
        labels:
          severity: Major
      - alert: OcnrfTrafficRateAboveCriticalThreshold
        annotations:
          description: 'Ingress traffic Rate is above critical threshold i.e. 950 requests per second (current value is: {{ $value }})'
          summary: 'Traffic Rate is above 95 Percent of Max requests per second(1000)'
        expr: sum(rate(apigateway_http_requests_total{app_kubernetes_io_name="ingressgateway",kubernetes_namespace="ocnrf"}[2m])) >= 950
        labels:
          severity: Critical
      - alert: OcnrfTransactionErrorRateAbove0.1Percent
        annotations:
          description: 'Transaction Error rate is above 0.1 Percent of Total Transactions (current value is {{ $value }})'
          summary: 'Transaction Error Rate detected above 0.1 Percent of Total Transactions'
        expr: (sum(rate(apigateway_http_responses_total{Status!~"2.*",app_kubernetes_io_name="ingressgateway",kubernetes_namespace="ocnrf"}[2m]) or (up * 0 ) ) )/sum(rate(apigateway_http_responses_total{app_kubernetes_io_name="ingressgateway",kubernetes_namespace="ocnrf"}[2m])) * 100 >= 0.1 < 1
        labels:
          severity: Warning
      - alert: OcnrfTransactionErrorRateAbove1Percent
        annotations:
          description: 'Transaction Error rate is above 1 Percent of Total Transactions (current value is {{ $value }})'
          summary: 'Transaction Error Rate detected above 1 Percent of Total Transactions'
        expr: (sum(rate(apigateway_http_responses_total{Status!~"2.*",app_kubernetes_io_name="ingressgateway",kubernetes_namespace="ocnrf"}[2m]) or (up * 0 ) ) )/sum(rate(apigateway_http_responses_total{app_kubernetes_io_name="ingressgateway",kubernetes_namespace="ocnrf"}[2m])) * 100 >= 1 < 10
        labels:
          severity: Warning
      - alert: OcnrfTransactionErrorRateAbove10Percent
        annotations:
          description: 'Transaction Error rate is above 10 Percent of Total Transactions (current value is {{ $value }})'
          summary: 'Transaction Error Rate detected above 10 Percent of Total Transactions'
        expr: (sum(rate(apigateway_http_responses_total{Status!~"2.*",app_kubernetes_io_name="ingressgateway",kubernetes_namespace="ocnrf"}[2m]) or (up * 0 ) ) )/sum(rate(apigateway_http_responses_total{app_kubernetes_io_name="ingressgateway",kubernetes_namespace="ocnrf"}[2m])) * 100 >= 10 < 25
        labels:
          severity: Minor
      - alert: OcnrfTransactionErrorRateAbove25Percent
        annotations:
          description: 'Transaction Error Rate detected above 25 Percent of Total Transactions (current value is {{ $value }})'
          summary: 'Transaction Error Rate detected above 25 Percent of Total Transactions'
        expr: (sum(rate(apigateway_http_responses_total{Status!~"2.*",app_kubernetes_io_name="ingressgateway",kubernetes_namespace="ocnrf"}[2m]) or (up * 0 ) ) )/sum(rate(apigateway_http_responses_total{app_kubernetes_io_name="ingressgateway",kubernetes_namespace="ocnrf"}[2m])) * 100 >= 25 < 50
        labels:
          severity: Major
      - alert: OcnrfTransactionErrorRateAbove50Percent
        annotations:
          description: 'Transaction Error Rate detected above 50 Percent of Total Transactions (current value is {{ $value }})'
          summary: 'Transaction Error Rate detected above 50 Percent of Total Transactions'
        expr: (sum(rate(apigateway_http_responses_total{Status!~"2.*",app_kubernetes_io_name="ingressgateway",kubernetes_namespace="ocnrf"}[2m]) or (up * 0 ) ) )/sum(rate(apigateway_http_responses_total{app_kubernetes_io_name="ingressgateway",kubernetes_namespace="ocnrf"}[2m])) * 100 >= 50
        labels:
          severity: Critical
      # Operator shall configure the threshold values with respect to the number of NFs expected within  the network
      - alert: OcnrfActiveSubscribersBelowCriticalThreshold
        annotations:
          description: 'The number of registered NFs detected below critical threshold (current value is: {{ $value }})'
          summary: 'The number of registered NFs detected below critical threshold.'
        expr: ocnrf_active_registrations_count{app_kubernetes_io_name="nrfauditor",kubernetes_namespace="ocnrf"} >= 0 < 2
        labels:
          severity: Critical
      - alert: OcnrfActiveSubscribersBelowMajorThreshold
        annotations:
          description: 'The number of registered NFs detected below major threshold (current value is: {{ $value }})'
          summary: 'The number of registered NFs detected below major threshold.'
        expr: ocnrf_active_registrations_count{app_kubernetes_io_name="nrfauditor",kubernetes_namespace="ocnrf"} >= 2 < 10
        labels:
          severity: Major
      - alert: OcnrfActiveSubscribersBelowMinorThreshold
        annotations:
          description: 'The number of registered NFs detected below minor threshold (current value is: {{ $value }})'
          summary: 'The number of registered NFs detected below minor threshold.'
        expr: ocnrf_active_registrations_count{app_kubernetes_io_name="nrfauditor",kubernetes_namespace="ocnrf"} >= 10 < 20
        labels:
          severity: Minor
      - alert: OcnrfActiveSubscribersBelowThreshold
        annotations:
          description: 'The number of registered NFs is approaching minor threshold (current value is: {{ $value }})'
          summary: 'The number of registered NFs approaching minor threshold.'
        expr: ocnrf_active_registrations_count{app_kubernetes_io_name="nrfauditor",kubernetes_namespace="ocnrf"} >= 20 < 30
        labels:
          severity: Warning