58 Commits (6dde20eddb67db99592c75589e36441ea3e40947)

Author SHA1 Message Date
Barış Soner Uşaklı e45f513bfe fix: #11756, fix unique visitor stats in acp table 2 years ago
Julian Lam 9b753d6d57
TTL Cache (#10816)
* refactor: move src/cacheCreate.js to src/cache/lru.js

* fix: call new library location for lru cache creator

* feat: add ttl cache

* fix: update upload throttler to use ttl cache instead of lru cache

* chore: add missing dependency

* fix: avoid pubsub conflicts

* fix: use get instead of peek, which is not available in ttl-cache
3 years ago
Julian Lam c07d595662
Update to lru-cache@^7 (#10815)
* chore(deps): bump lru-cache from 6.0.0 to 7.13.1 in /install

Bumps [lru-cache](https://github.com/isaacs/node-lru-cache) from 6.0.0 to 7.13.1.
- [Release notes](https://github.com/isaacs/node-lru-cache/releases)
- [Changelog](https://github.com/isaacs/node-lru-cache/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-lru-cache/compare/v6.0.0...v7.13.1)

---
updated-dependencies:
- dependency-name: lru-cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* fix(lru-cache): remove unneeded `length` params for cache creation, as `maxSize` was not used in those init calls, also renamed some methods to match new method names in lru-cache [breaking]

Added deprecation notices for old params

* fix: replace three direct calls to lru-cache with call to cacheCreate, moved cache creation call in uploads to run on first init as config is not populated at lib init

* test: move configs init above cache reset calls in databasemock

* move some more code above cache clear

* refactor: remove unused

* test: lru

* test: more debug

* test: on more test

* use await helpers.uploadFile

* fix: tests remove logs

* fix: acp cache page

* fix: add in one more guard again cache instantiation with `length` prop but no `maxSize` prop

* fix(deps): bump markdown

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Barış Soner Uşaklı <[email protected]>
3 years ago
Barış Soner Uşaklı 398777633f fix: closes #10436, fix DST issue on acp dashboard 3 years ago
Barış Soner Uşaklı 35fea58a57 refactor: only write analytics data on nbb that has runJobs=true
prevents mongodb index error when lots of nodebbs try to write to the same key
3 years ago
Barış Soner Uşaklı 8fb89d761a fix: don't crash server if analytics fails to save
fixes
MongoBulkWriteError: E11000 duplicate key error collection:
 community.objects index: _key_1_value_-1 dup key: { _key: "analytics:pageviews", value: "1639807200000" }
3 years ago
Barış Soner Uşaklı 2bb0828af6 refactor: dont need local function 3 years ago
sadaszewski a1c9a69cd3
incr by bulk. (#9952)
* incr by bulk.

* Update analytics.js

* Update analytics.js

* lint: fix

Co-authored-by: Barış Soner Uşaklı <[email protected]>
Co-authored-by: Barış Soner Uşaklı <[email protected]>
3 years ago
Julian Lam 5b42b6b369
API route for returning tracked analytics keys (#10019)
* feat: track metrics saved by NodeBB (and assoc. plugins), #9949

* feat: route to retrieve analytics keys, closes #9949
3 years ago
Peter Jaszkowiak cc9d6fd08b chore: eslint max-len 4 years ago
Peter Jaszkowiak 5c2f0f0557 chore: eslint no-restricted-syntax 4 years ago
Peter Jaszkowiak b56d9e12b5 chore: eslint prefer-arrow-callback 4 years ago
Peter Jaszkowiak 707b55b6a5 chore: eslint prefer-template 4 years ago
Barış Soner Uşaklı b8cafefce2 fix: winston usages 4 years ago
Julian Lam 6e2da9966e refactor: move plugin hook methods to plugin.hooks.* 4 years ago
Barış Soner Uşaklı a05905f196
performance improvements (#8795)
* perf: nconf/winston/render

cache nconf.get calls
modify middleware.pageView to call next earlier
don't call winston.verbose on every hook see https://github.com/winstonjs/winston/issues/1669
translate header/footer separately and cache results for guests

* fix: copy paste fail

* refactor: style and fire hook only log in dev mode

* fix: cache key, header changes based on template

* perf: change replace

* fix: add missing await

* perf: category

* perf: lodash clone

* perf: remove escapeRegexChars
4 years ago
psychobunny 14ba1a6dbb feat: analytics:maxCache setting in ACP
I removed a TODO from core. Watch your head as flying pigs are abound
4 years ago
Barış Soner Uşaklı ce6b20c4b7 feat: remove topics.async.getTopicData usage 5 years ago
Barış Soner Uşaklı e80379dc0e feat: display stack trace on winston.error 5 years ago
Barış Soner Uşaklı dcb85ee7a1
#8344 (#8346)
* feat: wip

* feat: wrap middlewares

* feat: middleware errors

* feat: more middleware changes

* fix: remove unused async

* fix: prevent version errors from blocking acp render

* feat: wrap more middlewares
5 years ago
Julian Lam 398f0120b8 fix: logic for determining dailyStats hour vars
Reverts 9ecdb92f7c and fixes it
properly.
5 years ago
Julian Lam 9ecdb92f7c fix: fix daily analytics being one day off 5 years ago
Julian Lam 0b9ad416cb fix: remove debug line 5 years ago
Julian Lam 79737c53fd feat: guard against accidental ommision
...of analytics: prefix in get*StatsForSet methods
5 years ago
Barış Soner Uşaklı 223c108cc6 refactor: async/await analytics 6 years ago
Julian Lam a0c0ef1ba4
feat: ACP analytics API route (#7725)
* feat: added API route for retrieving analytics via REST API

* feat: sets is now optional, can pass in multiple sets

* fix: moved expand and added json button to panel header

* fix: matching api params to socket method

* fix: update json api button url on graph change

* fix: updated default counts based on passed in units
6 years ago
Barış Soner Uşaklı 4d9bc30d1f
feat: async3 upgrade (#7639)
* feat: async3 upgrade WIP

* fix: async.doWhilst

* fix: async early exit

* fix: psql doUntil

* fix: psql again
6 years ago
Barış Soner Uşaklı 29b63ae7fb fix: #6979 6 years ago
renovate[bot] 64b9dabff8 chore(deps): update dependency eslint-config-airbnb-base to v13 (#6599)
* chore(deps): update dependency eslint-config-airbnb-base to v13

* chore: #6599, linting 😬
6 years ago
Barış Soner Uşaklı 9f36ce3997 #6862 6 years ago
Dravere 956aa55253 Added server hook action:analytics.increment 7 years ago
Julian Lam 6ce635deb5 closes #6539 7 years ago
Barış Soner Uşaklı d31d8fa806 move category pageview to controllers
so topic views are tracked as category views
7 years ago
Peter Jaszkowiak e609e497b3 Provide more error information to logs
Provides full stack instead of just message
7 years ago
Julian Lam 53ca6d1199 closes #5889 8 years ago
Julian Lam e4adaa8959 linting 8 years ago
Julian Lam 816809ce3c fixes #5606 8 years ago
Julian Lam 72e77772db Merge branch 'master' into develop 8 years ago
Peter Jaszkowiak 896c8c7343 ESlint object-curly-spacing 8 years ago
Peter Jaszkowiak 604358ecc4 ESlint keyword-spacing, no-multi-spaces 8 years ago
Peter Jaszkowiak b1b486f729 ESlint quote-props 8 years ago
Peter Jaszkowiak 3361a72725 ESlint no-plusplus
and no-empty, space-unary-ops
8 years ago
Peter Jaszkowiak 2ba46808a1 ESlint one-var, fix comma-dangle 8 years ago
Peter Jaszkowiak bc1d70c126 ESlint comma-dangle 8 years ago
Julian Lam 4753042306 lowered analytics disk writes to every ten seconds, because why every 10 minutes? :shipit: 8 years ago
Julian Lam 9ada35cfb9 allowing Analytics.increment to have a callback 8 years ago
barisusakli 9796f54580 analytics tests, reduce bcrypt rouds for tests 8 years ago
HeeL 4a3c31b2dc Fix space-before-function-paren linter rule 8 years ago
HeeL 3fa1c1f927 Fix space-infix-ops linter rule 8 years ago
Julian Lam 149565169b closes #4658 9 years ago