feat: ジョブが失敗しているホストを取得できるように

This commit is contained in:
usbharu 2025-04-20 21:25:18 +09:00
parent 6bb1d7cd0e
commit 9049c07f3a
Signed by: usbharu
GPG Key ID: 8CB1087135660B8D
2 changed files with 37 additions and 0 deletions

View File

@ -45,6 +45,35 @@ func collectJobqueue() {
} }
} }
func collectDelayed() {
collectDelayedInternal()
for {
time.Sleep(5 * time.Minute)
collectDelayedInternal()
}
}
func collectDelayedInternal() {
delayed, err := client.Admin().Queue().InboxDelayed()
if err != nil {
logrus.WithField("type", "delayed").Warning(err)
} else {
for i := range delayed {
m := delayed[i]
misskeyJobQueueDelayed.WithLabelValues("inbox", m.Host).Set(float64(m.Count))
}
}
deliverDelayed, err := client.Admin().Queue().DeliverDelayed()
if err != nil {
logrus.WithField("type", "delayed").Warning(err)
return
}
for i := range deliverDelayed {
m := deliverDelayed[i]
misskeyJobQueueDelayed.WithLabelValues("deliver", m.Host).Set(float64(m.Count))
}
}
func collectPing() { func collectPing() {
for { for {
time.Sleep(5 * time.Second) time.Sleep(5 * time.Second)

View File

@ -29,6 +29,12 @@ var (
}, },
[]string{"type", "status"}, []string{"type", "status"},
) )
misskeyJobQueueDelayed = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Name: "misskey_jobqueue_delayed",
Help: "Delayed Job",
},
[]string{"type", "host"})
misskeyNotesCount = prometheus.NewGauge( misskeyNotesCount = prometheus.NewGauge(
prometheus.GaugeOpts{ prometheus.GaugeOpts{
Name: "misskey_notes_count", Name: "misskey_notes_count",
@ -186,6 +192,7 @@ func main() {
fmt.Println(stats) fmt.Println(stats)
prometheus.MustRegister(misskeyJobQueueJobsCount) prometheus.MustRegister(misskeyJobQueueJobsCount)
prometheus.MustRegister(misskeyJobQueueDelayed)
prometheus.MustRegister(misskeyNotesCount) prometheus.MustRegister(misskeyNotesCount)
prometheus.MustRegister(misskeyUsersCount) prometheus.MustRegister(misskeyUsersCount)
prometheus.MustRegister(misskeyOriginalNotesCount) prometheus.MustRegister(misskeyOriginalNotesCount)
@ -219,6 +226,7 @@ func main() {
go func() { go func() {
go collectJobqueue() go collectJobqueue()
go collectDelayed()
go collectPing() go collectPing()
go collectStats() go collectStats()
go collectTimeline() go collectTimeline()