Commit graph

39 commits

Author SHA1 Message Date
Oneric
8e5defe6ca stats: estimate remote user count
This value is currently only used by Prometheus metrics
but (after optimisng the peer query inthe preceeding commit)
the most costly part of instance stats.
2025-01-07 20:27:28 +01:00
Oneric
138b1aea2f stats: use cheaper peers query
This query is one of the top cost offenders during an instances
lifetime. For small instances it was shown to take up 30-50% percent of
the total database query time, while for bigger isntaces it still held
a spot in the top 3 — alost as or even more expensive overall than
timeline queries!

The good news is, there’s a cheaper way using the instance table:
no need to process each entry, no need to filter NULLs
and no need to dedupe. EXPLAIN estimates the cost of the
old query as 13272.39 and the cost of the new query as 395.74
for me; i.e. a 33-fold reduction.

Results can slightly differ. E.g. we might have an old user
predating the instance tables existence and no interaction with since
or no instance table entry due to failure to query nodeinfo.
Conversely, we might have an instance entry but all known users got
deleted since.
However, this seems unproblematic in practice
and well worth the perf improvment.

Given the previous query didn’t exclude unreachable instances
neither does the new query.
2025-01-07 20:27:28 +01:00
Oneric
8b5183cb74 stats: fix stat spec 2025-01-07 20:27:28 +01:00
FloatingGhost
7b76fdeed3 update stats every 5 minutes 2022-12-16 17:22:56 +00:00
FloatingGhost
b91e671c0d add remote user count for the heck of it 2022-12-16 17:22:26 +00:00
Alexander Strizhakov
da5d21a1cf
don't use continue in Stats init for test env 2021-02-27 09:39:15 +03:00
Mark Felder
860b5c7804 Change user.deactivated field to user.is_active 2021-01-15 11:24:46 -06:00
Haelwenn (lanodan) Monnier
c4439c630f
Bump Copyright to 2021
grep -rl '# Copyright © .* Pleroma' * | xargs sed -i 's;Copyright © .* Pleroma .*;Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>;'
2021-01-13 07:49:50 +01:00
Alexander Strizhakov
de2499e54b
don't run update in tests 2020-09-09 10:48:18 +03:00
Alexander Strizhakov
87d2805791
combo fixes 2020-09-08 17:40:23 +02:00
Alexander Strizhakov
ee67c98e55
removing Stats worker from Oban cron jobs 2020-09-07 19:16:14 +03:00
Roman Chvanikov
cbe383ae83 Update stats admin endpoint 2020-05-09 11:30:37 +03:00
Roman Chvanikov
39d2f2118a update counter_cache logic 2020-05-09 01:20:50 +03:00
Egor Kislitsyn
88a14da817
Add OpenAPI spec for InstanceController 2020-05-05 17:24:16 +04:00
lain
f5bda09de6 Stats: Use invisible property for filtering. 2020-04-22 19:02:22 +02:00
lain
8b88e2a6e2 Stats: Ignore internal users for user count. 2020-04-22 15:31:37 +02:00
Mark Felder
cdb05633a6 Generate instance stats on startup 2020-03-04 13:33:26 -06:00
Haelwenn (lanodan) Monnier
6da6540036
Bump copyright years of files changed after 2020-01-07
Done via the following command:
git diff fcd5dd259a --stat --name-only | xargs sed -i '/Pleroma Authors/c# Copyright © 2017-2020 Pleroma Authors <https:\/\/pleroma.social\/>'
2020-03-02 06:08:45 +01:00
eugenijm
7ad5c51f23 Admin API: GET /api/pleroma/admin/stats to get status count by visibility scope 2020-02-24 21:46:37 +03:00
Maksim Pechnikov
ac3abb5414 moved Pleroma.Stats to Oban Periodic jobs 2019-11-26 10:54:30 +03:00
Ivan Tashkinov
10ff01acd9 [#1304] Moved all non-mutes / non-blocks fields from User.Info to User. WIP. 2019-10-16 21:59:21 +03:00
rinpatch
e8a8d50138 Collect stats immediately after init 2019-08-15 01:01:13 +03:00
stwf
d81f63845a Implement Pleroma.Stats as GenServer 2019-08-14 11:59:33 -04:00
stwf
51bdf0cab6 use default child_specs 2019-08-14 11:55:17 -04:00
Alexander Strizhakov
bfeb33e951 Merge develop
Merge conflict in lib/pleroma/activity.ex
2019-05-08 14:34:36 +00:00
Haelwenn (lanodan) Monnier
a3a9cec483
[Credo] fix Credo.Check.Readability.AliasOrder 2019-03-13 04:26:54 +01:00
Haelwenn (lanodan) Monnier
6a6a5b3251
de-group alias/es 2019-02-09 16:31:17 +01:00
Haelwenn (lanodan) Monnier
8bcfac93a8
Make credo happy 2019-02-09 14:59:20 +01:00
Ivan Tashkinov
954dc4a4ad [#502] Fixed user_count in /api/v1/instance to include only active local users. 2019-01-17 19:16:02 +03:00
Ivan Tashkinov
90433b988e [#518] Fixed /api/v1/instance ("domain_count" value) and /api/v1/instance/peers responses. 2019-01-16 11:07:46 +03:00
William Pitcock
980b5288ed update copyright years to 2019 2018-12-31 15:41:47 +00:00
William Pitcock
2791ce9a1f add license boilerplate to pleroma core 2018-12-23 20:56:42 +00:00
Mark Felder
636f0fa402 Clean up unused aliases and imports 2018-05-04 21:25:31 +00:00
lain
4afbef39f4 Format the code. 2018-03-30 15:01:53 +02:00
lain
26ccb768d3 Make test output easier to read. 2018-02-12 10:14:11 +01:00
Roger Braun
2f291576e4 Fix compile errors on 1.4.5 2018-02-08 16:03:30 +01:00
Roger Braun
0f722a8c22 Stats: Make less crashy and improve query. 2018-01-20 18:38:30 +01:00
eal
d8db39564e Move user count to stats agent. 2018-01-14 08:15:11 +02:00
eal
9717166d10 Add a stats agent for storing data from expensive queries. 2018-01-13 18:24:16 +02:00