YU JIAN / APMOBSERVE. UNDERSTAND. RESOLVE.
从信号,到线索,再到答案

每一次异常,
都值得被看清。

让散落的错误、请求和性能汇聚成清晰的上下文。
在自己的工作空间里,从发现走向定位。

语间互动 APM / 工作空间交互预览 · 示例数据
选择场景,沿线索探索
错误上下文3 个示例
ERROR INSPECTORJavaScript 运行时错误
01TypeError: Cannot read properties of undefined
02
0340 async function submitOrder(cart) {
0441 const response = await createOrder(cart);
0542 return response.data.order.id;
0643 }
把错误、来源和原始上下文放在一起,沿着线索定位问题。示意场景,非线上监控数据
浏览器 SDKHTTP 直连错误上下文Web Vitals私有化部署

不止看到报错。
更要看见全貌。

从发生了什么,到发生在哪里。
把排查需要的线索,留在同一视野。

ERROR / CONTEXT01

每个异常,都有上下文。

运行时错误、Promise 异常和接口失败,结合来源、文件位置与原始数据,一起查看。

异常信号TypeError示意事件
来源 / source文件位置 / file原始数据 / payload
列表 + 详情 · 连续查看进入错误工作空间
PERFORMANCE02

让耗时有迹可循。

Web Vitals、接口与资源样本,
帮助定位性能瓶颈。

PRIVATE BY DESIGN03

你的数据。你的环境。

官网、控制台和上报接口在同一服务中运行,数据存储在自己的 MySQL 中。

采集你的服务你的数据库

从你的代码,
连接你的视野。

浏览器 SDK 负责自动采集。服务端、定时任务与第三方回调,也可以通过 HTTP 直接上报。

  • 支持 Script 标签直接引入
  • 支持纯 HTTPS POST 直接上报
  • 支持服务端、任务、Webhook 等任意请求源
创建你的第一个项目
浏览器 SDK HTML
<script src="https://your-apm.example.com/apm-browser.js"></script>
<script>
  window.YujianAPM.init({
    endpoint: "https://your-apm.example.com/api/ingest",
    project: "<YOUR_PROJECT_SLUG>",
    apmKey: "<YOUR_PROJECT_KEY>"
  });
</script>
直接 HTTP 上报 cURL
curl -X POST "https://your-apm.example.com/api/ingest" \
  -H "Content-Type: application/json" \
  -H "x-apm-key: <YOUR_PROJECT_KEY>" \
  -d '{
    "project": "<YOUR_PROJECT_SLUG>",
    "eventType": "custom_error",
    "url": "https://your-service.example.com/",
    "payload": {
      "message": "Example error",
      "source": "custom-http"
    }
  }'

上报地址使用当前站点。请在控制台创建项目,并替换示例中的项目标识和 Key;正式接入请使用 HTTPS。

亲手发出信号。
走一遍完整路径。

从浏览器发送测试事件,
到控制台确认入库与查看详情。

发送一条测试事件

测试数据只发送到预留的演示项目。点击后会加载 SDK 并执行上报,不会开启全页自动采集。

控制台报错

打印一条控制台错误,并发送包含错误消息的 console_error 事件。

API 错误响应

向演示接口发送错误参数,上报 HTTP 422 状态、耗时和响应体。

网络请求失败

访问一个不存在的地址,验证 fetch reject 时的失败原因上报。

当前状态

等待操作

点击任一按钮发送一条测试事件。浏览页面不会自动采集或上报。

在控制台查看演示项目错误

MAKE THE NEXT ERROR CLEAR.

下一个异常,看得更清楚。

打开你的工作空间