Add Prometheus for some Owncast metrics (#1744)

* Add Prometheus for some Owncast metrics. Closes #1303

* Wrap prometheus metrics endpoint in admin middleware
This commit is contained in:
Gabe Kangas
2022-03-06 17:26:52 -08:00
committed by GitHub
parent 713c8f913e
commit 92041c4c23
12 changed files with 598 additions and 11 deletions

View File

@@ -3,7 +3,8 @@ package metrics
import (
"time"
"github.com/owncast/owncast/core"
"github.com/owncast/owncast/core/chat"
"github.com/owncast/owncast/core/data"
)
// How often we poll for updates.
@@ -22,10 +23,26 @@ func collectViewerCount() {
Metrics.Viewers = Metrics.Viewers[1:]
}
count := core.GetStatus().ViewerCount
count := _getStatus().ViewerCount
value := timestampedValue{
Value: count,
Time: time.Now(),
}
Metrics.Viewers = append(Metrics.Viewers, value)
// Save to our Prometheus collector.
activeViewerCount.Set(float64(count))
// Total message count
cmc := data.GetMessagesCount()
currentChatMessageCount.Set(float64(cmc))
// Total user count
uc := data.GetUsersCount()
chatUserCount.Set(float64(uc))
}
func collectChatClientCount() {
count := len(chat.GetClients())
activeChatClientCount.Set(float64(count))
}