mirror of
https://github.com/idanoo/go-mastodon-stats
synced 2025-07-02 22:32:19 +00:00
Add difference
This commit is contained in:
parent
f1066d74d7
commit
e4a20af1c3
2 changed files with 54 additions and 21 deletions
|
@ -45,7 +45,7 @@ var (
|
||||||
|
|
||||||
// Mastodon
|
// Mastodon
|
||||||
MASTODON_DB_SCHEMA string
|
MASTODON_DB_SCHEMA string
|
||||||
MASTODON_USER_QUERY = "SELECT count(*) FROM users WHERE disabled = False;"
|
MASTODON_USER_QUERY = "SELECT count(*) FROM users WHERE disabled = False AND confirmed_at IS NOT NULL AND approved = True;"
|
||||||
MASTODON_IDENTIFIER = "mastodon"
|
MASTODON_IDENTIFIER = "mastodon"
|
||||||
|
|
||||||
// Mobilizon
|
// Mobilizon
|
||||||
|
|
|
@ -12,6 +12,7 @@ type metric struct {
|
||||||
MetricName string `json:"metric_name"`
|
MetricName string `json:"metric_name"`
|
||||||
MetricTime time.Time `json:"metric_time"`
|
MetricTime time.Time `json:"metric_time"`
|
||||||
MetricValue int `json:"metric_value"`
|
MetricValue int `json:"metric_value"`
|
||||||
|
PreviousMetricValue int `json:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// persistMetrics - return any updated
|
// persistMetrics - return any updated
|
||||||
|
@ -44,6 +45,7 @@ func getUserCounts() ([]metric, error) {
|
||||||
Service: PIXELFED_IDENTIFIER,
|
Service: PIXELFED_IDENTIFIER,
|
||||||
MetricName: METRICNAME_USERCOUNT,
|
MetricName: METRICNAME_USERCOUNT,
|
||||||
MetricValue: userCount,
|
MetricValue: userCount,
|
||||||
|
PreviousMetricValue: getLastMetric(PIXELFED_IDENTIFIER),
|
||||||
}
|
}
|
||||||
log.Printf("%s user count: %d", PIXELFED_IDENTIFIER, userCount)
|
log.Printf("%s user count: %d", PIXELFED_IDENTIFIER, userCount)
|
||||||
metrics = append(metrics, m)
|
metrics = append(metrics, m)
|
||||||
|
@ -59,6 +61,7 @@ func getUserCounts() ([]metric, error) {
|
||||||
Service: MATRIX_IDENTIFIDER,
|
Service: MATRIX_IDENTIFIDER,
|
||||||
MetricName: METRICNAME_USERCOUNT,
|
MetricName: METRICNAME_USERCOUNT,
|
||||||
MetricValue: userCount,
|
MetricValue: userCount,
|
||||||
|
PreviousMetricValue: getLastMetric(MATRIX_IDENTIFIDER),
|
||||||
}
|
}
|
||||||
log.Printf("%s user count: %d", MATRIX_IDENTIFIDER, userCount)
|
log.Printf("%s user count: %d", MATRIX_IDENTIFIDER, userCount)
|
||||||
metrics = append(metrics, m)
|
metrics = append(metrics, m)
|
||||||
|
@ -74,6 +77,7 @@ func getUserCounts() ([]metric, error) {
|
||||||
Service: MASTODON_IDENTIFIER,
|
Service: MASTODON_IDENTIFIER,
|
||||||
MetricName: METRICNAME_USERCOUNT,
|
MetricName: METRICNAME_USERCOUNT,
|
||||||
MetricValue: userCount,
|
MetricValue: userCount,
|
||||||
|
PreviousMetricValue: getLastMetric(MASTODON_IDENTIFIER),
|
||||||
}
|
}
|
||||||
log.Printf("%s user count: %d", MASTODON_IDENTIFIER, userCount)
|
log.Printf("%s user count: %d", MASTODON_IDENTIFIER, userCount)
|
||||||
metrics = append(metrics, m)
|
metrics = append(metrics, m)
|
||||||
|
@ -89,6 +93,7 @@ func getUserCounts() ([]metric, error) {
|
||||||
Service: MOBILIZON_IDENTIFIER,
|
Service: MOBILIZON_IDENTIFIER,
|
||||||
MetricName: METRICNAME_USERCOUNT,
|
MetricName: METRICNAME_USERCOUNT,
|
||||||
MetricValue: userCount,
|
MetricValue: userCount,
|
||||||
|
PreviousMetricValue: getLastMetric(MOBILIZON_IDENTIFIER),
|
||||||
}
|
}
|
||||||
log.Printf("%s user count: %d", MOBILIZON_IDENTIFIER, userCount)
|
log.Printf("%s user count: %d", MOBILIZON_IDENTIFIER, userCount)
|
||||||
metrics = append(metrics, m)
|
metrics = append(metrics, m)
|
||||||
|
@ -104,6 +109,7 @@ func getUserCounts() ([]metric, error) {
|
||||||
Service: PEERTUBE_IDENTIFIER,
|
Service: PEERTUBE_IDENTIFIER,
|
||||||
MetricName: METRICNAME_USERCOUNT,
|
MetricName: METRICNAME_USERCOUNT,
|
||||||
MetricValue: userCount,
|
MetricValue: userCount,
|
||||||
|
PreviousMetricValue: getLastMetric(PEERTUBE_IDENTIFIER),
|
||||||
}
|
}
|
||||||
log.Printf("%s user count: %d", PEERTUBE_IDENTIFIER, userCount)
|
log.Printf("%s user count: %d", PEERTUBE_IDENTIFIER, userCount)
|
||||||
metrics = append(metrics, m)
|
metrics = append(metrics, m)
|
||||||
|
@ -114,5 +120,32 @@ func getUserCounts() ([]metric, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func getPrintableString(m metric) string {
|
func getPrintableString(m metric) string {
|
||||||
return fmt.Sprintf("%s: %d", SERVICE_LINKS[m.Service], m.MetricValue)
|
output := fmt.Sprintf("%s: %d", SERVICE_LINKS[m.Service], m.MetricValue)
|
||||||
|
diff := m.MetricValue - m.PreviousMetricValue
|
||||||
|
if diff < 0 {
|
||||||
|
output = fmt.Sprintf("%s (%d)", output, diff)
|
||||||
|
} else if diff > 0 {
|
||||||
|
output = fmt.Sprintf("%s (+%d)", output, diff)
|
||||||
|
}
|
||||||
|
|
||||||
|
return output
|
||||||
|
}
|
||||||
|
|
||||||
|
func getLastMetric(serviceName string) int {
|
||||||
|
val, err := runIntQuery(
|
||||||
|
POSTGRESQL_STATS_DB,
|
||||||
|
fmt.Sprintf(
|
||||||
|
"SELECT metric_value FROM %s WHERE metric_name = '%s' AND service = '%s' ORDER BY metric_time DESC LIMIT 1",
|
||||||
|
POSTGRESQL_STATS_TABLE,
|
||||||
|
METRICNAME_USERCOUNT,
|
||||||
|
serviceName,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
return val
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue