帮酷LOGO
0 0 评论
  • 显示原文与译文双语对照的内容
文章标签:notification  
Notification Engine for Monasca

  • 源代码名称:monasca-notification
  • 源代码网址:http://www.github.com/openstack/monasca-notification
  • monasca-notification源代码文档
  • monasca-notification源代码下载
  • Git URL:
    git://www.github.com/openstack/monasca-notification.git
  • Git Clone代码到本地:
    git clone http://www.github.com/openstack/monasca-notification
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/openstack/monasca-notification
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
  • 团队和知识库标签

    Team and repository tags

    通知引擎

    这里引擎从 Kafka 读取警报,然后使用它的配置的通知方法通知客户。 多个通知和重试引擎可以并行运行到每个可用的Kafka 分区中。 Zookeeper用于在新进程连接或者离开工作集时协商对 Kafka 分区的访问。

    体系结构

    通知引擎使用以下步骤生成通知:

    • 从 Kafka 读取报警,没有自动提交。 - KafkaConsumer类
    • 确定警报的通知类型。 通过从mysql读取来完成。 - AlarmProcessor类
    • 发送通知。- NotificationProcessor类
    • 成功的通知被添加到已经发送的通知主题。 - NotificationEngine类
    • 失败的通知被添加到重试主题。 - NotificationEngine类
    • 向 Kafka - KafkaConsumer类提交偏移量

    通知引擎使用三个 Kafka 主题:

    • alarm_topic: 进入通知引擎的报警。
    • notification_topic: 成功发送通知。
    • notification_retry_topic: 未成功的通知。

    重试引擎与通知引擎并行运行,并给出任何失败的通知( 在succeess中可以配置的额外机会)。

    重试引擎使用以下步骤生成通知:

    • 从 Kafka 读取通知json数据,没有自动提交。 - KafkaConsumer类
    • 重新生成失败的通知。 - RetryEngine类
    • 发送通知。- NotificationProcessor类
    • 成功的notifictions被添加到已经发送的通知主题。 - RetryEngine类
    • 未按重试限制的失败通知将被添加回重试主题。 - RetryEngine类
    • 放弃重试限制的失败通知被丢弃。 - RetryEngine类
    • 向 Kafka - KafkaConsumer类提交偏移量

    重试引擎使用两个 Kafka 主题:

    • notification_retry_topic: 需要重试的通知。
    • notification_topic: 成功发送通知。

    容错

    从警报主题读取时不执行提交操作。 只有在处理后才提交。 这允许处理继续进行,即使有些通知可能会慢一些。 在发生灾难性故障时,可能会发送一些通知,但还没有确认警报。 这是一种可以接受的故障模式,最好发送两次通知,而不是发送通知。

    遇到主要错误的一般过程是退出守护进程,它允许其他进程对 Kafka 分区进行renegotiate访问。 也假定通知引擎将由一个进程主管运行,这将在一个失败时重新启动它。 这样,任何不容易恢复的错误都由服务自动处理,并且主动守护进程切换到另一个实例。

    尽管这应该涉及到所有错误,但是可以处理警报或者报警集,并多次发送通知。 为了最小化这种风险,使用了许多技术:

    • 超时是通过所有通知类型实现的。
    • 使用了警报 TTL。 不处理超过TTL的任何警报。
    操作

    缺省情况下,Yaml的配置文件在'/etc/monasca/notification.yaml', 中。

    监视器

    将statsd合并到守护进程中,并将所有统计信息发送到monasca代理启动的statsd服务器。 默认主机和端口点为 localhost:8125

    • 计数器
      • ConsumedFromKafka
      • AlarmsFailedParse
      • AlarmsNoNotification
      • NotificationsCreated
      • NotificationsSentSMTP
      • NotificationsSentWebhook
      • NotificationsSentPagerduty
      • NotificationsSentFailed
      • NotificationsInvalidType
      • AlarmsFinished
      • PublishedToKafka
    • 定时器
      • ConfigDBTime
      • SendNotificationTime
    的未来考虑
    • 需要更广泛的负载测试
      • mysql数据库的速度是多少? 我们在它上面装了多少负荷。 最初我认为阅读每个警报的通知细节是最合理的,但最终我可能想缓存这个信息。
      • 对于我们阅读的每个消息,提交到 Kafka的代价是多少? 我们应该提交每一条消息?
      • 默认 Kafka 消费批大小的效率如何?
      • 目前我们可以在每个实例中使用webhooks到本地http服务器,每秒获得。 that了?
      • 在每秒的~200 提交时,我们在 Kafka 上加载太多?
    许可证

    版权所有( c ) 2014惠普开发公司 L.P.

    在Apache许可以证下许可以证版本 2.0 ("许可以证") ;你可以能不使用这里文件,除了符合许可以证。 你可以获得许可证的副本在*

    
    http://www.apache.org/licenses/LICENSE-2.0
    
    
    
    

    在规定的法律或者书面许可下,在许可条款下分发的软件在不保证任何种类的担保或者条件的前提下分发,或者明示或者隐含。 查看许可协议下特定语言的许可权限和限制的许可证。



    文章标签:notification  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语