feat: missing messags in the last hour (#12)

This commit is contained in:
richΛrd 2024-10-23 17:38:04 -04:00 committed by GitHub
parent 31ef4403f0
commit c69dea6da6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 29 additions and 4 deletions

View File

@ -214,7 +214,7 @@ func Execute(ctx context.Context, options Options) error {
runIdLogger.Info("missing messages recheck complete") runIdLogger.Info("missing messages recheck complete")
syncCheckTimer.Reset(30 * time.Minute) syncCheckTimer.Reset(15 * time.Minute)
}() }()
} }
} }
@ -442,12 +442,22 @@ func (app *Application) checkMissingMessageStatus(ctx context.Context, storenode
} }
func (app *Application) countMissingMessages(storenodes []peer.ID) error { func (app *Application) countMissingMessages(storenodes []peer.ID) error {
now := app.node.Timesource().Now().Add(-delay)
// Count messages in last hour (not including last 5 minutes)
results, err := app.db.CountMissingMessages(now.Add(-time.Hour), now)
if err != nil {
return err
}
for storenode, cnt := range results {
app.metrics.RecordMissingMessagesLastHour(storenode, cnt)
}
// not including last two hours in now to let sync work // not including last two hours in now to let sync work
now := app.node.Timesource().Now().Add(-2 * time.Hour) _2hAgo := now.Add(-2 * time.Hour)
// Count messages in last day (not including last two hours) // Count messages in last day (not including last two hours)
results, err := app.db.CountMissingMessages(now.Add(-24*time.Hour), now) results, err = app.db.CountMissingMessages(now.Add(-24*time.Hour), _2hAgo)
if err != nil { if err != nil {
return err return err
} }
@ -456,7 +466,7 @@ func (app *Application) countMissingMessages(storenodes []peer.ID) error {
} }
// Count messages in last week (not including last two hours) // Count messages in last week (not including last two hours)
results, err = app.db.CountMissingMessages(now.Add(-24*time.Hour*7), now) results, err = app.db.CountMissingMessages(_2hAgo.Add(-24*time.Hour*7), _2hAgo)
if err != nil { if err != nil {
return err return err
} }

View File

@ -41,6 +41,14 @@ var topicLastSync = prometheus.NewGaugeVec(
[]string{"fleetName", "pubsubtopic"}, []string{"fleetName", "pubsubtopic"},
) )
var missingMessagesLastHour = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Name: "msgcounter_missing_messages_last_hour",
Help: "The number of messages missing in last hour (excluding the last 5 minutes)",
},
[]string{"fleetName", "storenode"},
)
var missingMessagesLastDay = prometheus.NewGaugeVec( var missingMessagesLastDay = prometheus.NewGaugeVec(
prometheus.GaugeOpts{ prometheus.GaugeOpts{
Name: "msgcounter_missing_messages_last_day", Name: "msgcounter_missing_messages_last_day",
@ -81,6 +89,7 @@ type Metrics interface {
RecordStorenodeAvailability(peerID peer.ID, available bool) RecordStorenodeAvailability(peerID peer.ID, available bool)
RecordTotalMissingMessages(cnt int) RecordTotalMissingMessages(cnt int)
RecordLastSyncDate(topic string, date time.Time) RecordLastSyncDate(topic string, date time.Time)
RecordMissingMessagesLastHour(peerID peer.ID, cnt int)
RecordMissingMessagesLastDay(peerID peer.ID, cnt int) RecordMissingMessagesLastDay(peerID peer.ID, cnt int)
RecordMissingMessagesLastWeek(peerID peer.ID, cnt int) RecordMissingMessagesLastWeek(peerID peer.ID, cnt int)
RecordMissingMessagesPrevHour(peerID peer.ID, cnt int) RecordMissingMessagesPrevHour(peerID peer.ID, cnt int)
@ -131,6 +140,12 @@ func (m *metricsImpl) RecordLastSyncDate(topic string, date time.Time) {
}() }()
} }
func (m *metricsImpl) RecordMissingMessagesLastHour(peerID peer.ID, cnt int) {
go func() {
missingMessagesLastHour.WithLabelValues(m.fleetName, peerID.String()).Set(float64(cnt))
}()
}
func (m *metricsImpl) RecordMissingMessagesLastDay(peerID peer.ID, cnt int) { func (m *metricsImpl) RecordMissingMessagesLastDay(peerID peer.ID, cnt int) {
go func() { go func() {
missingMessagesLastDay.WithLabelValues(m.fleetName, peerID.String()).Set(float64(cnt)) missingMessagesLastDay.WithLabelValues(m.fleetName, peerID.String()).Set(float64(cnt))