使用Datadog RUM从后端到前端的桥梁 | 第1部分

部分1:Datadog在Web应用程序中的实时用户监控

作为一名性能与DevOps工程师,我之前更多地接触到与后端相关的技术和体系结构。我意识到我在前端开发方面存在一些缺陷。在如今的技术领域中,对这两个领域的整体理解是无价之宝。让我们一起踏上从后端向前端转型的旅程。我们将探索HTML、CSS、JavaScript以及现代前端框架,揭开响应式设计、用户界面和用户体验的神秘面纱。这个三部分系列不仅仅是我学习之旅的记录,也是为那些希望扩展自己视野的工程师们提供的资源。让我们通过拥抱前端开发来开启创造力和技术精通的新境界。

通过 ChatGPT 的帮助,让我更加强大我的前端之旅

我在前端代码方面并不是专家。多亏了创新,通过使用ChatGPT,我们能够快速创建一个能够正常工作的前端应用程序。在这个小项目中,我使用了ChatGPT来帮助我编写简单的HTML、CSS和JavaScript代码。

给ChatGPT点个赞!通过它,我也学会了如何使用ChatGPT来改进编程实践并编写更好的代码。

ChatGPT中文站

因此,我在这个项目中的目标是通过将Datadog RUM实现到井字棋Web应用程序中,进一步了解前端。您可以访问https://tictactoe-jon.tiiny.site/上的简单井字棋Web应用程序。

ChatGPT中文站
Tic-Tac-Toe Web App

Part 1: Datadog 在 Web 应用程序中的真实用户监测

第二部分:在Datadog中实现功能标志追踪,以实现更深入的可观察性。

第三部分:通过CI/CD集成向左移动,更加主动地进行前端监控。

为什么前端可观察性很重要?

在技术工程的动态领域中,应用程序和服务的心跳必须被精确监控,可观察性占据至高无上的地位。在这一实践的核心是可观测性的三个支柱:指标、跟踪和日志。

这些支柱照亮了您系统的内部运作,帮助您诊断问题,优化性能,并确保用户体验的流畅。

作为快节奏发展环境中的工程师,我们的工具包是必不可少的。想象一下拥有一把用于观测的“瑞士军刀”,其中你很可能会找到Prometheus、OpenTelemetry、Loki和Grafana这些多功能工具。

当涉及到前端(浏览器、移动应用程序)时,获得可观察性洞察力也非常重要。

  • 揭示用户与您的应用程序的互动方式(与性能相关)。
  • 了解用户如何体验您的应用程序(与用户分析相关)。

实时用户监控(RUM)@ Datadog

Datadog的RUM可帮助您更深入地了解前端应用程序。RUM不仅提供与性能相关的洞察,还提供分析相关的洞察。

在您的应用程序中安装Datadog RUM

根据您的前端托管位置(网页或移动端),安装步骤会有所不同。由于我将托管井字游戏应用程序(井字游戏应用程序包括一个简单的HTML、CSS和Javascript文件)在网页上,我将使用Datadog的浏览器RUM SDK。请在此处查看Datadog RUM SDK的不同设置方法。

以下是在浏览器上实现RUM的三种不同方法的摘要。根据您的使用情况,您可以选择其中任意一种方法。

ChatGPT中文站
Summary Table of the 3 installation methods for Browser RUM

对于我的情况来说,我将选择使用CDN异步加载,因为我想保持代码的HTML部分的改动。

  • 将生成的代码片段添加到您要监视的每个HTML页面的head标签中,以初始化Datadog RUM SDK。

在Datadog平台上探索RUM数据

总体情况

  • Datadog上的性能摘要视图是一个互动的仪表板,为您的前端应用程序提供综合的性能相关洞察。
  • ChatGPT中文站
    Datadog RUM Performance Summary
  • 这是一个很好的视角,可以开始更多地了解性能度量、错误度量和部署相关度量。
  • 从这里,您可以导航到其他预建的仪表板,以便进行更深入的分析。

以下是一些在安装Datadog的RUM SDK后可用的预建仪表板示例。

ChatGPT中文站
Pre-built RUM Web App Performance Dashboard
ChatGPT中文站
Pre-built RUM Web App Performance Dashboard

分析摘要

  • RUM软件开发工具包还提供了专门的视图来显示与分析相关的信息。这对于希望获取与用户相关的洞察的工程师非常有用。
  • ChatGPT中文站
    Datadog RUM Analytics Summary
  • 该视图也被归类为各个部分,如参与度、获取、人口统计和挫败信号。
  • 挫折信号是非常有趣的,因为你可以看到Datadog的RUM能够测量到用户的挫折点(即用户的痛点)。

沮丧是一种无形的东西,所以如何将其模拟为一个信号以提供更多前端见解是非常有趣的。

TL;DR. 有三种类型的沮丧信号:死点击,错误点击和愤怒点击。

你可以在这里阅读更多。

ChatGPT中文站
Datadog RUM showing Frustration Signals (Player X must be losing the game :P)
  • 漏斗分析是Datadog RUM中的另一个功能,它可以让您深入了解和理解应用程序中的特定用户流程。这样可以让您监控特定关键业务流程(例如关键支付流程等)。
  • 在这个示例中,我想要了解用户在使用我的功能标志时的应用流程(将X符号更改为△)。
  • ChatGPT中文站
    Funnel Analysis showing the use of Feature Flag (you will see more about this in part 2)
    ChatGPT中文站
    Analysis of the application flow from home page to Feature Flag Toggle
  • 最后但同样重要的是,当涉及到用户与您的前端交互时,热点图可以帮助您更好地了解前端上的热点区域。
  • ChatGPT中文站
    Heatmaps for Frontend Sessions
  • 从热图上看出的颜色渐变,似乎许多用户的策略是占据中心网格。当然,对于关键业务应用来说,这将为您提供有用的与业务相关的见解,帮助您优化您的应用程序。

会话回放

  • 回放会话是另一个有用的功能,它帮助工程师将前端指标和日志与用户所见的内容关联起来。
  • 您可以在此处的Datadog文档中了解更多有关会话重放的信息。
  • 在涉及这些RUM收集的数据的隐私相关设置方面,也有许多选项,可以在这里和这里找到。
  • ChatGPT中文站
    Session Replay of a User Session

给RUM会话添加更多的上下文

我已经通过Datadog RUM SDK的原始实施看到了很多见解。在这部分中,我将用与用户相关的上下文来丰富我的RUM会话。这些信息将帮助我更容易地确定特定用户,并帮助识别会话。

对于一项业务关键的应用程序,尤其是在事故管理期间,每一秒钟都非常重要。添加这个上下文将帮助您节省这些时间,并帮助您更快地找到所需的内容。

  • 由于这只是一个演示应用程序,并且我实际上没有一个服务器端来存储登录信息,我将会生成虚假的用户登录信息。您可以从上面的代码中查看。
  • 为了设置用户上下文,请使用 window.DD_RUM.setUser。
  • 通过这样做,我们将能够使用这些用户上下文来过滤特定用户会话,以开始分析前端数据。
  • ChatGPT中文站
    Datadog RUM showing filtering using User Attributes (username, user id, user email)

第一部分结论

Datadog RUM SDK提供了许多功能。令人惊讶的是,仅通过RUM SDK的原始实现就可以获得大量与前端相关的度量和洞察。有许多方法可以丰富RUM SDK收集的事件。在第一部分中,我们已经看到了如何能够向RUM会话添加用户上下文,以帮助识别来自特定用户的会话。

第1部分涵盖的关键特点包括性能摘要(核心网络要素,预构建仪表板),分析摘要(漏斗分析,用户痛点信号,热力图)和会话重放。

在Datadog RUM产品中有更多可以探索的地方。我个人最喜欢的是通过连接RUM到后端APM跟踪,轻松地保持上下文。您可以在前端应用程序上尝试使用RUM SDK,并在Datadog的免费14天试用版中亲自体验!

在这个系列的第2部分中,我们将看到Datadog如何帮助您进行功能标志跟踪。

2023-10-20 17:15:04 AI中文站翻译自原文