オンラインユーザーを見れるように
docker-ci / docker (push) Successful in 3m16s
Details
docker-ci / docker (push) Successful in 3m16s
Details
This commit is contained in:
parent
4dc8585667
commit
cf3d15fa77
37
collector.go
37
collector.go
|
@ -2,8 +2,10 @@ package main
|
|||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/yitsushi/go-misskey/services/notes/timeline"
|
||||
"io"
|
||||
"net/http"
|
||||
"time"
|
||||
)
|
||||
|
@ -78,6 +80,39 @@ func collectStats() {
|
|||
}
|
||||
}
|
||||
|
||||
type OnlineUsers struct {
|
||||
Count int `json:"count"`
|
||||
}
|
||||
|
||||
func collectOnlineUsers() {
|
||||
for {
|
||||
time.Sleep(1 * time.Minute)
|
||||
response, err := http.Get("https://" + endpoint + "/api/get-online-users-count")
|
||||
if err != nil {
|
||||
logrus.Warning(err)
|
||||
continue
|
||||
}
|
||||
if err != nil {
|
||||
logrus.Warning(err)
|
||||
continue
|
||||
}
|
||||
var onlineUsers OnlineUsers
|
||||
|
||||
all, err := io.ReadAll(response.Body)
|
||||
err = response.Body.Close()
|
||||
if err != nil {
|
||||
logrus.Warning(err)
|
||||
continue
|
||||
}
|
||||
|
||||
err = json.Unmarshal(all, &onlineUsers)
|
||||
if err != nil {
|
||||
logrus.Warning(err)
|
||||
}
|
||||
misskeyOnlineUsers.Set(float64(onlineUsers.Count))
|
||||
}
|
||||
}
|
||||
|
||||
func collectTimeline() {
|
||||
for {
|
||||
time.Sleep(30 * time.Second)
|
||||
|
@ -92,7 +127,6 @@ func collectTimeline() {
|
|||
misskeyGlobalTimelineResponseTimeRaw.Set(float64(time.Since(start).Milliseconds()) / 1000)
|
||||
if len(global) != 0 {
|
||||
misskeyGlobalTimelineLastNotePublished.Set(float64(global[0].CreatedAt.UnixMilli()))
|
||||
|
||||
}
|
||||
}()
|
||||
go func() {
|
||||
|
@ -106,7 +140,6 @@ func collectTimeline() {
|
|||
misskeyLocalTimelineResponseTimeRaw.Set(float64(time.Since(start).Milliseconds()) / 1000)
|
||||
if len(global) != 0 {
|
||||
misskeyLocalTimelineLastNotePublished.Set(float64(global[0].CreatedAt.UnixMilli()))
|
||||
|
||||
}
|
||||
}()
|
||||
|
||||
|
|
11
main.go
11
main.go
|
@ -100,20 +100,27 @@ var (
|
|||
Name: "misskey_local_timeline_response_time_raw",
|
||||
Help: "Response Time for misskey Local Timeline",
|
||||
})
|
||||
misskeyOnlineUsers = prometheus.NewGauge(
|
||||
prometheus.GaugeOpts{
|
||||
Name: "misskey_online_users",
|
||||
Help: "Online Users",
|
||||
})
|
||||
)
|
||||
|
||||
func main() {
|
||||
options, err := misskey.NewClientWithOptions(
|
||||
misskey.WithAPIToken(apiKey),
|
||||
misskey.WithBaseURL("https", endpoint, ""),
|
||||
misskey.WithLogLevel(logrus.DebugLevel),
|
||||
misskey.WithLogLevel(logrus.InfoLevel),
|
||||
)
|
||||
client = options
|
||||
if err != nil {
|
||||
logrus.Error(err)
|
||||
return
|
||||
}
|
||||
stats, err := client.Admin().Queue().Stats()
|
||||
if err != nil {
|
||||
logrus.Error(err)
|
||||
return
|
||||
}
|
||||
fmt.Println(stats)
|
||||
|
@ -132,6 +139,7 @@ func main() {
|
|||
prometheus.MustRegister(misskeyLocalTimelineLastNotePublished)
|
||||
prometheus.MustRegister(misskeyGlobalTimelineResponseTimeRaw)
|
||||
prometheus.MustRegister(misskeyLocalTimelineResponseTimeRaw)
|
||||
prometheus.MustRegister(misskeyOnlineUsers)
|
||||
|
||||
handler := promhttp.Handler()
|
||||
|
||||
|
@ -145,6 +153,7 @@ func main() {
|
|||
go collectPing()
|
||||
go collectStats()
|
||||
go collectTimeline()
|
||||
go collectOnlineUsers()
|
||||
}()
|
||||
|
||||
logrus.Error(server.ListenAndServe())
|
||||
|
|
Loading…
Reference in New Issue