risingwavelabs / risingwave

Best-in-class stream processing, analytics, and management. Perform continuous analytics, or build event-driven applications, real-time ETL pipelines, and feature stores in minutes. Unified streaming and batch. PostgreSQL compatible.
https://go.risingwave.com/slack
Apache License 2.0
7.09k stars 585 forks source link

metrics: per-thread (runtime) CPU usage #10966

Open BugenZhao opened 1 year ago

BugenZhao commented 1 year ago

Nodes are multi-functional in our current architecture. For example, the frontend node handles SQL statements from users and also performs simple batch query stages. The compute node is responsible for long-running streaming jobs and also handles batch queries in distributed mode. Sometimes in monotonic deployment, the compute node will also work on compacting storage data.

In order to analyze the workloads separately, we need to include per-thread CPU usage in the metrics. Fortunately, we've already refactored to utilize dedicated async runtimes for each "functionality" and differentiate them with thread names (like risingwave-main for RPC, risingwave-streaming-actor for streaming jobs). So recording the thread names and their CPU usage should be enough.

github-actions[bot] commented 5 months ago

This issue has been open for 60 days with no activity.

If you think it is still relevant today, and needs to be done in the near future, you can comment to update the status, or just manually remove the no-issue-activity label.

You can also confidently close this issue as not planned to keep our backlog clean. Don't worry if you think the issue is still valuable to continue in the future. It's searchable and can be reopened when it's time. 😄