事件驱动应用程序示例

这是一个用Go编写的事件驱动应用程序的例子,使用Watermill。
该项目旨在将传入的GitHub webhooks与Grafana和Slack整合起来,基本上是在推送新的提交时添加注释并发送消息。还有通过RabbitMQ发送的模拟部署消息,以展示与多个事件流的工作:
一个例子的结果可以是这样的:
运行中
如果您想将该示例与您的 Slack 工作区集成,请将.env-example 复制到.env 并在SLACK_WEBHOOK_URL 变量中填入 webhook URL。
除了应用程序之外,docker-compose环境还包括:
- Kafka和ZooKeeper
- RabbitMQ
- Grafana
- Prometheus
整个环境可以用运行:
docker-compose up
现在你可以配置你的GitHub仓库,向应用程序发送webhooks(你需要先将端口8080 暴露给外部网络)。
或者,你可以运行./scripts/send-stub-webhook.sh 来发送一些存根webhooks。
访问localhost:3000/d/webhooks,查看Grafana中添加的注释。使用admin:secret 作为凭证。
衡量标准
你可以在localhost:3000/d/watermill访问Watermill仪表板。看看随着时间的推移,当你发送更多的webhooks时有什么变化: