Skip to content

interface to collect necessary stats for building a k8s readiness probe. #1122

@travisghansen

Description

@travisghansen

Describe you feature request

Is your feature request related to a problem? Please describe.
I am very new to frankenphp so could certainly have missed something in the docs that allow me to do this.

I am trying to deploy frankenphp to k8s. I would like to sanely configure readiness probes to keep instances from getting overloaded with requests. I think this would predominantly come down to having 2 key metrics:

  • how many of the workers are currently handling a request
  • how many requests are queued up waiting for workers

Additional metrics may be good:

  • avg delay before queued requests are dispatched?

Describe the solution you'd like
I would like to have some sort of interface (http, cli that can be invoked, etc) which would export the above and perhaps more. I would then write a script to be executed which would retrieve that info, allow for some threshold of queued requests waiting for a thread, and if above the threshold k8s would stop sending traffic to that instance until things settle a bit.

Ideally the metrics would exclude any requests that are for non-php workers (ie: static files, etc).

Perhaps the caddy admin port already has some of this data?

Describe alternatives you've considered
I can have an endpoint in my app, but that seems less than ideal as each check would itself take up a thread/worker.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions