ARMS(Application Real-Time Monitoring Service)介绍

656 阅读3分钟

文档链接:help.aliyun.com/document_de…

应用实时监控服务ARMS(Application Real-Time Monitoring Service)是一款应用性能管理(APM)产品,包含应用监控、Prometheus监控和前端监控三大子产品,涵盖分布式应用、容器环境、浏览器、小程序、APP等领域的性能管理,能帮助您实现全栈式性能监控和端到端全链路追踪诊断,让应用运维从未如此轻松高效。

ARMS前端监控

文档链接:help.aliyun.com/document_de… ARMS前端监控专注于对Web场景、Weex场景和小程序场景的监控,从页面打开速度(测速)、页面稳定性(JS Error)和外部服务调用成功率(API)这三个方面监测Web和小程序页面的健康度

为什么要有前端监控?

用户访问您的业务时,整个访问过程大致可以分为三个阶段:页面生产时(服务器端状态)、页面加载时和页面运行时。

为了保证线上业务稳定运行,我们会在服务器端对业务的运行状态进行各种监控。现有的服务器端监控系统相对已经很成熟,而页面加载和页面运行时的状态监控一直比较欠缺。例如:

  • 无法第一时间获知用户访问您的站点时遇到的错误。
  • 各个国家、各个地区的用户访问您的站点的真实速度未知。
  • 每个应用内有大量的异步数据调用,而它们的性能、成功率都是未知的

解决方案

ARMS前端监控重点监控页面的加载过程和运行时状态,同时将页面加载性能、运行时异常以及API调用状态和耗时等数据,上报到日志服务器。之后借助ARMS提供的海量实时日志分析和处理服务,对当前线上所有真实用户的访问情况进行监控。最后通过直观的报表展示,帮助您及时发现并诊断问题。

image.png

以npm方式接入前端监控

文档链接:help.aliyun.com/document_de…

安装

在npm仓库中安装alife-logger

npm install alife-logger --save

初始化

SDK以BrowserLogger.singleton方式初始化。

const BrowserLogger = require('alife-logger');
                // BrowserLogger.singleton(conf) conf传入config配置。
                const __bl = BrowserLogger.singleton({
                pid: 'your-project-id',
                // 设定日志上传地址:
                // 部署新加坡地域可设为`https://arms-retcode-sg.aliyuncs.com/r.png?`。
                // 部署美西地域可设为`http://arms-us-west-1.console.aliyun.com/r.png?`。
                imgUrl: 'https://arms-retcode.aliyuncs.com/r.png?', 
                // 其他config配置。
                });

使用npm方式接入ARMS前端监控时,Web端SDK会自动生成UID来统计UV等信息。自动生成的UID可以用来区分用户的标识,但不具有业务属性,如需自定义UID,请在上述代码中加入以下内容:

uid: 'xxx', // 该值用于区分用户的标识,根据业务设置。

示例:

const BrowserLogger = require('alife-logger');
                // BrowserLogger.singleton(conf) conf传入config配置。
                const __bl = BrowserLogger.singleton({
                    pid: 'your-project-id',
                        // 设定日志上传地址:
                        // 部署新加坡地域可设为`https://arms-retcode-sg.aliyuncs.com/r.png?`。
                        // 部署美西地域可设为`http://arms-us-west-1.console.aliyun.com/r.png?`。
                    uid: 'xxx', // 该值用于区分用户的标识,根据业务设置。
                        imgUrl: 'https://arms-retcode.aliyuncs.com/r.png?', 
                    // 其他config配置。
                });

通用SDK配置项

ARMS前端监控提供一系列SDK配置项,让您能够通过设置参数来满足额外需求。以下是适用于本文场景的通用配置项。

参数类型描述是否必选默认值
pidString项目唯一ID,由ARMS在创建站点时自动生成。
uidString用户ID,用于标识访问用户,可手动配置,用于根据用户ID检索。如果不配置,则由SDK自动生成且每半年更新一次。由SDK自动生成
tagString传入的标记,每条日志都会携带该标记。
releaseString应用版本号。建议您配置,便于查看不同版本的上报信息。undefined
environmentString环境字段,取值为:prod、gray、pre、daily和local,