https://github.com/prismelabs/analytics

High-perfomance, self-hosted and privacy-focused web analytics service.

https://github.com/prismelabs/analytics

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.8%) to scientific vocabulary

Keywords

analytics chart clickhouse go google-analytics grafana marketing metrics prisme-analytics privacy progressive self-hosted selfhosted statistics web-analytics website-analytics website-stats
Last synced: 5 months ago · JSON representation

Repository

High-perfomance, self-hosted and privacy-focused web analytics service.

Basic Info
Statistics
  • Stars: 108
  • Watchers: 2
  • Forks: 2
  • Open Issues: 1
  • Releases: 59
Topics
analytics chart clickhouse go google-analytics grafana marketing metrics prisme-analytics privacy progressive self-hosted selfhosted statistics web-analytics website-analytics website-stats
Created about 2 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct

README.md

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

:gem: 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: * Easy setup: Gain valuable insights into your website or web application after a 3-minutes setup. * Simple analytics: Easy to use dashboards with filters and definition for each metrics. * Analytics that matter: Custom events and dashboards gives you the flexibility to measure what matters most, providing personalized insights to inform your business decisions. * Privacy-focused: Worry-free GDPR, PPCA, PECR and Shrems II compliance with cookie-less analytics that collect only anonymized data. * Lightweight: Prisme tracking script is around 2kB (~22x smaller than Google Analytics) and single pixel image returned for javascript less tracking is 35 bytes. * Humans only: Bots, scrapers and spam traffic are automatically filtered. * Campaigns & newsletters: Use UTM to collect data on how much traffic your campaigns generate. * No vendor lock-in: all features are available in Open Source versions, and Prisme is designed to be easy to self-host. * 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

Getting started

Follow this guide to self-host a Prisme analytics instance or create an account on Prisme Cloud.

Then, you can simply add tracking script to your website:

html <script src="https://<your-prisme-instance-hostname>/static/wa.js" defer></script> <noscript> <img src="https://<your-prisme-instance-hostname>/api/v1/noscript/events/pageviews" style="position:absolute;top:-100px"> </noscript>

That's it! You should now see data in your Web Analytics dashboard.

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 with injectors running on the same machine.

``` $ 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.

:stars: Show your support

Please give a :star: if this project helped you!

buy me a coffee button

:scroll: License

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

Owner

  • Name: Prisme Labs
  • Login: prismelabs
  • Kind: organization

GitHub Events

Total
  • Create event: 20
  • Issues event: 7
  • Release event: 5
  • Watch event: 42
  • Delete event: 3
  • Issue comment event: 6
  • Push event: 127
  • Pull request event: 1
Last Year
  • Create event: 20
  • Issues event: 7
  • Release event: 5
  • Watch event: 42
  • Delete event: 3
  • Issue comment event: 6
  • Push event: 127
  • Pull request event: 1

Committers

Last synced: over 1 year ago

All Time
  • Total Commits: 369
  • Total Committers: 1
  • Avg Commits per committer: 369.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 369
  • Committers: 1
  • Avg Commits per committer: 369.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Alexandre Negrel a****e@n****v 369
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 4
  • Total pull requests: 2
  • Average time to close issues: 2 months
  • Average time to close pull requests: N/A
  • Total issue authors: 4
  • Total pull request authors: 1
  • Average comments per issue: 1.5
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 4
  • Pull requests: 2
  • Average time to close issues: 2 months
  • Average time to close pull requests: N/A
  • Issue authors: 4
  • Pull request authors: 1
  • Average comments per issue: 1.5
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • mariemachtmiau (1)
  • seannaswell (1)
  • lgwapnitsky (1)
  • ndianabasi (1)
Pull Request Authors
  • negrel (2)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 74
proxy.golang.org: github.com/prismelabs/analytics
  • Versions: 74
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 9.0%
Average: 9.6%
Dependent repos count: 10.2%
Last synced: 6 months ago

Dependencies

.github/workflows/push.yaml actions
  • actions/checkout v4 composite
  • actions/upload-artifact v3 composite
  • cachix/install-nix-action v24 composite
docker-compose.dev.yml docker
  • prismelabs/analytics dev
docker-compose.yml docker
  • docker.io/library/postgres 15
tests/bun/trusted-proxy/docker-compose.env.yml docker
  • prismelabs/analytics dev
tests/bun/trusted-proxy/docker-compose.test.yml docker
  • docker.io/oven/bun latest
tests/bun/untrusted-proxy/docker-compose.env.yml docker
  • prismelabs/analytics dev
tests/bun/untrusted-proxy/docker-compose.test.yml docker
  • docker.io/oven/bun latest
go.mod go
  • github.com/Masterminds/goutils v1.1.1
  • github.com/Masterminds/semver/v3 v3.2.0
  • github.com/Masterminds/sprig/v3 v3.2.3
  • github.com/andybalholm/brotli v1.0.5
  • github.com/davecgh/go-spew v1.1.1
  • github.com/gofiber/fiber/v2 v2.52.0
  • github.com/gofiber/template v1.8.2
  • github.com/gofiber/template/html/v2 v2.1.0
  • github.com/gofiber/utils v1.1.0
  • github.com/golang-migrate/migrate/v4 v4.17.0
  • github.com/google/uuid v1.5.0
  • github.com/google/wire v0.5.0
  • github.com/hashicorp/errwrap v1.1.0
  • github.com/hashicorp/go-multierror v1.1.1
  • github.com/huandu/xstrings v1.3.3
  • github.com/imdario/mergo v0.3.11
  • github.com/klauspost/compress v1.17.0
  • github.com/labstack/echo/v4 v4.11.4
  • github.com/labstack/gommon v0.4.2
  • github.com/lib/pq v1.10.9
  • github.com/mattn/go-colorable v0.1.13
  • github.com/mattn/go-isatty v0.0.20
  • github.com/mattn/go-runewidth v0.0.15
  • github.com/mitchellh/copystructure v1.0.0
  • github.com/mitchellh/reflectwalk v1.0.0
  • github.com/pmezard/go-difflib v1.0.0
  • github.com/rivo/uniseg v0.2.0
  • github.com/rs/zerolog v1.31.0
  • github.com/shopspring/decimal v1.2.0
  • github.com/spf13/cast v1.3.1
  • github.com/stretchr/testify v1.8.4
  • github.com/valyala/bytebufferpool v1.0.0
  • github.com/valyala/fasthttp v1.51.0
  • github.com/valyala/fasttemplate v1.2.2
  • github.com/valyala/tcplisten v1.0.0
  • go.uber.org/atomic v1.7.0
  • golang.org/x/crypto v0.17.0
  • golang.org/x/net v0.19.0
  • golang.org/x/sys v0.15.0
  • golang.org/x/text v0.14.0
  • gopkg.in/yaml.v3 v3.0.1
go.sum go
  • 106 dependencies
tests/bun/package.json npm
  • @types/bun ^1.0.0 development
  • ts-standard ^12.0.2 development
tests/bun/default/docker-compose.env.yml docker
  • prismelabs/analytics dev
tests/bun/default/docker-compose.test.yml docker
  • docker.io/oven/bun latest
.github/workflows/release.yaml actions
  • actions/checkout v4 composite
  • cachix/install-nix-action v24 composite
  • dawidd6/action-download-artifact v3 composite
  • docker/login-action v2 composite