-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] Importing a large amount of monitoring config occur poor experience and may trigger a long database transaction #3003
Comments
Hello, I have a question. If each configuration is imported as a separate transaction, how can we ensure the integrity of the imported data? In other words, if one configuration import fails, how should it be handled? |
I think failure can be ignored may be more reasonable ;or adding a progress bar or a place to check the progress will be much better for batch import. |
The problem may cause by the detect, the will detect all monitors when import.
+1, adding a progress bar or a place to check the progress will be much better for batch import. |
OK,If possible, assign this task to me to optimize. |
hi welcome, what the idea to solve it, remove detect or use asynchronous detection? It seems that the real-time status of monitoring will change according to this detect |
Yes, the current process involves performing a detect before creation to obtain the accurate monitoring availability status. |
I think it is essential to correctly display availability after creation; otherwise, it may lead to confusion among users, similar issues were frequently raised in the WeChat feedback group prior to the overhaul of this feature. |
yes +1 |
My idea is to maintain the synchronization detection;and add 「user task center」 on the page. When batch imported tasks are executing, the task send some message about process and result to notify 「user task center」 , then 「user task center」 update task status . This way, users can obtain task progress and final results even user already leave the import page |
hi, if user operate in monitors center, but he turn in the「user task center」to see the result, I feel this is a bit of a jump. How about the |
Great! |
I think it's just an import monitor, there's no need to make a separate task viewer interface, it seems like you can submit it and then the backend uses sse to push events at fixed intervals, the frontend pops up a progress bar notification in the top right corner, and the same user retains the notification no matter which page they switch to, and you can turn it off after it's over, what do you guys think? |
hi,I want to try implement it, this is my initial vision, but i hava some question, and please point out if any problems:
Front: |
It hasn't been realized yet. You can realize your own style. If necessary, we will modify it again. |
Is there an existing issue for this?
Current Behavior
I imported 500 monitoring configuration files, it took 8 minutes.
Expected Behavior
During this time, I didn’t see any data increase on the monitoring center list page, which made me suspect if the process was stuck.
Steps To Reproduce
1.Enter 'monitors' from left menu
2.Select 'Import Monitor'
3.Import a large monitor config file
4.Waiting long time,no data increase
Environment
Debug logs
No response
Anything else?
I found that MonitorServiceImpl.java used @transactional at the class level,
@Transactional(rollbackFor = Exception.class) public class MonitorServiceImpl implements MonitorService
This occur a poor experience and was unnecessary.
If each configuration import was treated as a separate transaction, I would have seen the data being imported continuously, making me feel that the process was working.
The same issue might also at AlertDefineServiceImpl.java.
The text was updated successfully, but these errors were encountered: