首页 > 其他分享 >使用 OpenTelemetry (OTel) 实现 Elastic RUM (真实用户监控)

使用 OpenTelemetry (OTel) 实现 Elastic RUM (真实用户监控)

时间:2024-08-21 10:48:03浏览次数:13  
标签:OTel elastic Elastic RUM 用户 应用程序 APM

本文继续介绍 OpenTelemetry 与 Elastic Observability 的结合,详细讲解了如何使用 Docker Compose 或 Kubernetes 设置 OpenTelemetry 演示。

Elastic 真实用户监控(RUM)捕捉用户与网页浏览器的交互,并从性能角度提供有关“真实用户体验”的详细视图。

Elastic 的 RUM Agent 是一个 JavaScript 代理,意味着它支持任何基于 JavaScript 的应用程序。RUM 可以为您的应用程序提供宝贵的见解。

RUM (真实用户监控) 的好处

  • RUM 性能数据可以帮助您识别瓶颈,并发现网站性能问题如何影响访问者的体验。
  • RUM 捕捉的用户代理信息使您能够识别客户最常使用的浏览器、设备和平台,从而对应用程序进行有针对性的优化。
  • 结合位置信息,RUM 的个体用户性能数据帮助您了解全球范围内网站的区域性能。
  • RUM 提供了有关应用程序服务级别协议(SLA)的洞察和测量。
  • RUM 收集的客户访问和点击行为信息对于开发团队了解新功能的影响非常有用。

我们将逐步介绍如何在应用程序中启用 RUM(真实用户监控),并在 Elasticsearch Observability 中进行监控。

从 Github 仓库中下载并安装应用程序,无论是 Docker 还是 Kubernetes,并按照 OpenTelemetry 与 Elastic Observability 的描述进行配置。

一旦应用程序启动并运行,前往您的部署 → 集成 → APM → RumJS → 复制如下配置。

复制以下配置设置,将代理安装为依赖项。

npm install @elastic/apm-rum --save

然后,您可以像下面这样初始化和配置代理。有关更多详细信息,请参阅集成文档。

另外,复制以下配置设置,通过 Script Tags 设置代理。

现在我们将使用这些设置来配置前端应用程序以启用 RUM。

导航到您的应用程序服务文件夹(opentelemetry-demo/src/frontend/Dockerfile),并更新 Docker 文件为:

RUN npm install @elastic/apm-rum --save

导航到应用程序(前端)服务文件夹(opentelemetry-demo/src/frontend/pages/_app.tsx),并更新 RUM 的配置。 您可以自定义服务名称和环境参数。

// 配置 RUM 代理
import { init as initApm } from '@elastic/apm-rum';
if (typeof window !== 'undefined'){
   initApm({
       serviceName: 'otel-frontend',    
       serverUrl: '<url>',
       serviceVersion: '',
       environment: 'demo'
   });
}

服务名称:在 APM 界面中代表您的应用程序。

服务版本:这是应用程序的版本号。此版本号也用于 APM 服务器查找正确的源映射。

服务器 URL:这是 APM 服务器的 URL。请注意,APM 服务器 URL 通常可以从公共互联网访问,因为您的 RUM 代理从互联网上的终端用户浏览器向其报告数据。

环境:在共享环境中,这对更好的过滤非常有帮助。

登录 Kibana,然后导航到 Observability 的用户体验部分,分析 RUM 数据并查看可用的指标。


参考文献:

https://www.linkedin.com/pulse/opentelemetry-elastic-observability-rahul-ranjan-3l6bc/

https://opentelemetry.io/docs/demo/

https://www.elastic.co/guide/en/observability/8.14/apm-configuration-rum.html

标签:OTel,elastic,Elastic,RUM,用户,应用程序,APM
From: https://www.cnblogs.com/wapmgc/p/18371169

相关文章

  • 企业级Scrum敏捷赋能课程:为企业量身定制的敏捷开发培训,旨在提升团队协作与项目交付能
    ​​课程简介:Scrum是一种广泛应用的敏捷开发方法,用于项目管理和产品研发。该课程为期两天,专为研发管理者、项目经理、产品经理和研发团队设计。通过案例讲解和沙盘演练,学员将深入理解Scrum的核心理念,如产品价值驱动、以用户为中心、快速迭代和增量交付,掌握自管理团队的构建及......
  • Elasticsearch怎么导出索引数据至CSV
    保存Search打开kibana选择需要保存的index定义好时间区间,需要导出的字段等分享CSV下载CSV导出成功在右下角会出现下载链接......
  • 2024首届中国Scrum大会成功落幕
    ​​2024年8月17日,首届中国Scrum大会在上海圆满落幕。这次大会由Scrum.org和Scrum中文网联合主办,以“AI时代下的敏捷”为主题,吸引了来自全国各地的敏捷实践者、企业领导、技术专家和学者,共同探讨敏捷方法在新时代的应用与未来发展。大会内容丰富,设置了三个分会场,分别聚焦金融业......
  • ElasticSearch IK分词器的MySQL热部署字典(Docker)
    1.下载插件源码找到自己对应ES版本的下载Releases·infinilabs/analysis-ik·GitHub2.添加mysql驱动依赖<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.......
  • go elasticsearch聚合统计
    在Go语言中使用Elasticsearch进行聚合统计,你可以使用 olivere/elastic  这个流行的Elasticsearch客户端库。以下是一个使用 olivere/elastic  进行聚合统计的示例代码:首先,你需要安装 olivere/elastic  库:gogetgithub.com/olivere/elastic然后,你可以编写......
  • Elasticsearch(ES)(版本7.x)数据更新后刷新策略RefreshPolicy
    Elasticsearch(ES)(版本7.x)数据更新后刷新策略RefreshPolicy介绍ES数据写入后,默认1s后才会被搜索到(refresh_interval为1);这样可能是考虑到性能问题,毕竟实时IO消耗较多资源造成的问题例如一个索引现在有100个文档,当新增一个文档时,立即查询,显示数量为100,并不为101例如......
  • docker安装Elasticsearch
     一、创建网络 dockernetworkcreatees-net 二、拉取镜像 dockerpullelasticsearch:8.6.0 三、创建容器 dockerrun-d\--nameelasticsearch\--networkes-net\-p9200:9200\-p9300:9300\--privileged\elasticsearch:8.6.0 四、修改......
  • ElasticSearch分词器
    什么是分词器❓顾名思义,文本分析就是把全文本转换成一系列单词(term/token)的过程,也叫分词。在ES中,Analysis是通过分词器(Analyzer)来实现的,可使用ES内置的分析器或者按需定制化分析器。分词器组成部分分词器是专门处理分词的组件,分词器由以下三部分组成:characte......
  • ElasticSearch接口
    DSL语法DSL为ES过滤数据时的语法,可用于查询、删除等操作基本构成默认分页查询,size默认为10。ES查询默认最大文档数量限制为10000,可通过index.max_result_window配置来控制,建议考虑通过滚动查询或其他策略实现超过10000限制的查询{"query":{"match":{......
  • 搭建Flarum一切成功但是测试邮箱、注册时显示糟糕出错啦(解决办法)
    php8.2,php8.3用户安装flarum注意关闭display_errors!不管是注册(实际注册成功但报错),还是SMTP邮件配置测试发送,以及一系列类似下面这种200报错的奇怪问题`POSThttps://xxxxxxxxxx/register<br/><b>Deprecated</b>:json_decode():Passingnulltoparameter#1($json)of......