add reports statistics

This commit is contained in:
Philipp Holzer 2024-11-15 14:12:24 +01:00
parent 12312e6ac9
commit 08888165fd
Signed by: nupplaPhil
GPG key ID: 24A7501396EB5432

View file

@ -85,6 +85,18 @@ var (
metricPrefix+"users_pending", metricPrefix+"users_pending",
"Number of pending users.", "Number of pending users.",
nil, nil) nil, nil)
reportsNewest = prometheus.NewDesc(
metricPrefix+"reports_newest",
"Contains the datetime about the newest report of this Instance.",
[]string{"datetime"}, nil)
reportsOpen = prometheus.NewDesc(
metricPrefix+"reports_open",
"Number of open reports.",
nil, nil)
reportsClosed = prometheus.NewDesc(
metricPrefix+"reports_closed",
"Number of closed reports.",
nil, nil)
) )
type friendicaCollector struct { type friendicaCollector struct {
@ -133,6 +145,9 @@ func (c *friendicaCollector) Describe(ch chan<- *prometheus.Desc) {
ch <- postsOutbound ch <- postsOutbound
ch <- packetsInbound ch <- packetsInbound
ch <- packetsOutbound ch <- packetsOutbound
ch <- reportsNewest
ch <- reportsOpen
ch <- reportsClosed
} }
func (c *friendicaCollector) Collect(ch chan<- prometheus.Metric) { func (c *friendicaCollector) Collect(ch chan<- prometheus.Metric) {
@ -254,6 +269,14 @@ func collectSimpleMetrics(ch chan<- prometheus.Metric, status *serverinfo.Server
desc: usersPending, desc: usersPending,
value: float64(status.Users.Pending), value: float64(status.Users.Pending),
}, },
{
desc: reportsOpen,
value: float64(status.Reports.Open),
},
{
desc: reportsClosed,
value: float64(status.Reports.Closed),
},
} }
for _, m := range metrics { for _, m := range metrics {
@ -391,6 +414,13 @@ func collectLastExecutions(ch chan<- prometheus.Metric, status *serverinfo.Serve
} }
ch <- metric ch <- metric
reportsInfo := status.Reports
metric, err = prometheus.NewConstMetric(reportsNewest, prometheus.GaugeValue, float64(reportsInfo.Newest.Timestamp), reportsInfo.Newest.DateTime)
if err != nil {
return fmt.Errorf("error creating metric for %s: %w", reportsNewest, err)
}
ch <- metric
return nil return nil
} }