mirror of
https://github.com/idanoo/go-mastodon-stats
synced 2025-07-01 22:02:20 +00:00
Add remaining metrics
This commit is contained in:
parent
4e9199bf3e
commit
adb0caf7b2
3 changed files with 82 additions and 16 deletions
28
README.md
28
README.md
|
@ -2,22 +2,36 @@ Create readonly account with access to stats DB
|
|||
|
||||
|
||||
```
|
||||
CREATE ROLE readonly;
|
||||
GRANT USAGE ON SCHEMA public TO readonly;
|
||||
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;
|
||||
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readonly;
|
||||
CREATE USER gomastodonstats WITH PASSWORD 'superrandompassword';
|
||||
GRANT readonly TO gomastodonstats;
|
||||
|
||||
\c pixelfed
|
||||
GRANT SELECT ON ALL TABLES IN SCHEMA public TO gomastodonstats;
|
||||
|
||||
\c mtrx
|
||||
GRANT SELECT ON ALL TABLES IN SCHEMA public TO gomastodonstats;
|
||||
|
||||
\c mastodon_production
|
||||
GRANT SELECT ON ALL TABLES IN SCHEMA public TO gomastodonstats;
|
||||
|
||||
\c peertube_prod
|
||||
GRANT SELECT ON ALL TABLES IN SCHEMA public TO gomastodonstats;
|
||||
|
||||
\c mobilizon_prod
|
||||
GRANT SELECT ON ALL TABLES IN SCHEMA public TO gomastodonstats;
|
||||
|
||||
CREATE DATABASE gomastodonstats WITH OWNER gomastodonstats;
|
||||
|
||||
\c gomastodonstats
|
||||
CREATE TABLE IF NOT EXISTS statsdb (
|
||||
id INT NOT NULL,
|
||||
id SERIAL,
|
||||
service VARCHAR(50) NOT NULL,
|
||||
metric_name VARCHAR(50) NOT NULL,
|
||||
metric_time INT NOT NULL,
|
||||
metric_time TIMESTAMP NOT NULL,
|
||||
metric_value INT NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
);
|
||||
CREATE INDEX service_lookup ON statsdb USING btree (service,metric_name, metric_time);
|
||||
|
||||
GRANT ALL ON ALL TABLES IN SCHEMA public TO gomastodonstats;
|
||||
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO gomastodonstats;
|
||||
```
|
|
@ -10,23 +10,31 @@ var (
|
|||
|
||||
TIMEZONE string
|
||||
|
||||
// UserCount metric name
|
||||
METRICNAME_USERCOUNT = "userCount"
|
||||
|
||||
// Pixelfed
|
||||
PIXELFED_DB_SCHEMA string
|
||||
PIXELFED_USER_QUERY = "SELECT count(*) FROM users WHERE status IS NULL;"
|
||||
PIXELFED_IDENTIFIER = "pixelfed"
|
||||
|
||||
// Matrix
|
||||
MATRIX_DB_SCHEMA string
|
||||
MATRIX_USER_QUERY = "SELECT count(*) FROM users WHERE deactivated = 0;"
|
||||
MATRIX_IDENTIFIDER = "matrix"
|
||||
|
||||
// Mastodon
|
||||
MASTODON_DB_SCHEMA string
|
||||
MASTODON_USER_QUERY = "SELECT count(*) FROM users WHERE disabled = False;"
|
||||
MASTODON_IDENTIFIER = "mastodon"
|
||||
|
||||
// Mobilizon
|
||||
MOBILIZON_DB_SCHEMA string
|
||||
MOBILIZON_USER_QUERY = "SELECT count(*) FROM users WHERE disabled = False;"
|
||||
MOBILIZON_IDENTIFIER = "mobilizon"
|
||||
|
||||
// Peertube
|
||||
PEERTUBE_DB_SCHEMA string
|
||||
PEERTUBE_USER_QUERY = "SELECT count(*) FROM \"user\" WHERE blocked = False;"
|
||||
PEERTUBE_IDENTIFIER = "peertube"
|
||||
)
|
||||
|
|
|
@ -28,19 +28,63 @@ func getUserCounts() ([]metric, error) {
|
|||
var metrics []metric
|
||||
|
||||
if PIXELFED_DB_SCHEMA != "" {
|
||||
pfUsers, err := runIntQuery(PIXELFED_DB_SCHEMA, PIXELFED_USER_QUERY)
|
||||
userCount, err := runIntQuery(PIXELFED_DB_SCHEMA, PIXELFED_USER_QUERY)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
} else {
|
||||
pfMetric := metric{
|
||||
Service: "pixelfed",
|
||||
MetricName: "userCount",
|
||||
MetricValue: pfUsers,
|
||||
m := metric{
|
||||
Service: PIXELFED_IDENTIFIER,
|
||||
MetricName: METRICNAME_USERCOUNT,
|
||||
MetricValue: userCount,
|
||||
}
|
||||
log.Printf("%s user count: %d", PIXELFED_IDENTIFIER, userCount)
|
||||
metrics = append(metrics, m)
|
||||
}
|
||||
log.Printf("Pixelfed user count: %d", pfUsers)
|
||||
metrics = append(metrics, pfMetric)
|
||||
}
|
||||
|
||||
if MASTODON_DB_SCHEMA != "" {
|
||||
userCount, err := runIntQuery(MASTODON_DB_SCHEMA, MASTODON_USER_QUERY)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
} else {
|
||||
m := metric{
|
||||
Service: MASTODON_IDENTIFIER,
|
||||
MetricName: METRICNAME_USERCOUNT,
|
||||
MetricValue: userCount,
|
||||
}
|
||||
log.Printf("%s user count: %d", MASTODON_IDENTIFIER, userCount)
|
||||
metrics = append(metrics, m)
|
||||
}
|
||||
}
|
||||
|
||||
if MOBILIZON_DB_SCHEMA != "" {
|
||||
userCount, err := runIntQuery(MOBILIZON_DB_SCHEMA, MOBILIZON_USER_QUERY)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
} else {
|
||||
m := metric{
|
||||
Service: MOBILIZON_IDENTIFIER,
|
||||
MetricName: METRICNAME_USERCOUNT,
|
||||
MetricValue: userCount,
|
||||
}
|
||||
log.Printf("%s user count: %d", MOBILIZON_IDENTIFIER, userCount)
|
||||
metrics = append(metrics, m)
|
||||
}
|
||||
}
|
||||
|
||||
if MOBILIZON_DB_SCHEMA != "" {
|
||||
userCount, err := runIntQuery(PEERTUBE_DB_SCHEMA, PEERTUBE_USER_QUERY)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
} else {
|
||||
m := metric{
|
||||
Service: PEERTUBE_IDENTIFIER,
|
||||
MetricName: METRICNAME_USERCOUNT,
|
||||
MetricValue: userCount,
|
||||
}
|
||||
log.Printf("%s user count: %d", PEERTUBE_IDENTIFIER, userCount)
|
||||
metrics = append(metrics, m)
|
||||
}
|
||||
}
|
||||
|
||||
return metrics, nil
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue