{"id":13565397,"url":"https://github.com/nimarion/promcord","last_synced_at":"2025-04-03T22:31:16.160Z","repository":{"id":36990658,"uuid":"162875920","full_name":"nimarion/promcord","owner":"nimarion","description":"📊 Analyze your entire discord guild in grafana using prometheus. Message, User, Game and Voice statistics...","archived":true,"fork":false,"pushed_at":"2023-03-06T00:57:37.000Z","size":217,"stargazers_count":147,"open_issues_count":7,"forks_count":26,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-04T18:46:46.471Z","etag":null,"topics":["analytics","collector","data-visualization","discord","discord-bot","discord-stats","grafana","hacktoberfest","java","jda","metrics","prometheus","prometheus-exporter","statistics"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nimarion.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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":"2018-12-23T08:53:41.000Z","updated_at":"2024-10-11T19:53:16.000Z","dependencies_parsed_at":"2024-08-01T13:22:09.063Z","dependency_job_id":null,"html_url":"https://github.com/nimarion/promcord","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nimarion%2Fpromcord","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nimarion%2Fpromcord/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nimarion%2Fpromcord/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nimarion%2Fpromcord/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nimarion","download_url":"https://codeload.github.com/nimarion/promcord/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247090137,"owners_count":20881922,"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","collector","data-visualization","discord","discord-bot","discord-stats","grafana","hacktoberfest","java","jda","metrics","prometheus","prometheus-exporter","statistics"],"created_at":"2024-08-01T13:01:46.140Z","updated_at":"2025-04-03T22:31:15.614Z","avatar_url":"https://github.com/nimarion.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"[![Maintainability](https://api.codeclimate.com/v1/badges/2dc5b8633bc6519fc64b/maintainability)](https://codeclimate.com/github/Biospheere/promcord/maintainability)\n[![Build Status](https://github.com/biospheere/promcord/workflows/Build/badge.svg?branch=master)](https://github.com/biospheere/promcord/actions)\n[![GitHub contributors](https://img.shields.io/github/contributors/biospheere/promcord.svg)](https://github.com/Biospheere/promcord/graphs/contributors/)\n\n# promcord\n\n## What is promcord?\n\nPromcord is a Discord bot which provides metrics from a Discord server to create insight and alerting on actions and messages. Using [Grafana](https://grafana.com/) you can easily visualize all your metrics in beautiful dashboards.\n\n![Grafana Gif](https://i.imgur.com/9JJQ2E6.gif)\n\n\n## Table of Contents\n\n  - [Contributing](#contributing)\n  - [Getting Started](#getting-started)\n    - [Prerequisites](#prerequisites)\n    - [Kubernetes Deployment](#kubernetes-deployment-helm)\n    - [Docker Installation ](#docker-installation-local-install)\n    - [Developer Installation ](#developer-installation)\n  - [Collected data](#collected-data)\n  - [Screenshots](#screenshots)\n  - [Built with](#built-with)\n  - [License](#license)\n\n\n## Contributing\n\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\nEasiest way of reaching me is via [Discord](https://c0debase.de/).\n\n## Getting Started\n\nThis section provides a high-level requirement \u0026 quick start guide. **For detailed installations, such as getting started with Maven, Docker, or Grafana, please check out their docs.**\n\n\n### Prerequisites\n\n- [JDK](https://www.oracle.com/technetwork/java/javase/downloads/index.html) \n- [Maven](https://maven.apache.org/)\n- [Prometheus](https://prometheus.io/)\n- [Grafana](https://grafana.com/)\n\n### Kubernetes Deployment (Helm)\n\nThanks to [ChipWolf](https://github.com/ChipWolf), there is a Helm chart for a simple Kubernetes deployment.\n[https://github.com/k8s-at-home/charts/tree/master/charts/stable/promcord](https://github.com/k8s-at-home/charts/tree/master/charts/stable/promcord)\n\n#### Docker Installation (local install)\n\n1. Follow the [Docker CE install guide](https://docs.docker.com/install/) and the [Docker Compose install guide](https://docs.docker.com/compose/install/), which illustrates multiple installation options for each OS.\n2. Set up your environment variables/secrets in `.env` file\n```\nDISCORD_TOKEN=\u003cyour token\u003e\n```\n3. Download the [prometheus.yml](prometheus.yml) file to your current directory.\n4. Run the Docker App with `docker-compose up -d`\n5. Navigate to http://localhost:80 to access Grafana. Follow [this](https://grafana.com/docs/guides/getting_started/) guide to configure your Grafana server. You will need to add Prometheus as your datasource. For the Prometheus datasource settings, use `http://localhost:9090` as the URL and `Browser` as the Access.\n6. That's it! To simplify the creation of Grafana Dashboards, you can download a ready-made dashboard [here](grafana.json) to [import it into Grafana](https://grafana.com/docs/grafana/latest/reference/export_import/)\n\n#### Docker Installation (production install)\n\n1. Follow the [Docker CE install guide](https://docs.docker.com/install/) and the [Docker Compose install guide](https://docs.docker.com/compose/install/), which illustrates multiple installation options for each OS.\n2. Set up your environment variables/secrets in `.env` file\n```\nDISCORD_TOKEN=\u003cyour token\u003e\n```\n3. Modify the provisioning/datasources/automatic.yml file and change the `access` value to `proxy` AND change the `url` value to `http://prometheus:9090`.\n4. Download the [prometheus.yml](prometheus.yml) file to your current directory.\n5. Rename docker-compose.yml.sample to docker-compose.yml (The .sample compose file will contain links in order for Grafana and Prometheus to talk to each other)\n6. Run the Docker App with `docker-compose up -d`\n7. Navigate to http://ip_address:80 to access Grafana. Follow [this](https://grafana.com/docs/guides/getting_started/) guide to configure your Grafana server - you will need to add Prometheus as your datasource. For the Prometheus datasource settings, use `http://prometheus:9090` as the URL and `Server` as the Access.\n8. That's it! To simplify the creation of Grafana Dashboards, you can download a ready-made dashboard [here](grafana.json) to [import it into Grafana](https://grafana.com/docs/grafana/latest/reference/export_import/)\n8. It is recommended you use Nginx and [reverse proxy](https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/) to the Grafana instance for production use. Simply change docker-compose.yml Grafana ports from `80:3000` to `3000:3000`, then reverse proxy to http://localhost:3000 in the Nginx configuration. \n\n### Developer Installation\n\n1. Make sure all the prerequisites are installed.\n2. Fork promcord repository, ie. https://github.com/Biospheere/promcord/fork\n3. Clone your forked repository, ie. `git clone https://github.com/\u003cyour-username\u003e/promcord.git`\n4. Set up your environment variables/secrets\n```\nDISCORD_TOKEN=\u003cyour token\u003e\n```\n5. Use [prometheus.yml](prometheus.yml) for Prometheus (Edit target hostname!)\n6. That's it! Go to [http://your-ip:grafana-port](http://localhost:3000) to access Grafana. Then follow [this](https://grafana.com/docs/guides/getting_started/) guide to configure your Grafana server. \n7. To simplify the creation of Grafana Dashboards, you can download a ready-made dashboard [here](grafana.json) to [import it into Grafana](https://grafana.com/docs/grafana/latest/reference/export_import/)\n\n## Collected data\n\n- Channel ID of voice and text channels\n- Word count and length from a message\n- Guild ID \n- Emote Name\n- Game name provided by a Discord RPC\n- ToxicityScore calculated by PerspectiveAPI\n- Amount of members on a guild\n- Amount of online members on a guild\n- Time spent streaming in a voice channel\n- Time spent in a voice channel\n- Nitro Boosts\n- Discord Gateway Ping\n- Discord Rest Ping\n\n## Screenshots\n\n![Image of Grafana](https://i.imgur.com/2EArDun.png)\n\n## Built with \n\n- [JDA](https://github.com/DV8FromTheWorld/JDA) - Java wrapper for the popular chat \u0026 VOIP service  [@discordapp](https://github.com/discordapp)\n- [Prometheus](https://prometheus.io/) \n- [Perspective API](https://www.perspectiveapi.com/) \n\n## License\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Haha yes \" width=\"250px\" src=\"https://i.imgur.com/5bXJeZt.png\"\u003e\n  \u003cbr\u003e\n\u003c/p\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnimarion%2Fpromcord","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnimarion%2Fpromcord","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnimarion%2Fpromcord/lists"}