应用概述

RedTrack 是一款基于 Redis 的应用程序接口可观测系统,其利用中间件在后端服务器非阻塞记录来访者信息,并提供查询和修改 API,包含一个原生应用和 Web 界面以供对应用流量进行分析。

主要功能

访问记录与查询

  • 通过 Reitit 路由标记为多个 API 记录访问次数、来访者 IP、地址、时间信息

实时监控与分析

  • 通过界面展示 API 访问次数,以及其最近 500 个访问的详细信息,并按照时间倒叙排序和统计
  • 支持 API 搜索和排序,以及为某一搜索结果保存为“快捷方式”以供后续即点即搜
  • “快捷方式”和最后搜索结果跨设备同步保存
  • 当某个 API 组有新的 API 项或某个 API 项自从上一次访问后有变更时,标绿计算差值提醒用户

通知与告警

  • 为某个 API 添加监控功能,当未来有用户访问此 API 时通过 Slack 发送通知

IP 地址过滤

  • 为某个 API 增加 IP 地址标记,可以按照标记进行 IP 地址筛选过滤

技术清单

RedTrack 后端采用 Clojure 语言编写,Clojure 是一个 LISP 方言,以其简洁、灵活性以及对并发编程的支持而著称。Clojure 代码以高度函数式的方式编写,通常被称为 “Lisp-ier Haskell”,并且以其表现力、简洁性和可读性而闻名。为了最大限度降低可观测性对应用程序性能影响,使用 Redis 异步记录来访者信息,这通过自研的鉴权和记录 Ring 中间件通过在路由进行字段标记实现。

RedTrack 的前端采用 Flutter 编写,用于本机原生和跨设备界面交互。前端使用了 RiverPod 响应式数据缓存框架,以提供搜索、排序、快捷方式增删改查、快捷方式搜索结果变更高亮、API 变更高亮特性。

RedTrack 使用了 Redis 的发布订阅功能实现对于某个 API 的访问监控,当检测到 Redis 写入某个被监控的 API 键时,触发事件并检测是否需要发送通知,之后使用基于限流的方式在不过分影响用户的前提下发送 Slack 消息给用户。

RedTrack 虽然在客户端实现了搜索分组、变更检测功能,但对于某些常用的 API 组,亦通过 Lua 脚本实现 API 聚合查询,并提供给前端接口以供展示。

最后,RedTrack 还提供了 Web 界面,相比较移动界面更关注 API 组以及某个 API 的变动,快速开关对某个 API 的监控,Web 界面额外增加了分组折叠以及 IP 地址贴标签以及过滤标签的功能,方便筛选爬虫以及对访问来源进行归纳整理。

总的来说,RedTrack 基于 Redis 实现了一个简单、高效的应用程序接口可观测性系统,搭配精心设计的 Web 和客户端界面功能,能够满足用户对 API 调用更好理解和掌握的需求。

客户收益

  • 基于 Redis:RedTrack 利用 Redis 作为底层存储,具有高性能、高可用和可扩展的特性
  • 非阻塞记录:RedTrack 利用中间件在后端服务器非阻塞记录来访者信息,不会影响应用程序的性能
  • 丰富的功能:RedTrack 提供了丰富的功能,包括访问记录与查询、实时监控与分析、通知与告警、IP 地址过滤和高性能计数等
  • 易于使用:RedTrack 提供了一个原生应用和一个 Web 界面,方便您在各个平台对应用流量进行分析和管理

“RedTrack 是一个非常强大的应用程序接口可观测系统。它不仅可以帮助我记录和查询 API 的访问信息,还可以实时监控和分析 API 的流量,并提供各种通知和告警功能。它大大提高了我们对应用程序接口的管理和运维效率。” -- 用户 A

“RedTrack 的使用非常简单,即使是新手也能快速上手。它直观的界面和丰富的功能让我能够轻松地监控和分析应用程序的 API 流量。此外,它的跨设备同步功能也非常方便,让我可以在不同的设备上访问和管理我的数据。” -- 用户 B

“RedTrack 是一个非常可靠的应用程序接口可观测系统。它稳定运行了数月,从未出现过任何问题。它帮助我们及时发现和解决应用程序接口的问题,避免了重大故障的发生。” -- 用户 C

有类似需求?联系微信 CorkineMa免费获取建议和报价折扣。