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

add basic metrics #966

Merged
merged 26 commits into from
Sep 26, 2024
Merged

add basic metrics #966

merged 26 commits into from
Sep 26, 2024

Conversation

withinboredom
Copy link
Collaborator

This adds a collection of basic metrics based on feedback in #269:

  • frankenphp_busy_threads: shows current php threads processing php scripts (including workers waiting for requests)
  • frankenphp_total_threads: shows the total number of running php threads
  • frankenphp_[worker]_busy_workers: shows how many workers are currently processing requests
  • frankenphp_[worker]_total_workers: shows the total amount of workers.
  • frankenphp_[worker]_worker_request_count: shows the total requests processed by each worker
  • frankenphp_[worker]_worker_request_time: shows the total time taken processing requests

Currently, it uses the filename of the registered worker as a key. Ideally, the user would be able to name the worker and use that instead. I'm not sure if we want to do that in this PR.

Here's currently one worker running on my machine:

# HELP frankenphp_busy_threads Number of busy PHP threads
# TYPE frankenphp_busy_threads gauge
frankenphp_busy_threads 32
# HELP frankenphp_total_threads Total number of PHP threads
# TYPE frankenphp_total_threads counter
frankenphp_total_threads 33
# HELP frankenphp_worker_busy_workers Number of busy PHP workers for this worker
# TYPE frankenphp_worker_busy_workers gauge
frankenphp_worker_busy_workers 1
# HELP frankenphp_worker_total_workers Total number of PHP workers for this worker
# TYPE frankenphp_worker_total_workers gauge
frankenphp_worker_total_workers 32
# HELP frankenphp_worker_worker_request_count
# TYPE frankenphp_worker_worker_request_count counter
frankenphp_worker_worker_request_count 40
# HELP frankenphp_worker_worker_request_time
# TYPE frankenphp_worker_worker_request_time counter
frankenphp_worker_worker_request_time 0.0012

@withinboredom withinboredom marked this pull request as draft August 11, 2024 13:06
frankenphp.go Outdated Show resolved Hide resolved
Copy link
Owner

@dunglas dunglas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a great addition!

Thank you very much for this patch.

I made some quite minor comments, can't wait to use this.

In a follow-up PR, we should also update the performance guide because this will help users find good production values. We could maybe create a script to help finding these values using these metrics.

caddy/caddy_test.go Show resolved Hide resolved
caddy/caddy_test.go Outdated Show resolved Hide resolved
metrics.go Show resolved Hide resolved
metrics.go Show resolved Hide resolved
metrics.go Outdated Show resolved Hide resolved
metrics_test.go Outdated Show resolved Hide resolved
worker.go Outdated Show resolved Hide resolved
metrics.go Outdated Show resolved Hide resolved
@withinboredom
Copy link
Collaborator Author

@dunglas, anything else you want to see in this PR or is it good to merge?

@withinboredom
Copy link
Collaborator Author

oh, wait. Docs!

docs/metrics.md Outdated Show resolved Hide resolved
docs/metrics.md Outdated Show resolved Hide resolved
frankenphp.go Show resolved Hide resolved
frankenphp.go Show resolved Hide resolved
frankenphp.go Outdated Show resolved Hide resolved
metrics.go Outdated Show resolved Hide resolved
metrics.go Outdated Show resolved Hide resolved
metrics.go Outdated Show resolved Hide resolved
metrics.go Outdated Show resolved Hide resolved
metrics.go Outdated Show resolved Hide resolved
@withinboredom withinboredom merged commit 5d43fc2 into main Sep 26, 2024
49 checks passed
@withinboredom withinboredom deleted the metrics branch September 26, 2024 07:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants