Open syalioune opened 2 years ago
Raising to p2
as this becomes increasingly more important to debug performance issues users may run into.
We can currently only roughly pinpoint bottlenecks or blocking tasks, using the event system metrics. However, that's not all that useful when being confrontend with "BOM upload processing takes too long, what is the blocker?".
A few metrics that come to mind that would be good to collect:
Tag
should denote the target of the analysis (portfolio, project, component)Tag
should denote the target of the evaluation (project, component)Tag
should denote the target of the evaluation (portfolio, project, component, vulnerabilities)Tag
that denotes the repository by name (e.g. central
)
Current Behavior:
Since v4.6, Dependency Track expose some metrics using the couple Micrometer and Prometheus. Most of the metrics (if not all are directly provided by Alpine framework) and are related to technical components of DT :
It could be interesting for monitoring to add more metrics.
Proposed Behavior:
I propose the following non exhaustive list of metrics (Feel free to complete, revoke those metrics). The provided Grafana dashboard should be updated accordingly.
Technical
http_server_requests_seconds
to track inbound API requestshttp_client_requests_seconds
to track outbound API requestsresilience4j_*
metrics to monitor retry and ratelimiter (i.e. for Snyk) featurescache_*
metrics to monitor cache efficiency (size, hit/miss ratio)task_execution
to track the performance of background tasks (time taken)Functional (or DT specifics)
I can't think of any or rather they are already implemented in frontend dashboard (# projects, # components,...)