From 9049c07f3ab95ce72554e1c1e3210f45ddb96af4 Mon Sep 17 00:00:00 2001 From: usbharu Date: Sun, 20 Apr 2025 21:25:18 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=E3=82=B8=E3=83=A7=E3=83=96=E3=81=8C?= =?UTF-8?q?=E5=A4=B1=E6=95=97=E3=81=97=E3=81=A6=E3=81=84=E3=82=8B=E3=83=9B?= =?UTF-8?q?=E3=82=B9=E3=83=88=E3=82=92=E5=8F=96=E5=BE=97=E3=81=A7=E3=81=8D?= =?UTF-8?q?=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- collector.go | 29 +++++++++++++++++++++++++++++ main.go | 8 ++++++++ 2 files changed, 37 insertions(+) diff --git a/collector.go b/collector.go index c819980..4ecb3e1 100644 --- a/collector.go +++ b/collector.go @@ -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() { for { time.Sleep(5 * time.Second) diff --git a/main.go b/main.go index b20a644..219ab4f 100644 --- a/main.go +++ b/main.go @@ -29,6 +29,12 @@ var ( }, []string{"type", "status"}, ) + misskeyJobQueueDelayed = prometheus.NewGaugeVec( + prometheus.GaugeOpts{ + Name: "misskey_jobqueue_delayed", + Help: "Delayed Job", + }, + []string{"type", "host"}) misskeyNotesCount = prometheus.NewGauge( prometheus.GaugeOpts{ Name: "misskey_notes_count", @@ -186,6 +192,7 @@ func main() { fmt.Println(stats) prometheus.MustRegister(misskeyJobQueueJobsCount) + prometheus.MustRegister(misskeyJobQueueDelayed) prometheus.MustRegister(misskeyNotesCount) prometheus.MustRegister(misskeyUsersCount) prometheus.MustRegister(misskeyOriginalNotesCount) @@ -219,6 +226,7 @@ func main() { go func() { go collectJobqueue() + go collectDelayed() go collectPing() go collectStats() go collectTimeline()