mirror of
https://github.com/Unkn0wnCat/matrix-veles.git
synced 2025-07-19 01:17:29 +02:00
Add user API endpoints and metrics endpoint
This commit is contained in:
parent
c572bbce85
commit
ff7339d88f
10 changed files with 299 additions and 1 deletions
|
@ -19,6 +19,8 @@ package bot
|
|||
|
||||
import (
|
||||
"github.com/Unkn0wnCat/matrix-veles/internal/config"
|
||||
"github.com/prometheus/client_golang/prometheus"
|
||||
"github.com/prometheus/client_golang/prometheus/promauto"
|
||||
"github.com/spf13/viper"
|
||||
"log"
|
||||
"maunium.net/go/mautrix"
|
||||
|
@ -31,6 +33,34 @@ import (
|
|||
"time"
|
||||
)
|
||||
|
||||
var (
|
||||
messageEventsProcessed = promauto.NewCounter(prometheus.CounterOpts{
|
||||
Namespace: "bot",
|
||||
Name: "processed_message_events_total",
|
||||
Help: "The total number of processed message events",
|
||||
})
|
||||
memberEventsProcessed = promauto.NewCounter(prometheus.CounterOpts{
|
||||
Namespace: "bot",
|
||||
Name: "processed_member_events_total",
|
||||
Help: "The total number of processed member events",
|
||||
})
|
||||
filesProcessed = promauto.NewCounter(prometheus.CounterOpts{
|
||||
Namespace: "bot",
|
||||
Name: "processed_files_total",
|
||||
Help: "The total number of processed files",
|
||||
})
|
||||
commandsProcessed = promauto.NewCounter(prometheus.CounterOpts{
|
||||
Namespace: "bot",
|
||||
Name: "processed_commands_total",
|
||||
Help: "The total number of processed commands",
|
||||
})
|
||||
joinedRooms = promauto.NewGauge(prometheus.GaugeOpts{
|
||||
Namespace: "bot",
|
||||
Name: "joined_rooms",
|
||||
Help: "Number of rooms the bot has joined",
|
||||
})
|
||||
)
|
||||
|
||||
// Run starts the bot, blocking until an interrupt or SIGTERM is received
|
||||
func Run() {
|
||||
// Set up signal channel for controlled shutdown
|
||||
|
@ -132,6 +162,8 @@ func doInitialUpdate(matrixClient *mautrix.Client) {
|
|||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
joinedRooms.Set(float64(len(resp.JoinedRooms)))
|
||||
|
||||
// Hand-off list to config helper
|
||||
config.RoomConfigInitialUpdate(resp.JoinedRooms)
|
||||
}
|
||||
|
@ -147,6 +179,8 @@ func handleMessageEvent(matrixClient *mautrix.Client, startTs int64) mautrix.Eve
|
|||
// Cast event to correct event type
|
||||
content, ok := evt.Content.Parsed.(*event.MessageEventContent)
|
||||
|
||||
defer messageEventsProcessed.Inc()
|
||||
|
||||
if !ok {
|
||||
log.Println("Uh oh, could not typecast m.room.member event content...")
|
||||
return
|
||||
|
@ -186,6 +220,8 @@ func handleMemberEvent(matrixClient *mautrix.Client, startTs int64) func(source
|
|||
return
|
||||
}
|
||||
|
||||
defer memberEventsProcessed.Inc()
|
||||
|
||||
// Cast event to correct event type
|
||||
content, ok := evt.Content.Parsed.(*event.MemberEventContent)
|
||||
|
||||
|
@ -203,12 +239,14 @@ func handleMemberEvent(matrixClient *mautrix.Client, startTs int64) func(source
|
|||
// If it is our join event, set room to active
|
||||
if content.Membership == event.MembershipJoin {
|
||||
config.SetRoomConfigActive(evt.RoomID.String(), true)
|
||||
joinedRooms.Inc()
|
||||
return
|
||||
}
|
||||
|
||||
// If we left or got banned, set room to inactive
|
||||
if content.Membership.IsLeaveOrBan() {
|
||||
config.SetRoomConfigActive(evt.RoomID.String(), false)
|
||||
joinedRooms.Dec()
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue