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:
*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:
*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:
*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:
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/secondOCNRF Alert Configuration
Follow the steps below for OCNRF Alert configuration in Prometheus:
Note:
- By default
Namespace
for OCNRF isocnrf
that must be update as per the deployment. - 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 getNrfAlertrules-1.5.1.yaml
file.
- Take Backup of current
configuration map of Prometheus:
kubectl get configmaps _NAME_-server -o yaml -n _Namespace_ > /tmp/tempConfig.yaml
- 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
- Update configuration map
with updated file name of OCNRF alert file:
kubectl replace configmap _NAME_-server -f /tmp/tempConfig.yaml
- 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.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