{"id":15178890,"url":"https://github.com/prismelabs/analytics","last_synced_at":"2025-05-09T02:38:59.648Z","repository":{"id":216104338,"uuid":"740391439","full_name":"prismelabs/analytics","owner":"prismelabs","description":"💎 An Open Source, privacy-focused and progressive analytics service.","archived":false,"fork":false,"pushed_at":"2024-10-29T10:06:49.000Z","size":41183,"stargazers_count":63,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-29T10:58:29.554Z","etag":null,"topics":["analytics","chart","clickhouse","go","google-analytics","grafana","marketing","metrics","prisme-analytics","privacy","progressive","self-hosted","selfhosted","statistics","web-analytics","website-analytics","website-stats"],"latest_commit_sha":null,"homepage":"https://www.prismeanalytics.com","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prismelabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-08T08:52:27.000Z","updated_at":"2024-10-29T10:06:53.000Z","dependencies_parsed_at":"2024-01-22T18:26:17.199Z","dependency_job_id":"86aec7f7-ccf6-45e7-ab75-d6bd4061e076","html_url":"https://github.com/prismelabs/analytics","commit_stats":{"total_commits":369,"total_committers":1,"mean_commits":369.0,"dds":0.0,"last_synced_commit":"8a3591bb128c7bb4ba2a3f299d20e0b0801bb005"},"previous_names":["prismelabs/analytics"],"tags_count":59,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prismelabs%2Fanalytics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prismelabs%2Fanalytics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prismelabs%2Fanalytics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prismelabs%2Fanalytics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prismelabs","download_url":"https://codeload.github.com/prismelabs/analytics/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253178864,"owners_count":21866618,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analytics","chart","clickhouse","go","google-analytics","grafana","marketing","metrics","prisme-analytics","privacy","progressive","self-hosted","selfhosted","statistics","web-analytics","website-analytics","website-stats"],"created_at":"2024-09-27T15:41:11.773Z","updated_at":"2025-05-09T02:38:59.625Z","avatar_url":"https://github.com/prismelabs.png","language":"Go","funding_links":["https://www.buymeacoffee.com/prismelabs"],"categories":["Integrations","Web"],"sub_categories":["Data Transfer and Synchronization","Web analytics (Google Analytics alternatives)"],"readme":"\u003ch1 align=\"center\"\u003e\n    \u003cimg height=\"250\" src=\"./.github/images/logo.jpg\"\u003e\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/prismelabs/analytics/raw/master/LICENSE\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/license/prismelabs/analytics\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/prismelabs/analytics/blob/master/CONTRIBUTING.md\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/PRs-Welcome-brightgreen\" alt=\"PRs welcome!\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://hub.docker.com/r/prismelabs/analytics\"\u003e\n        \u003cimg alt=\"Docker Image Size (tag)\" src=\"https://img.shields.io/docker/image-size/prismelabs/analytics/latest\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://goreportcard.com/report/github.com/prismelabs/analytics\"\u003e\n        \u003cimg src=\"https://goreportcard.com/badge/github.com/prismelabs/analytics\"\u003e\n    \u003c/a\u003e\n    \u003cimg alt=\"Go version\" src=\"https://img.shields.io/github/go-mod/go-version/prismelabs/analytics\"\u003e\n    \u003ca href=\"https://x.com/prismeanalytics\"\u003e\n        \u003cimg src=\"https://img.shields.io/twitter/follow/prismeanalytics?label=Follow\" alt=\"Prisme Analytics Twitter\" /\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n# :gem: Prisme Analytics\n\n[An Open Source, privacy-focused and progressive analytics service.](https://www.prismeanalytics.com/docs/next/)\n\n[Documentation](https://www.prismeanalytics.com/docs)\n|\n[Live demo](https://app.prismeanalytics.com/grafana)\n\n![grafana dashboard](.github/images/web-analytics-dashboard.jpg)\n\n## Why Prisme ?\n\nHere's what makes Prisme a great alternative to other analytics:\n* **Easy setup**: Gain valuable insights into your website or web application\nafter a 3-minutes setup.\n* **Simple analytics**: Easy to use dashboards with filters and definition for\neach metrics.\n* **Analytics that matter**: Custom events and dashboards gives you the\nflexibility to measure what matters most, providing personalized insights to\ninform your business decisions.\n* **Privacy-focused**: Worry-free GDPR, PPCA, PECR and Shrems II compliance with\ncookie-less analytics that collect only anonymized data.\n* **Lightweight**: Prisme tracking script is around 2kB (~22x smaller than\nGoogle Analytics) and single pixel image returned for javascript less tracking\nis 35 bytes.\n* **Humans only**: Bots, scrapers and spam traffic are automatically filtered.\n* **Campaigns \u0026 newsletters**: Use UTM to collect data on how much traffic your\ncampaigns generate.\n* **No vendor lock-in**: all features are available in Open Source versions, and\nPrisme is designed to be easy to self-host.\n* **SPA support**: Prisme is built with modern web frameworks in mind and it\nworks automatically with any pushState based router on the frontend.\n* **[Grafana](https://github.com/grafana/grafana) based**: Prisme integrates\nwith [Grafana](https://github.com/grafana/grafana) that provides:\n  * User managements\n  * Team managements\n  * Permissions managements\n  * Multi organizations support\n  * Custom dashboards\n\n## Getting started\n\nFollow\n[this guide](https://www.prismeanalytics.com/docs/guides/self-host-prisme-docker/)\nto self-host a Prisme analytics instance or create an account on\n[Prisme Cloud](https://app.prismeanalytics.com/sign_up).\n\nThen, you can simply add tracking script to your website:\n\n```html\n\u003cscript src=\"https://\u003cyour-prisme-instance-hostname\u003e/static/wa.js\" defer\u003e\u003c/script\u003e\n\u003cnoscript\u003e\n    \u003cimg src=\"https://\u003cyour-prisme-instance-hostname\u003e/api/v1/noscript/events/pageviews\" style=\"position:absolute;top:-100px\"\u003e\n\u003c/noscript\u003e\n```\n\nThat's it! You should now see data in your `Web Analytics` dashboard.\n\n## Configuration\n\nYou can find configuration documentation on\n[our website](https://www.prismeanalytics.com/docs/next/reference/server/server-modes/).\n\n## Performance\n\nPrisme Analytics ingestion server is **easily** capable of ingesting more than\n50,000 req/s on my AMD Ryzen 7 7840U w/ Radeon 780M Graphics with injectors\nrunning on the same machine.\n\n```\n$ cat /proc/cpuinfo | head | grep 'model name'\nmodel name\t: AMD Ryzen 7 7840U w/ Radeon  780M Graphics\n\n$ cd tests/k6/events\n$ make start test clean\n\n          /\\      |‾‾| /‾‾/   /‾‾/\n     /\\  /  \\     |  |/  /   /  /\n    /  \\/    \\    |     (   /   ‾‾\\\n   /          \\   |  |\\  \\ |  (‾)  |\n  / __________ \\  |__| \\__\\ \\_____/ .io\n\n     execution: local\n        script: /data/main.js\n        output: -\n \n     scenarios: (100.00%) 1 scenario, 4096 max VUs, 10m30s max duration (incl. graceful stop):\n              * sharedIterationsPageViewEvents: 131072 iterations shared among 4096 VUs (maxDuration: 10m0s, gracefulStop: 30s)\n\n     data_received..................: 90 MB  9.9 MB/s\n     data_sent......................: 130 MB 14 MB/s\n     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  \n     http_req_connecting............: avg=911.42µs min=0s       med=0s       max=268.71ms p(90)=0s       p(95)=0s      \n     http_req_duration..............: avg=73.92ms  min=57.4µs   med=67.47ms  max=808.82ms p(90)=139.72ms p(95)=167.03ms\n       { expected_response:true }...: avg=74.08ms  min=60.26µs  med=67.63ms  max=808.82ms p(90)=139.92ms p(95)=167.43ms\n     http_req_failed................: 13.80% ✓ 62640        ✗ 391185\n     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 \n     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\n     http_req_tls_handshaking.......: avg=0s       min=0s       med=0s       max=0s       p(90)=0s       p(95)=0s      \n     http_req_waiting...............: avg=69.92ms  min=45.89µs  med=67.16ms  max=750.36ms p(90)=125.53ms p(95)=140.88ms\n     http_reqs......................: 453825 50018.387644/s\n     ✓ { event_type:custom }........: 117531 12953.696068/s\n     ✓ { event_type:pageview }......: 336294 37064.691576/s\n     iteration_duration.............: avg=274.18ms min=121.44µs med=152.26ms max=3.12s    p(90)=680.26ms p(95)=958.77ms\n     iterations.....................: 131072 14446.119331/s\n     vus............................: 2100   min=2100       max=4096\n     vus_max........................: 4096   min=4096       max=4096\n\nrunning (00m09.1s), 0000/4096 VUs, 131072 complete and 0 interrupted iterations\nsharedIterationsPageViewEvents ✓ [ 100% ] 4096 VUs  00m09.1s/10m0s  131072/131072 shared iters\n```\n\n## Contributing\n\nIf you want to contribute to `prismeanalytics` to add a feature or improve the\ncode, open an [issue](https://github.com/prismelabs/analytics/issues)\nor make a [pull request](https://github.com/prismelabs/analytics/pulls).\n\n## :stars: Show your support\n\nPlease give a :star: if this project helped you!\n\n[![buy me a coffee button](./.github/images/blue-button.png)](https://www.buymeacoffee.com/prismelabs)\n\n## :scroll: License\n\n[Prisme Analytics](https://www.prismeanalytics.com/) is distributed under\n[AGPL-3.0-only](LICENSE). For MIT exceptions, see [LICENSING.md](LICENSING.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprismelabs%2Fanalytics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprismelabs%2Fanalytics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprismelabs%2Fanalytics/lists"}