Improve concurrency limits and pack-objects logs
For #5055 (closed) and #5054 (closed)
We employ multiple levels of concurrency limitation and it is crucial to have observability to comprehend how requests are being limited. Although Gitaly has some useful logs, particularly about queuing states, they need to be integrated with the gRPC logs, making it difficult to understand the situation. To address this, we have unified all concurrency-limiting logs in one location through this commit. Furthermore, we have added new logging concurrent-limiting fields to enhance the logging capabilities.
In addition, this MR also moves pack-object logs to gRPC logs using FieldsProducer. Beforehand, those logs are dumped out as independent lines of logs. It takes work to gather them in one place while working on an investigation.
Result
- Per-RPC concurrency limiting - successful log
- Pack Objects concurrency limiting - successfully log
- Per-RPC concurrency limiting - failed log
- Pack Objects caching logs - cache miss. The logs include a lot of detailed information
- Pack Objects caching logs - cache hit. The logs include caching bytes only.