Skip to content

Commit 250b80d

Browse files
Update metricfunc to provide misbehaving subscriber data to promethues (#148)
* Update metricfunc to provide misbehaving subscriber data to promethues Signed-off-by: Marikkannu, Suresh <[email protected]> * Fix lint issues Signed-off-by: Marikkannu, Suresh <[email protected]> * Remove DeleteViol function which is not needed Signed-off-by: Marikkannu, Suresh <[email protected]> * Update logging statement to include state Signed-off-by: Marikkannu, Suresh <[email protected]> * Update VERSION file to create image for metric-func Signed-off-by: Marikkannu, Suresh <[email protected]> --------- Signed-off-by: Marikkannu, Suresh <[email protected]>
1 parent b3706e6 commit 250b80d

File tree

3 files changed

+23
-1
lines changed

3 files changed

+23
-1
lines changed

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.6.3-dev
1+
1.6.3

controller/controller.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919

2020
"github.com/omec-project/metricfunc/config"
2121
"github.com/omec-project/metricfunc/internal/metricdata"
22+
"github.com/omec-project/metricfunc/internal/promclient"
2223
"github.com/omec-project/metricfunc/logger"
2324
"golang.org/x/net/http2"
2425
)
@@ -370,9 +371,11 @@ func RogueIPHandler(rogueIPChannel chan RogueIPs) {
370371
targets := rocClient.GetTargets()
371372

372373
if len(targets) == 0 {
374+
promclient.PushViolSubData(subscriberInfo.Imsi, ipaddr, "Active")
373375
logger.ControllerLog.Errorln("get targets returns nil")
374376
} else {
375377
// get siteinfo from ROC
378+
promclient.PushViolSubData(subscriberInfo.Imsi, ipaddr, "Resolved")
376379
rocClient.DisableSimcard(targets, subscriberInfo.Imsi)
377380
}
378381
}

internal/promclient/promclient.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616

1717
type PromStats struct {
1818
coreSub *prometheus.CounterVec
19+
violSub *prometheus.CounterVec
1920
smfSvcStat *prometheus.CounterVec
2021
amfSvcStat *prometheus.CounterVec
2122
smfSessions *prometheus.GaugeVec
@@ -48,6 +49,11 @@ func initPromStats() *PromStats {
4849
Help: "core subscriber info",
4950
}, []string{"imsi", "ip_addr", "state", "smf_ip", "dnn", "slice", "upf"}),
5051

52+
violSub: prometheus.NewCounterVec(prometheus.CounterOpts{
53+
Name: "viol_subscriber",
54+
Help: "violated subscriber info",
55+
}, []string{"imsi", "ip_addr", "state"}),
56+
5157
smfSessions: prometheus.NewGaugeVec(prometheus.GaugeOpts{
5258
Name: "smf_pdu_sessions",
5359
Help: "Number of SMF PDU sessions currently in the core",
@@ -76,6 +82,11 @@ func (ps *PromStats) register() error {
7682
return err
7783
}
7884

85+
if err := prometheus.Register(ps.violSub); err != nil {
86+
logger.PromLog.Errorf("register viol subscriber detail stats failed: %v", err.Error())
87+
return err
88+
}
89+
7990
if err := prometheus.Register(ps.smfSessions); err != nil {
8091
logger.PromLog.Errorf("register core subscriber count stats failed: %v", err.Error())
8192
return err
@@ -115,6 +126,14 @@ func DeleteCoreSubData(imsi, ip_addr, state, smf_ip, dnn, slice, upf string) {
115126
promStats.coreSub.DeleteLabelValues(imsi, ip_addr, state, smf_ip, dnn, slice, upf)
116127
}
117128

129+
func PushViolSubData(imsi, ip_addr, state string) {
130+
logger.PromLog.Debugf(
131+
"adding viol subscriber data [%v, %v, %v]",
132+
imsi, ip_addr, state,
133+
)
134+
promStats.violSub.WithLabelValues(imsi, ip_addr, state).Inc()
135+
}
136+
118137
// SetSessStats maintains Session level stats
119138
func SetSmfSessStats(smfIp, slice, dnn, upf string, count uint64) {
120139
logger.PromLog.Debugf(

0 commit comments

Comments
 (0)