Metrics for the Indication message
Metrics for the Indication message and code formatting.
Signed-off-by: subhash kumar singh <subh.singh@samsung.com>
Change-Id: I4d23aca9c2b9f258cfc39d69fc41eb125ae8c4fc
diff --git a/hwApp.go b/hwApp.go
index cd1d7b5..b368db9 100755
--- a/hwApp.go
+++ b/hwApp.go
@@ -21,32 +21,33 @@
package main
import (
- "encoding/json"
- "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/clientmodel"
+ "encoding/json"
+
+ "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/clientmodel"
"gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
)
type HWApp struct {
+ stats map[string]xapp.Counter
}
var (
A1_POLICY_QUERY = 20013
POLICY_QUERY_PAYLOAD = "{\"policy_type_id\":20000}"
- reqId = int64(1)
- seqId = int64(1)
- funId = int64(1)
- actionId = int64(1)
- actionType = "report"
- subsequestActioType = "continue"
- timeToWait = "w10ms"
- direction = int64(0)
- procedureCode = int64(27)
- typeOfMessage = int64(1)
- subscriptionId = ""
- hPort = int64(8080)
- rPort = int64(4560)
- clientEndpoint = clientmodel.SubscriptionParamsClientEndpoint{Host: "service-ricxapp-hw-go-http.ricxapp", HTTPPort: &hPort, RMRPort: &rPort}
-
+ reqId = int64(1)
+ seqId = int64(1)
+ funId = int64(1)
+ actionId = int64(1)
+ actionType = "report"
+ subsequestActioType = "continue"
+ timeToWait = "w10ms"
+ direction = int64(0)
+ procedureCode = int64(27)
+ typeOfMessage = int64(1)
+ subscriptionId = ""
+ hPort = int64(8080)
+ rPort = int64(4560)
+ clientEndpoint = clientmodel.SubscriptionParamsClientEndpoint{Host: "service-ricxapp-hw-go-http.ricxapp", HTTPPort: &hPort, RMRPort: &rPort}
)
func (e *HWApp) sendPolicyQuery() {
@@ -71,109 +72,114 @@
xapp.Logger.Info("Config file changed")
}
-func (e *HWApp) getEnbList() ([]*xapp.RNIBNbIdentity, error){
- enbs, err := xapp.Rnib.GetListEnbIds()
+func (e *HWApp) getEnbList() ([]*xapp.RNIBNbIdentity, error) {
+ enbs, err := xapp.Rnib.GetListEnbIds()
- if err != nil {
- xapp.Logger.Error("err: %s", err)
- return nil, err
- }
+ if err != nil {
+ xapp.Logger.Error("err: %s", err)
+ return nil, err
+ }
- xapp.Logger.Info("List for connected eNBs :")
- for index, enb := range enbs {
- xapp.Logger.Info("%d. enbid: %s", index+1, enb.InventoryName)
- }
- return enbs, nil
+ xapp.Logger.Info("List for connected eNBs :")
+ for index, enb := range enbs {
+ xapp.Logger.Info("%d. enbid: %s", index+1, enb.InventoryName)
+ }
+ return enbs, nil
}
func (e *HWApp) getGnbList() ([]*xapp.RNIBNbIdentity, error) {
- gnbs, err := xapp.Rnib.GetListGnbIds()
+ gnbs, err := xapp.Rnib.GetListGnbIds()
- if err != nil {
- xapp.Logger.Error("err: %s", err)
- return nil, err
- }
+ if err != nil {
+ xapp.Logger.Error("err: %s", err)
+ return nil, err
+ }
- xapp.Logger.Info("List of connected gNBs :")
- for index, gnb := range gnbs {
- xapp.Logger.Info("%d. gnbid : %s", index+1, gnb.InventoryName)
- }
- return gnbs, nil
+ xapp.Logger.Info("List of connected gNBs :")
+ for index, gnb := range gnbs {
+ xapp.Logger.Info("%d. gnbid : %s", index+1, gnb.InventoryName)
+ }
+ return gnbs, nil
}
-func (e *HWApp) getnbList() ([]*xapp.RNIBNbIdentity) {
- nbs := []*xapp.RNIBNbIdentity{}
+func (e *HWApp) getnbList() []*xapp.RNIBNbIdentity {
+ nbs := []*xapp.RNIBNbIdentity{}
- if enbs , err := e.getEnbList(); err == nil {
- nbs = append(nbs, enbs...)
- }
+ if enbs, err := e.getEnbList(); err == nil {
+ nbs = append(nbs, enbs...)
+ }
- if gnbs, err := e.getGnbList(); err == nil {
- nbs = append(nbs, gnbs...)
- }
- return nbs
+ if gnbs, err := e.getGnbList(); err == nil {
+ nbs = append(nbs, gnbs...)
+ }
+ return nbs
}
func (e *HWApp) sendSubscription(meid string) {
- xapp.Logger.Info("sending subscription request for meid : %s", meid)
+ xapp.Logger.Info("sending subscription request for meid : %s", meid)
- subscriptionParams := clientmodel.SubscriptionParams{
- ClientEndpoint: &clientEndpoint,
- Meid: &meid,
- RANFunctionID: &funId,
- SubscriptionDetails: clientmodel.SubscriptionDetailsList{
- &clientmodel.SubscriptionDetail{
- RequestorID: &reqId,
- InstanceID: &seqId,
- EventTriggers: &clientmodel.EventTriggerDefinition{
- OctetString: "1234",
- },
- ActionToBeSetupList: clientmodel.ActionsToBeSetup{
- &clientmodel.ActionToBeSetup{
- ActionDefinition: &clientmodel.ActionDefinition{
- OctetString: "5678",
- },
- ActionID: &actionId,
- ActionType: &actionType,
- SubsequentAction: &clientmodel.SubsequentAction{
- SubsequentActionType: &subsequestActioType,
- TimeToWait: &timeToWait,
- },
- },
- },
- },
- },
- }
+ subscriptionParams := clientmodel.SubscriptionParams{
+ ClientEndpoint: &clientEndpoint,
+ Meid: &meid,
+ RANFunctionID: &funId,
+ SubscriptionDetails: clientmodel.SubscriptionDetailsList{
+ &clientmodel.SubscriptionDetail{
+ RequestorID: &reqId,
+ InstanceID: &seqId,
+ EventTriggers: &clientmodel.EventTriggerDefinition{
+ OctetString: "1234",
+ },
+ ActionToBeSetupList: clientmodel.ActionsToBeSetup{
+ &clientmodel.ActionToBeSetup{
+ ActionDefinition: &clientmodel.ActionDefinition{
+ OctetString: "5678",
+ },
+ ActionID: &actionId,
+ ActionType: &actionType,
+ SubsequentAction: &clientmodel.SubsequentAction{
+ SubsequentActionType: &subsequestActioType,
+ TimeToWait: &timeToWait,
+ },
+ },
+ },
+ },
+ },
+ }
- b, err := json.MarshalIndent(subscriptionParams, "", " ")
+ b, err := json.MarshalIndent(subscriptionParams, "", " ")
- if err != nil {
- xapp.Logger.Error("Json marshaling failed : %s", err)
- return
- }
+ if err != nil {
+ xapp.Logger.Error("Json marshaling failed : %s", err)
+ return
+ }
- xapp.Logger.Info("*****body: %s ", string(b))
+ xapp.Logger.Info("*****body: %s ", string(b))
- resp, err := xapp.Subscription.Subscribe(&subscriptionParams)
+ resp, err := xapp.Subscription.Subscribe(&subscriptionParams)
- if err != nil {
- xapp.Logger.Error("subscription failed (%s) with error: %s", meid, err)
- return
- }
- xapp.Logger.Info("Successfully subcription done (%s), subscription id : %s", meid, *resp.SubscriptionID)
+ if err != nil {
+ xapp.Logger.Error("subscription failed (%s) with error: %s", meid, err)
+ return
+ }
+ xapp.Logger.Info("Successfully subcription done (%s), subscription id : %s", meid, *resp.SubscriptionID)
}
func (e *HWApp) xAppStartCB(d interface{}) {
xapp.Logger.Info("xApp ready call back received")
- // get the list of all NBs
- nbList := e.getnbList()
+ // get the list of all NBs
+ nbList := e.getnbList()
- // send subscription request to each of the NBs
- for _, nb := range nbList {
- e.sendSubscription(nb.InventoryName)
- }
+ // send subscription request to each of the NBs
+ for _, nb := range nbList {
+ e.sendSubscription(nb.InventoryName)
+ }
+}
+
+func (e *HWApp) handleRICIndication(ranName string, r *xapp.RMRParams) {
+ // update metrics for indication message
+ e.stats["RICIndicationRx"].Inc()
}
func (e *HWApp) Consume(msg *xapp.RMRParams) (err error) {
@@ -190,6 +196,11 @@
case "RIC_HEALTH_CHECK_REQ":
xapp.Logger.Info("Received health check request")
+ // RIC INDICATION message
+ case "RIC_INDICATION":
+ xapp.Logger.Info("Received RIC Indication message")
+ e.handleRICIndication(msg.Meid.RanName, msg)
+
default:
xapp.Logger.Info("Unknown message type '%d', discarding", msg.Mtype)
}
@@ -221,6 +232,16 @@
}
func main() {
- hw := HWApp{}
+ // Defind metrics counter that the xapp provides
+ metrics := []xapp.CounterOpts{
+ {
+ Name: "RICIndicationRx",
+ Help: "Total number of RIC Indication message received",
+ },
+ }
+
+ hw := HWApp{
+ stats: xapp.Metric.RegisterCounterGroup(metrics, "hw-go"), // register counter
+ }
hw.Run()
}