Skip to content
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

Conditional integration selection based on tags #908

Open
hialvaro opened this issue Oct 17, 2023 · 2 comments
Open

Conditional integration selection based on tags #908

hialvaro opened this issue Oct 17, 2023 · 2 comments
Labels

Comments

@hialvaro
Copy link

hialvaro commented Oct 17, 2023

As a user, I would like to have an integration (email, slack...) with conditional targets.

For example, if the healthcheck has the devops tag it should notify the devops@example.com mail, if it has the developers tag it should notify the developers@example.com mail. For this, an integration should have multiple targets that are conditionally selected based on a tag.

Thank you for this awesome project.

@cuu508
Copy link
Member

cuu508 commented Oct 17, 2023

This is an interesting idea but it conflicts with the already existing functionality:

  • Currently users define many-to-many mapping between checks and integrations. i.e., they explicitly select which integrations are are enabled for which checks. Conditionally enabling integrations based on matching tags would conflict with this: which mechanism takes precedence? How do we make sure the user knows and expects this?
  • Currently, when a new check is created, all existing integrations are auto-assigned to it. Again, conditionally enabling integrations based on matching tags would conflict with this. We would have to break backwards compatibility.

Can you describe the use case (the more detail the better, ideally with specific actor names, specific check names, specific integration types, specific scenarios) you are working with?

Perhaps the recently added "group" integration may be useful?

@hialvaro
Copy link
Author

Hi @cuu508 , thank you for your reply. I see this "conditional integration" just as the group integration (which could work for my use case, and I haven't seen before), a new kind of integration.

The user would create a new conditional integration, and inside that one it could decide based on some parameters (mainly tags) to which other integration it goes. For example:

When healthcheck has tag `devops` send to:
- [x] Slack devops
- [x] Mail devops

When healthcheck has tag `developers` send to:
- [x] Slack developers

Another way to implement this could be a conditional option inside each integration. For example, inside the slack integration there could be a conditional checkbox, when activated the user could set something like:

If `tag = devops` send to channel `devops`
If `tag = developers` send to channel `developers`

I don't think this would conflict on either of the two points, since the integrations are not enabled conditionally but it is a new kind of integration, which can be conditional to select what to do based on tags. Other conditionals could be status, name, etc.

@cuu508 cuu508 added the feature label Dec 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants