per Request based accounting - calculate cost for each request
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 970
- Forks
- 486
- Avg merge
- 3d 33m
- Merged PRs (30d)
- 170
Description
Problem Statement
All requests are not created equal. Each have varying levels of complexity, which makes limiting an installation by numbers of requests difficult. For example, You can do an grapqhl query that returns a single title from 1 contentlet, which is nice and light, or you can run a grapqhl query that pulls 1000 contentlets and recurses 5 relationships deep on them all of them. Likewise, you can have a velocity page that renders a page with 2 simple pieces of content or one that pulls a content list and renders 250 of them. These requests, while all single requests, are not the same in regards to processing power, memory and db/es resources needed to service them.
We need a (granted imperfect) way to surface a synthetic cost per request. It can be reported various ways - as a header, in the access logs, etc but we should have an algorithm that does an estimate on the weight of any given request.
We should develop a "cost sheet" that outlines the costs for various actions and then we should add an accounting mechanism in the tool that automatically accrues the cost per request and surfaces it to the user.
Steps to Reproduce
Hitting dotCMS with various requests takes various horsepower.
Acceptance Criteria
We should include a header or a column in a log that reports on request cost.
dotCMS Version
latest
Proposed Objective
Application Performance
Proposed Priority
Priority 2 - Important
External Links... Slack Conversations, Support Tickets, Figma Designs, etc.
No response
Assumptions & Initiation Needs
No response
Quality Assurance Notes & Workarounds
No response
Sub-Tasks & Estimates
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files, tests, or entry points are named. Start by locating the request paths for GraphQL and Velocity and the access-log or response-header mechanisms; done means an agreed cost sheet, per-request accounting, and a reported cost validated against requests of varying complexity.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- graphql, java
- Domain
- backend-api-design, observability, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100