Adhesive框架系列文章--报警服务使用实践

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 如果我们新建了一个Adhesive.Test.WebApp的网站应用程序,希望对其中的异常进行监控报警,那么我们可以直接通过配置服务后台配置报警模块实现。 很明显,这是一个对数据量的监控,在异常记录达到一定数据量之后进行报警: 点击增加按钮,取名为“测试应用程序的异常监控”,这里看到的是...

如果我们新建了一个Adhesive.Test.WebApp的网站应用程序,希望对其中的异常进行监控报警,那么我们可以直接通过配置服务后台配置报警模块实现。

image

很明显,这是一个对数据量的监控,在异常记录达到一定数据量之后进行报警:

image

点击增加按钮,取名为“测试应用程序的异常监控”,这里看到的是添加后的结果:

image

然后对数据进行修改:

image

这里我们监控的数据库为Aic__Exception(应用程序信息中心模块的已处理异常),可以查看元数据知道:

image

然后由于我们按照应用程序名分表,因此这里表名需要修改为Adhesive.Test.WebApp:

image

然后我们这里配置了,1分钟内数据量超过100则报警,10秒检查一次。

这里时间跨度和检查时间间隔,我们虽然是10秒检查一次,但是检查的是1分钟的数据量是否超过100。

最后,配置一下报警的组:

image

这里,我们把信息发送到名为测试的组:

image

来看一下测试组,这个组所有接受者接收手机消息的间隔是30秒,邮件消息也是30秒,只不过这里关闭了邮件消息。

 

为了测试,我们通过程序加入若干异常,主要超过100条就可以了,然后可以收到短信,在日志中也可以看到报警模块记录了相关日志:

image

在这里我们查看信息中心中的报警服务的日志,搜索Aic__Exception数据库的报警日志,并且只显示达到发送条件的日志:

image

可以看到报警信息的确发送了。

 

之前我们实现了基于数据量的报警的配置,在这里我们再尝试一下,基于数据状态值的报警配置,首先自定义一个状态实体:

    [MongodbPersistenceEntity("Test", DisplayName = "测试状态", ExpireDays = 1)]
    public class TestState : BaseInfo
    {
        [MongodbPresentationItem(DisplayName = "测试状态值", ShowInTableView = true)]
        public int StateValue { get; set; }
    }

所以通过状态服务发送的数据都需要继承BaseInfo,这里我们配置了一个TestState的状态,里面只有一个测试状态值。

由于状态信息无需保存很长时间,我们把过期时间设为1天。然后我们初始化一个静态变量来保存状态服务的实例:

        private static IStateService testStateService = AppInfoCenterService.StateService;
        private static int stateValue = 100;
        protected void Page_Load(object sender, EventArgs e)
        {
            testStateService.Init(new StateServiceConfiguration("Adhesive.Test.WebApp.TestState", () =>
            {
                return new List<BaseInfo> { new TestState
                {
                    StateValue = stateValue,
                } };
            }));
        }

仅仅这么做还不够,我们还需要配置Mongodb的客户端和服务端加入Adhesive.Test.WebApp.TestState,使之可以接受这个数据。在上文中我们已经介绍过如何做了,这里仅仅给出配置后的截图:

image

image

然后,我们需要配置信息中心的状态服务,配置这个状态数据收集的频率等:

我们知道信息中心是一个私有配置,因此需要先找到Adhesive.Test.WebApp:

image

进入之后只有一个私有配置:

image

然后在状态服务的配置中增加一个数据项:

image

修改类型完整名为Adhesive.Test.WebApp.TestState,10秒收集一次状态。

image

在打开页面后,可以在后台查看这个状态数据,应该10秒有一条:

image

image

我们可以针对这个数据进行配置,超过100则报警。在报警模块的配置中找到针对状态的配置:

image

在这其中,我们建立一个测试状态的报警配置:

image

配置的是Test__TestState数据库中Adhesive.Test.WebApp表StateValue列数据量在1分钟内超过100则报警:

image

 

现在可以尝试在页面上通过一个按钮把状态变为改为101:

image

稍等一段时间就会收到报警,也可以在后台查看到报警发送的记录:

image

至此,我们介绍了两种报警方式的配置。

作者: lovecindywang
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
8月前
|
SQL BI 数据处理
dataCompare核心功能之数据探针
dataCompare核心功能之数据探针
177 0
|
JSON 数据格式 Python
基于elasticsearch的自定义业务告警的设计思路
基于elasticsearch的自定义业务告警的设计思路
231 0
|
Apache
Apache SkyWalking 告警动态配置源码简析
AlarmModuleProvider实现了ModuleProvider接口,通过SPI的方式被加载进来。AlarmModuleProvider的prepare方法先被调用,做一些预处理:
313 0
|
Prometheus 分布式计算 监控
Apache Spark 3.0对Prometheus监控的原生支持
阿里云EMR技术专家周康为大家带来Apache Spark 3.0对Prometheus监控的原生支持的介绍。内容包括spark 3.0以前是怎么用Prometheus进行监控的,以及spark 3.0是如何实现对Prometheus更好的本地化的支持。
3249 0
Apache Spark 3.0对Prometheus监控的原生支持
《Drools7.0.0.Final规则引擎教程》番外实例篇——FactHandler使用案例
《Drools7.0.0.Final规则引擎教程》番外实例篇——FactHandler使用案例
165 0
Adhesive框架系列文章--报警处理流程使用实践
框架除了报警之外还提供了简单的报警处理流程。 先来看一下报警相关的配置: 比如这里有一个报警,30秒检查一次30秒内相关数据如果超过10条则报警。 在报警后,系统会自动创建一个事件,相关人员登录到后台可以看到这个事件并进行处理,如果事件在处理了,那么报警会暂停,一直到处理完成之后重新开启。
876 0
|
监控 NoSQL 数据库
Adhesive框架系列文章--报警服务模块使用和实现
Adhesive框架的Mongodb数据服务模块提供了大量数据的存储功能。在有的时候,我们希望对数据量或是数据的某个值进行一个监控,并且在达到某个阀值之后进行报警。此时,可以使用报警服务模块进行邮件报警和短信报警。
2306 0
|
监控 测试技术 索引
Adhesive框架系列文章--应用程序信息中心模块使用实践
应用程序信息中心模块提供了日志、异常、性能、状态四大服务。来看一下最新的日志服务定义: void Debug(string message); void Debug(string moduleName, string message); ...
963 0