道旅鬼谷子分享:如何打好业务监控的组合拳

简介: 公司由于业务迅速扩展,需要针对业务方面进行定制监控。通过选型最终采用了 ARMS 方案。以下篇幅简单介绍了方案的大致概要以及最终效果,以供读者参考。一套组合拳,在数据分析、实时计算、报警、API、持久化存储等方面给我们节省了不少时间,也提供了更多的可能性。所以,最终我们选择了 ARMS。

来自 道旅旅游科技股份有限公司 鬼谷子 的撰稿

业务背景

公司由于业务迅速扩展,需要针对业务方面进行定制监控。通过选型最终采用了 ARMS 方案。以下篇幅简单介绍了方案的大致概要以及最终效果,以供读者参考。

选择

以下是几个产品方案的对比。需要解释的是,以下三个产品在我们的架构中都有大量使用,但是只是在本监控方案中,由于一些业务场景的特殊性,我们使用了业务实时监控服务 ARMS,虽然这并不代表 ARMS 是一个银弹。

MaxCompute

我们以前用过 MaxCompute 作周期性的业务数据计算,缺点非常明显,就是延迟性太高,这对于实时监控来说是致命的直接被PASS。

流计算

参加深圳云栖大会的时候了解到流计算如获至宝,也回来尝试使用过一段时间,在实时监控的功能节点上是很重要的一环没错,但太过于细节,导致整条线过程冗长且繁杂,最后也放弃了。

业务实时监控服务 ARMS

一套组合拳,在数据分析、实时计算、报警、API、持久化存储等方面给我们节省了不少时间,也提供了更多的可能性。所以,最终我们选择了 ARMS。

架构

image

数据源

IIS日志

Windows ECS 安装 Logtail 对 IIS 产生的日志进行实时抓取

业务日志

使用日志服务 SDK 提交日志

实时数据分析

ARMS 的配置分为以下几个部分,由于篇幅原因,仅列出重点,详细内容不赘述。

日志切分

根据规则对日志进行切分、类型转换、字段重组等

数据集

将符合条件的数据进行汇总保存(留待后续分析和监控使用),按需设置报警(邮件、短信)

数据使用

对接 API

通过对接 API,可以对数据集内的数据进行查询,以便后续的业务分析和问题复查

业务分析

实时查询数据集内的结果,根据业务在内存中进行二次计算形成报表

监控

我们做了个 Monitoring 的项目,对接 Grafana 的 Datasource,这样便可以在 Grafana 实时看到数据集内的数据。

使用案例

供应商酒店请求分析 监控

该场景用于我们对供应商酒店请求数的业务监控和事后分析,主要使用方是业务人员。介绍如下:

  • 通过日志服务 SDK 在酒店请求接口中埋点日志
  • 在 ARMS 后台根据供应商 Id,酒店 Id,请求维度等参数配置数据集
  • 对接 ARMS 接口,通过下钻的方式获取到数据。
  • 在内存中根据业务进行二次计算
  • 生成报表

image

调用第三方接口的 Status Code 监控

该场景用于我们对供应商酒店请求的状态码分析,主要使用方是运维和开发。本方案实现了 ARMS 对 Grafana 的对接,基本介绍如下:

  • 通过 Logtail 实时抓取 IIS 日志
  • 在 ARMS 后台配置好数据集
  • 在 Monitoring 项目中对接 ARMS 接口,并根据 simpleJson 接口规则实现 Grafana Data Source 对接。
    image
  • 为 SimpleJson 的 Search 接口定义 target 规则,并生成 target 与配置对应关系
  • 使用 ARMS 的下钻功能为 SimpleJson 的 Search 接口支持 Templating 功能
    image
  • 在 Grafana 中使用 Moniroing 提供的 simpleJson 接口实现展示数据
    image

点击了解 业务实时监控服务 ARMS

相关实践学习
通过轻量消息队列(原MNS)主题HTTP订阅+ARMS实现自定义数据多渠道告警
本场景将自定义告警信息同时分发至多个通知渠道的需求,例如短信、电子邮件及钉钉群组等。通过采用轻量消息队列(原 MNS)的主题模型的HTTP订阅方式,并结合应用实时监控服务提供的自定义集成能力,使得您能够以简便的配置方式实现上述多渠道同步通知的功能。
相关文章
|
6月前
|
Web App开发 算法 安全
《拆解WebRTC:NAT穿透的探测逻辑与中继方案》
本文深入解析了WebRTC应对NAT穿透的技术体系。NAT因类型多样(完全锥形、受限锥形、端口受限锥形、对称NAT)给端到端通信带来挑战,而WebRTC通过STUN服务器探测公网地址与NAT类型,借助ICE协议规划多路径(本地地址、公网反射地址、中继地址)并验证连接,TURN服务器则作为中继保障通信。文章还探讨了多层NAT、运营商级NAT等复杂场景的应对策略,揭示WebRTC通过探测、协商与中继实现可靠通信的核心逻辑,展现其在网络边界中寻找连接路径的技术智慧。
321 7
|
算法
数据结构中的KMP算法及其改进算法
KMP算法通过引入部分匹配表,有效避免了重复计算,从而将字符串匹配的时间复杂度降低到O(m+n)。通过进一步优化next数组,KMP算法的效率得到了进一步提升。对于大规模字符串匹配问题,KMP算法及其改进算法提供了高效的解决方案,是计算机科学领域的经典算法之一。
829 3
|
前端开发 JavaScript 搜索推荐
深入理解前端路由:构建现代 Web 应用的基石(下)
深入理解前端路由:构建现代 Web 应用的基石(下)
深入理解前端路由:构建现代 Web 应用的基石(下)
|
消息中间件 存储 负载均衡
什么是RabbitMQ?
RabbitMQ是一个开源的消息代理软件,用于在分布式系统中传递消息。它实现了高级消息队列协议(AMQP),提供了一种可靠的、强大的、灵活的消息传递机制,使得不同应用程序或组件之间可以轻松地进行通信。
566 0
|
JavaScript
在vue中如果头像为空时用姓名第一个字当头像
在vue中如果头像为空时用姓名第一个字当头像
302 0
|
网络协议
ORA-12557
ORA-12557
306 0
|
SQL 测试技术 数据库
|
安全 网络协议 Shell
DNS域传送漏洞
备份服务器需要利用”域传送“从主服务器上复制数据,然后更新自身的数据库,以打到数据同步的目的,这样是为了服务器挂了还有备份可用。而DNS域传送漏洞,则是由于dns配置不当,本来只有备份服务器才能获取主从服务器的数据,由于漏洞导致 任意client都能通过“域传送”获得主服务器的数据(zone数据库信息)。
1186 0
|
固态存储 芯片 内存技术
固态硬盘E2E数据保护机制
为什么采用E2E端对端数据保护机制很有必要呢?
|
机器学习/深度学习
双向RNN与堆叠的双向RNN
双向RNN(Bidirectional RNN)的结构如下图所示。
669 0
双向RNN与堆叠的双向RNN