Skip to content

prismelabs/analytics

Repository files navigation

PRs welcome! Docker Image Size (tag) Go version Prisme Analytics Twitter

💎 Prisme Analytics

An Open Source, privacy-focused and progressive analytics service.

Documentation | Live demo

grafana dashboard

Why Prisme ?

Here's what makes Prisme a great alternative to other analytics:

  • Tailored analytics: Prisme Analytics supports custom dashboards and events so you can collect, visualize analyze metrics that matters to you the way you want.
  • Ready to use: Prisme also comes with built-ins metrics and dashboards (see demo).
  • Privacy-focused: Prisme is GDPRC, CCPA, PECR compliant by design, no Personally Identifiable Information (PII) is collected. Tracking script doesn't use cookies, you can ditch your cookie pop-up.
  • Lightweight: Prisme tracking script is less than 1kB (~45x smaller than Google Analytics).
  • Resource efficient: Prisme is designed to be fast and resource efficient, checkout our benchmarks.
  • SPA support: Prisme is built with modern web frameworks in mind and it works automatically with any pushState based router on the frontend.
  • Grafana based: Prisme integrates with Grafana that provides:
    • User managements
    • Team managements
    • Permissions managements
    • Multi organizations support
    • Custom dashboards

Configuration

You can find configuration documentation on our website.

Performance

Prisme Analytics ingestion server is easily capable of ingesting more than 50,000 req/s on my AMD Ryzen 7 7840U w/ Radeon 780M Graphics.

$ cat /proc/cpuinfo | head | grep 'model name'
model name	: AMD Ryzen 7 7840U w/ Radeon  780M Graphics

$ cd tests/k6/events
$ make start test clean

          /\      |‾‾| /‾‾/   /‾‾/
     /\  /  \     |  |/  /   /  /
    /  \/    \    |     (   /   ‾‾\
   /          \   |  |\  \ |  (‾)  |
  / __________ \  |__| \__\ \_____/ .io

     execution: local
        script: /data/main.js
        output: -
 
     scenarios: (100.00%) 1 scenario, 4096 max VUs, 10m30s max duration (incl. graceful stop):
              * sharedIterationsPageViewEvents: 131072 iterations shared among 4096 VUs (maxDuration: 10m0s, gracefulStop: 30s)

     data_received..................: 90 MB  9.9 MB/s
     data_sent......................: 130 MB 14 MB/s
     http_req_blocked...............: avg=928.82µs min=330ns    med=1.07µs   max=268.74ms p(90)=2.45µs   p(95)=3.16µs  
     http_req_connecting............: avg=911.42µs min=0s       med=0s       max=268.71ms p(90)=0s       p(95)=0s      
     http_req_duration..............: avg=73.92ms  min=57.4µs   med=67.47ms  max=808.82ms p(90)=139.72ms p(95)=167.03ms
       { expected_response:true }...: avg=74.08ms  min=60.26µs  med=67.63ms  max=808.82ms p(90)=139.92ms p(95)=167.43ms
     http_req_failed................: 13.80% ✓ 62640        ✗ 391185
     http_req_receiving.............: avg=3.71ms   min=3.4µs    med=12.13µs  max=221.36ms p(90)=729.89µs p(95)=19.92ms 
     http_req_sending...............: avg=282.26µs min=2.37µs   med=7.27µs   max=216.54ms p(90)=19.27µs  p(95)=105.73µs
     http_req_tls_handshaking.......: avg=0s       min=0s       med=0s       max=0s       p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=69.92ms  min=45.89µs  med=67.16ms  max=750.36ms p(90)=125.53ms p(95)=140.88ms
     http_reqs......................: 453825 50018.387644/s
     ✓ { event_type:custom }........: 117531 12953.696068/s
     ✓ { event_type:pageview }......: 336294 37064.691576/s
     iteration_duration.............: avg=274.18ms min=121.44µs med=152.26ms max=3.12s    p(90)=680.26ms p(95)=958.77ms
     iterations.....................: 131072 14446.119331/s
     vus............................: 2100   min=2100       max=4096
     vus_max........................: 4096   min=4096       max=4096

running (00m09.1s), 0000/4096 VUs, 131072 complete and 0 interrupted iterations
sharedIterationsPageViewEvents ✓ [ 100% ] 4096 VUs  00m09.1s/10m0s  131072/131072 shared iters

Contributing

If you want to contribute to prismeanalytics to add a feature or improve the code, open an issue or make a pull request.

🌠 Show your support

Please give a ⭐ if this project helped you!

📜 License

Prisme Analytics is distributed under AGPL-3.0-only. For MIT exceptions, see LICENSING.md