wobs-js
v0.1.2
Published
Wuying Observer SDK for JavaScript
Maintainers
Readme
Wuying GuestOS Observer JavaScript
功能
- 记录埋点和Trace数据
- 埋点的数据格式是JSON对象,包含埋点名称(eventName)、时间(time)、属性(properties)和一些其它的配置信息,比如实例名称、版本等信息。
- Trace数据格式是JSON对象,包含TraceID、SpanID、ParentSpanID、Name、Kind、StartTime、EndTime、Duration、Attributes、Events、Links、StatusCode、StatusMessage等信息。以SLS Trace数据格式输出到本地文件。
使用方法
- 创建一个Node.js项目
- 使用示例可以参考examples/demo.js
const { init, shutdown, newSpanAsCurrent, newTrackPoint } = require('wobs-js');
if (require.main === module) {
// 初始化observer,指定trackpoint和trace文件存放目录,这里设置为当前路径,默认可不填,和C++、Golang版本保持一致
init("test", './', './');
// 创建一个span,并设置属性和事件
const span = newSpanAsCurrent("test_trace");
// 设置属性
span.setAttribute("key", "value");
// 添加事件
span.addEvent("event1", {"event_attr": "event_value"});
// 如果失败了,设置trace的状态和错误信息
span.setStatus(getStatus(false), "error message");
// 记录一个埋点
newTrackPoint("test_trace");
span.end();
// 程序结束后关闭observer,这一步是可选的
shutdown();
}如何使用远端的trace_id创建span
创建span时,可以指定trace_id和span_id,这样trace_id和span_id就会作为span的父span,从而实现链路追踪。
const span = newSpanAsCurrent("test_trace", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxx");
span.setAttribute("key", "value");
span.end();依赖
- Node.js >= 12.0.0
Windows平台支持
在Windows平台上,本SDK支持从注册表读取用户和系统信息,包括:
- 阿里云EDS Agent相关信息
- Windows版本信息
- 用户桌面和实例信息
注册表读取通过Node.js的child_process模块调用Windows的reg命令实现,无需额外的依赖包。
