Comments (10)
thanks for raising this, @00dav00 , and re-raising it, @2called-chaos . yes, this does seem like a useful feature, especially if you don't have the ability to easily change the client code to filter on that side. perhaps consider the term "Mute" for that button? Would that be a better metaphor? But yes, a pull request would likely be accepted here.
from errbit.
I think the main idea here is to be able to silent or ignore a specific error from within the GUI. ERRBIT_NOTIFY_AT_NOTICES
is nice but affects all errors in a specific project.
from errbit.
Idea:
ERRBIT_NOTIFY_AT_NOTICES='fn: Math.sqrt(n).floor > Math.sqrt(n - 1).floor'
Although that is useful (and possibly a security vulnerability to have arbitrary code as an environment variable?), Insee the use case for the GUI option is when not having access or not having the knowledge to manipulate the Errbit configuration, or even affording the (down)time. Also this would affect every single project and issue.
When the desire is to mute a specific short duration notice, I see a GUI option as the most appropriate solution. Something similar to other servers like Sentry that have such options, which are useful:
from errbit.
I'm ok with this idea and I'll be happy to review a PR. If you want some guidance, I'd say give it a look and open a PR with a rough start and leave questions wherever you have them. You are welcome to approach it however you want, but it might be nice to start with a rough draft of the UI. I think the back end should be pretty simple. Here's a list of what I'd want to see in this feature, let's see if you agree:
Front end:
- Ignore until some time has passed, maybe hardcode 3 intervals to start with. Whichever sound convenient to you (ie 1 hour, 12 hours, 48 hours), adds an ignore for a problem
- Stop ignoring, clears the ignore for the problem
- Status of ignore, is the problem currently being ignored or not? If so, until when?
Back end:
- Check ignore status before sending a notification. If ignore_until is set and in the future, do not send a notice.
@00dav00 Would you update this issue with either these requirements, or whatever requirements you think are better? And please let me know if you need anything! Thanks for raising this request.
from errbit.
Are you potentially looking for a way to control notices without interaction? We have a configuration called ERRBIT_NOTIFY_AT_NOTICES which controls whether you receive notifications for every notice or only on, for example, the 1st, 50th and 500th occurrence:
ERRBIT_NOTIFY_AT_NOTICES=[1,50,500]
from errbit.
Can we describe the particular use case a bit more and ? My understanding is that we're describing a situation like:
- ERRBIT_NOTIFY_AT_NOTICES=[0] (notify for every notice)
- User is getting too many notices for a particular error and is getting annoyed
- User doesn't want to change the notice behavior for all notices (can we dig into why not? what is so special about this notice?)
- User can't or doesn't want to change the client to stop sending notices to Errbit
- User wants Errbit to behave normally, but stop all future notifications
A couple more questions:
- If you mute a problem, can it be unmuted?
- Where do we store the mute bit?
- Is it permanent? or a temporary mute?
from errbit.
Hi @stevecrozz , the questions you posted seems quite relevant, let me try to answer them.
User doesn't want to change the notice behavior for all notices (can we dig into why not? what is so special about this notice?)
In the case we experienced we wanted to track the error instances. That said, after a few hundred notifications it became annoying and without the bandwidth to deal with it at the moment we had to choose to ignore it since there was no option to "mute" it. That was fine since we already had some instances of the error, but the ideal scenario for us would have been only stop the notifications.
If you mute a problem, can it be unmuted?
That is an excellent question, I would say yes, mute flags should be able to be removed
Where do we store the mute bit?
To answer this I would have to dig into the code, which I haven't done yet, but suggestions from people with more context on the project could be beneficial here.
Is it permanent? or a temporary mute?
I would start with a temporary mute, like mute_until
and then if the functionality seems like something worth adding, implement a permanent mute option. In the use case I experienced the temporary mute would have been the most useful one.
Please let me know WDYT, I' happy to discuss this further with people more involved in the project to see the viability of it and put some hours into it's implementation
from errbit.
Thanks @00dav00, this use case makes sense to me. I have one other idea that I'd like to offer. Whenever possible, I try to avoid adding new GUI features because they add up over time and clutter the otherwise very simple interface. Is there any automated solution you can imagine that would suffice? For example, what if Errbit supported some kind of exponential backoff on notifications like, send notifications according to a user-defined expression?
Idea: ERRBIT_NOTIFY_AT_NOTICES='fn: Math.sqrt(n).floor > Math.sqrt(n - 1).floor'
This example expression would send notices at perfect squares: (ie 1, 4, 9...), but any Ruby expression could be used.
This way you could define exactly the notice behavior you want without user interaction.
Please think it over if something along these lines could work. If this really isn't good enough and you need a GUI control, then we can do it. In that case, I do prefer your idea of mute_until. I definitely want to prevent this from becoming a permanent mute because that goes against one of Errbits principles of preferring to filter on the client side. So I'm thinking a UI control that says 'Mute' or 'Snooze' or something like that. And when you click the button you'd get a couple of options like '1 hour, 8 hours, 48 hours'
from errbit.
Hi @stevecrozz , that looks like a nice shortcut to config ERRBIT_NOTIFY_AT_NOTICES
values.
Personally, I would prefer to be able to mute an specific errbit, that said I see your point about avoid adding to many things into the UI.
Thanks!
from errbit.
This is a feature that I've needed for a while now and I've given it a shot with PR #1547. I've gone with the terminology "mute" (instead of ignore) as I think that more clearly indicates what the feature does: mutes notifications. Happy to revise or tweak the PR based on any suggestions.
from errbit.
Related Issues (20)
- Exceptions that have no message cannot be clicked HOT 3
- errbit bundle fails in Arch Linux HOT 4
- Libv8 error when deploying errbit to heroku HOT 8
- Remove Hipchat (discontinued service) HOT 1
- User can't login after restore from old db to new db on docker machine HOT 3
- Cannot run errbit with Ruby 2.7.4 HOT 5
- `miniracer` raise when deploying using heroku HOT 1
- Use main for the main branch HOT 1
- docker image errbit/errbit:latest HOT 8
- Configure Ruby 2.7 for Heroku PR HOT 5
- Extends API to auto create users and apps
- Few questions about future of errbit
- What to do now that Heroku is shutting down its Free plans? HOT 1
- Error building latest Docker image on Ubuntu HOT 9
- i use this command ---> knife ssl check and this error occur please help HOT 3
- Error on slack webhook function [Docker Image (errbit/errbit:v0.9.0)] HOT 5
- API key not known when using latest Airbrake gem
- Errbit can't verify CSRF token authenticity for all POST requests HOT 2
- Errbit exits without clearing outdated/resolved if COMPACT command is not permitted to use
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from errbit.