Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Collect and visualize application metrics #130

Open
8 of 10 tasks
marein opened this issue May 16, 2022 · 0 comments · Fixed by #144, #148, #146, #149 or #151
Open
8 of 10 tasks

Collect and visualize application metrics #130

marein opened this issue May 16, 2022 · 0 comments · Fixed by #144, #148, #146, #149 or #151

Comments

@marein
Copy link
Owner

marein commented May 16, 2022

To better understand the behavior of the application, data points should be collected and visualized. Besides node statistics, statistics of the individual applications such as Nginx, Nchan, PHP-FPM, RabbitMQ, Redis and MySQL should also be collected. In addition, there are statistics related to this app, such as replication lag and event store pointer for each event store follower (replication lag based on the pointer value), number of running and open games, user signups and arrivals and alike.

This issue requires several iterations:

marein added a commit that referenced this issue May 17, 2022
Currently the scrape path is still hard coded.
This commit just flushes the local repository copy.

* Dashboards and datasources are provisioned via files.
* Example metric for snapshot of running games is given.
* User arrival doesn't happen on path '^/metrics/'.
@marein marein self-assigned this Jul 31, 2022
marein added a commit that referenced this issue Oct 8, 2022
Set up grafana and prometheus to enable monitoring #130.

Setup details:
* For grafana, dashboards and datasources are provisioned via files.
* For prometheus, configuration files are available for docker swarm
and normal docker setups.
* Following labels are configurable via container labels: job, port, path.
* Instance name is either the container name or the node name. This
depends on the deployment mode (global vs replicated).

This commit comes with a dashboard for all available nodes #130.
@marein marein linked a pull request Oct 8, 2022 that will close this issue
marein added a commit that referenced this issue Oct 10, 2022
Apply better calculations for the node dashboard #130.

Optimization details:
* Use $__rate_interval for rate queries to include
more datapoints for the calculation.
* Use auto interval for the whole dashboard.
* Remove the interval factor.
* Configure time interval of prometheus datasource
to the scrape interval set in prometheus.
@marein marein linked a pull request Oct 10, 2022 that will close this issue
marein added a commit that referenced this issue Oct 11, 2022
Add MySQL dashboard to Grafana #130.

Additionally apply same sorting for containers
in docker-compose.yml and docker-compose.production.yml.
@marein marein linked a pull request Oct 11, 2022 that will close this issue
marein added a commit that referenced this issue Oct 12, 2022
Add Nchan dashboard to Grafana #130.
@marein marein linked a pull request Oct 12, 2022 that will close this issue
marein added a commit that referenced this issue Oct 14, 2022
Add Traefik dashboard to Grafana #130.

Additionally remove preselection of dev values
in all other dashboards.
@marein marein linked a pull request Oct 14, 2022 that will close this issue
marein added a commit that referenced this issue Oct 15, 2022
Add Redis dashboard to Grafana #130.
@marein marein linked a pull request Oct 15, 2022 that will close this issue
marein added a commit that referenced this issue Oct 16, 2022
Upon arrival, ArrivialAuthenticator creates a new user in the
identity context and authenticates them in the session.

The current implementation covers what AssignUserIdOnKernelRequest
did before. It adds some complexity, but opens the way for #130
to secure the /metrics endpoint with basic auth, and #6 to eventually
authenticate the user in any way.
marein added a commit that referenced this issue Oct 16, 2022
Upon arrival, ArrivialAuthenticator creates a new user in the
identity context and authenticates them in the session.

The current implementation covers what AssignUserIdOnKernelRequest
did before. It adds some complexity, but opens the way for #130
to secure the /metrics endpoint with basic auth, and #6 to eventually
authenticate the user in any way.
marein added a commit that referenced this issue Oct 16, 2022
Upon arrival, ArrivialAuthenticator creates a new user in the
identity context and authenticates them in the session.

The current implementation covers what AssignUserIdOnKernelRequest
did before. It adds some complexity, but opens the way for #130
to secure the /metrics endpoint with basic auth, and #6 to eventually
authenticate the user in any way.
marein added a commit that referenced this issue Oct 26, 2022
Upon arrival, ArrivialAuthenticator creates a new user in the
identity context and authenticates them in the session #153.

The current implementation covers what AssignUserIdOnKernelRequest
did before. It adds some complexity, but opens the way for #130 to
secure the /metrics endpoint for php with basic auth, and #6 to eventually
authenticate the user in any way.
marein added a commit that referenced this issue Oct 30, 2022
Add RabbitMQ dashboard to Grafana. The management interface is
disabled. Grafana is now available on port 8083. The dashboard
contains metrics about the cluster nodes and AMQP objects #130.
@marein marein linked a pull request Oct 30, 2022 that will close this issue
marein added a commit that referenced this issue Nov 18, 2022
Mention Grafana and Prometheus as the observability stack #130.
@marein marein linked a pull request Nov 18, 2022 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment