Giter Club home page Giter Club logo

Comments (10)

burnettk avatar burnettk commented on June 21, 2024 1

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.

goetzc avatar goetzc commented on June 21, 2024 1

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.

goetzc avatar goetzc commented on June 21, 2024 1

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:

7157A867-ED06-4798-B53F-12A1B3BD9A3F

from errbit.

stevecrozz avatar stevecrozz commented on June 21, 2024 1

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.

stevecrozz avatar stevecrozz commented on June 21, 2024

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.

stevecrozz avatar stevecrozz commented on June 21, 2024

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.

00dav00 avatar 00dav00 commented on June 21, 2024

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.

stevecrozz avatar stevecrozz commented on June 21, 2024

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.

00dav00 avatar 00dav00 commented on June 21, 2024

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.

sahglie avatar sahglie commented on June 21, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.