Skip to content

Commit a3df52c

Browse files
authored
Merge pull request #883 from gobitfly/BEDS-514/appsub-fail-metrics
Add metrics when app sub verification fails
2 parents fd12655 + 7645840 commit a3df52c

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

backend/pkg/api/handlers/auth.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/gobitfly/beaconchain/pkg/api/types"
1515
"github.com/gobitfly/beaconchain/pkg/commons/log"
1616
"github.com/gobitfly/beaconchain/pkg/commons/mail"
17+
"github.com/gobitfly/beaconchain/pkg/commons/metrics"
1718
commonTypes "github.com/gobitfly/beaconchain/pkg/commons/types"
1819
"github.com/gobitfly/beaconchain/pkg/commons/utils"
1920
"github.com/gobitfly/beaconchain/pkg/userservice"
@@ -708,6 +709,7 @@ func (h *HandlerService) InternalHandleMobilePurchase(w http.ResponseWriter, r *
708709
validationResult, err := userservice.VerifyReceipt(nil, nil, verifyPackage)
709710
if err != nil {
710711
log.Warn(err, "could not verify receipt %v", 0, map[string]interface{}{"receipt": verifyPackage.Receipt})
712+
metrics.Errors.WithLabelValues(fmt.Sprintf("appsub_verify_%s_failed", req.Transaction.Type)).Inc()
711713
if errors.Is(err, userservice.ErrClientInit) {
712714
log.Error(err, "Apple or Google client is NOT initialized. Did you provide their configuration?", 0, nil)
713715
handleErr(w, r, err)

backend/pkg/userservice/appsubscription_oracle.go

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

1212
"github.com/gobitfly/beaconchain/pkg/commons/db"
1313
"github.com/gobitfly/beaconchain/pkg/commons/log"
14+
"github.com/gobitfly/beaconchain/pkg/commons/metrics"
1415
"github.com/gobitfly/beaconchain/pkg/commons/types"
1516
"github.com/gobitfly/beaconchain/pkg/commons/utils"
1617

@@ -37,18 +38,21 @@ func CheckMobileSubscriptions() {
3738
receipts, err := db.GetAllAppSubscriptions()
3839

3940
if err != nil {
41+
metrics.Errors.WithLabelValues("appsub_verify_db_failed").Inc()
4042
log.Error(err, "error retrieving subscription data from db: %v", 0, nil)
4143
return
4244
}
4345

4446
googleClient, err := initGoogle()
4547
if googleClient == nil {
48+
metrics.Errors.WithLabelValues("appsub_verify_initgoogle_failed").Inc()
4649
log.Error(err, "error initializing google client: %v", 0, nil)
4750
return
4851
}
4952

5053
appleClient, err := initApple()
5154
if err != nil {
55+
metrics.Errors.WithLabelValues("appsub_verify_initapple_failed").Inc()
5256
log.Error(err, "error initializing apple client: %v", 0, nil)
5357
return
5458
}
@@ -71,11 +75,14 @@ func CheckMobileSubscriptions() {
7175
if strings.Contains(err.Error(), "expired") {
7276
err = db.SetSubscriptionToExpired(nil, receipt.ID)
7377
if err != nil {
78+
metrics.Errors.WithLabelValues("appsub_verify_write_failed").Inc()
7479
log.Error(err, "subscription set expired failed", 0, map[string]interface{}{"receiptID": receipt.ID})
7580
}
7681
continue
7782
}
7883
log.Warnf("subscription verification failed in service for [%v]: %v", receipt.ID, err)
84+
metrics.Errors.WithLabelValues(fmt.Sprintf("appsub_verify_%s_failed", receipt.Store)).Inc()
85+
7986
continue
8087
}
8188

0 commit comments

Comments
 (0)