Skip to content

Add notifications to Infrastructure Monitoring #2315

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

Open
gorkem-bwl opened this issue May 20, 2025 · 6 comments
Open

Add notifications to Infrastructure Monitoring #2315

gorkem-bwl opened this issue May 20, 2025 · 6 comments
Labels
good first issue Good for newcomers
Milestone

Comments

@gorkem-bwl
Copy link
Contributor

Just like uptime monitoring, Slack/Discord/Telegram/Webhook notifications should be a part of Infra monitoring.

@gorkem-bwl gorkem-bwl added this to the 3.0 milestone May 20, 2025
@gorkem-bwl gorkem-bwl added the good first issue Good for newcomers label May 20, 2025
@PaulyBearCoding
Copy link

I'd like to work on this issue as my first contribution. Please assign it to me if it's still available.

@gorkem-bwl
Copy link
Contributor Author

I'd like to work on this issue as my first contribution. Please assign it to me if it's still available.

Hello. Sure. Since it's not a small feat, can you please let us know how you are going to implement it on a high level, pointing out to necessary blocks/codebases? Then we can move ahead.

@PaulyBearCoding
Copy link

PaulyBearCoding commented May 23, 2025

Hey @gorkem-bwl — thanks for the ping! Here’s how I’d tackle adding notifications:

  1. Notifier interface
    In pkg/notifications, define:
    type Notifier interface {
      Notify(event Event) error
    }

Event should include things like service name, status, timestamp, etc.

Provider adapters

Slack (pkg/notifications/slack)

Discord (pkg/notifications/discord)

Telegram (pkg/notifications/telegram)

Webhook (pkg/notifications/webhook)

Config changes
I'd add this to the config.yaml:

notifications:
slack:
enabled: true
webhook_url: https://hooks.slack.com/…
discord:
enabled: false
telegram:
enabled: true
bot_token: ABC123
chat_id: 98765
webhook:
enabled: true
url: https://example.com/webhook

CLI flags
In cmd/infra-monitor, add flags like:

bash
Copy
Edit
--config /path/to/config.yaml
--enable-notifications
Tests

Unit tests for each notifier (mock HTTP).

End-to-end test simulating a status change.

Docs
Update docs/infra-monitor.md with setup steps and example payloads.

Let me know if you'd like me to proceed.

@gorkem-bwl
Copy link
Contributor Author

@PaulyBearCoding I think it may be better for you to check other Github projects. Checkmate is a complex project and needs an understanding/reading of underlying codebase before really starting with anything.

@PaulyBearCoding
Copy link

@PaulyBearCoding I think it may be better for you to check other Github projects. Checkmate is a complex project and needs an understanding/reading of underlying codebase before really starting with anything.

Thanks for the feedback, @gorkem-bwl! 🙏 I definitely want to get up to speed on the Checkmate codebase before jumping in.

Could you point me toward:

  1. Any high-level architecture or design docs?
  2. The key packages/modules I should start reading (e.g. the monitoring loop in pkg/monitor)?
  3. Any suggested workflows (tests to run locally, useful hints in CONTRIBUTING.md, etc.)?

Once I’ve got a feel for those areas, I can open small PRs—whether it’s improving docs, adding tests, or scaffolding the notifications package—and build from there.

I just want to learn more and contribute.

@gorkem-bwl
Copy link
Contributor Author

@PaulyBearCoding I think it may be better for you to check other Github projects. Checkmate is a complex project and needs an understanding/reading of underlying codebase before really starting with anything.

Thanks for the feedback, @gorkem-bwl! 🙏 I definitely want to get up to speed on the Checkmate codebase before jumping in.

Could you point me toward:

  1. Any high-level architecture or design docs?
  2. The key packages/modules I should start reading (e.g. the monitoring loop in pkg/monitor)?
  3. Any suggested workflows (tests to run locally, useful hints in CONTRIBUTING.md, etc.)?

Once I’ve got a feel for those areas, I can open small PRs—whether it’s improving docs, adding tests, or scaffolding the notifications package—and build from there.

I just want to learn more and contribute.

Hello. I can confidently say that Checkmate is a large project, and is not for beginners, unfortunately.

@gorkem-bwl gorkem-bwl modified the milestones: 3.0, 2.2 May 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants