快速开始

三行代码,把第一个指标送上观澜数据。本文使用 Node.js SDK,其他语言请参考对应 SDK 章节。

1. 接入前准备

开始之前,确认这三件事已经就绪:

  • 一个观澜项目:提交邮箱后由人工开通(工作日平均 10 分钟),开通邮件内含控制台访问地址。
  • 一个 API Key:在控制台「设置 - 密钥管理」创建,可随时轮换。请通过环境变量注入,不要写入代码仓库。
  • 出网连通:需要能访问下表中的接入地址,防火墙无需开放入站端口。
地址用途协议
ingest.guanlan-data.com:443指标、日志与链路数据上报HTTPS / gRPC / OTLP
api.guanlan-data.com:443查询与管理 APIHTTPS
console.guanlan-data.com控制台HTTPS
建议先接入一个非核心服务的 5 - 10 个指标,确认链路通畅、标签口径正确后再全量接入。接入过程中遇到问题,可参考帮助中心的排查清单。

2. 安装 SDK

推荐使用包管理器安装官方 SDK:

# npm
npm install @guanlan/sdk

# pnpm
pnpm add @guanlan/sdk

3. 初始化客户端

在控制台创建项目并复制 API Key,然后在应用入口初始化:

import { Guanlan } from '@guanlan/sdk';

const gl = new Guanlan({
  apiKey: process.env.GUANLAN_API_KEY,
  service: 'order-api',        // 服务名,作为默认标签
  environment: 'production',
});
API Key 请通过环境变量注入,不要硬编码在代码仓库中。控制台支持一键轮换 Key。

4. 上报第一个指标

gl.metric('order.created', 1, {
  channel: 'app',
  region: 'cn-shanghai',
});

// 计数器、直方图、仪表盘均支持
gl.metric('checkout.duration', 342, { unit: 'ms' });

上报是异步批量的,SDK 默认每 5 秒或累计 500 条刷新一次,不会阻塞业务线程。

5. 上报日志

日志与指标走同一条采集管道,已有 OpenTelemetry Collector 的环境可以直接转发:

gl.log('order.failed', {
  level: 'error',
  service: 'order-api',
  traceId: ctx.traceId,   // 关联后可从日志直达调用链
  detail: { orderId, reason: 'payment_timeout' },
});

单条日志上限 256 KB,超出部分会被截断并计入上报失败计数。结构化字段自动建立索引,正文内容走全文检索。

6. 链路追踪

// 入口创建 span,SDK 自动传播 W3C traceparent
await gl.trace('checkout', async (span) => {
  span.setAttribute('cart.items', cart.length);
  const order = await span.child('order.create', createOrder);
  await span.child('payment.charge', () => charge(order));
});
自动埋点覆盖常见 HTTP、gRPC 与数据库客户端,无需改动业务调用结构;若已有 OpenTelemetry SDK,链路数据会在观澜侧与现有 trace 合并。

7. 查询语言

查询语言兼容 PromQL,你可以直接用熟悉的语法:

# 最近 1 小时各渠道的下单量
sum by (channel) (
  increase(order_created_total{service="order-api"}[1h])
)

8. API 参考

所有控制台能力均开放 REST API。基地址为 https://api.guanlan-data.com/v2,认证使用 Authorization: Bearer <API_KEY>。

# 查询指标
curl https://api.guanlan-data.com/v2/metrics/query \
  -H "Authorization: Bearer $GUANLAN_API_KEY" \
  -d 'query=sum(rate(order_created_total[5m]))'
端点方法说明
/v2/metrics/queryPOSTPromQL 即时查询
/v2/metrics/ingestPOST批量上报指标
/v2/logs/searchPOST日志全文检索
/v2/alerts/rulesGET / POST告警规则管理

9. 配额与限流

以下为默认限制,企业版可按需调整:

项目免费版专业版企业版
写入限流20 QPS500 QPS按需调整
查询限流50 QPS1,000 QPS按需调整
单次批量指标与日志单次最多 1,000 条;单条日志上限 256 KB
标签基数单个指标建议不超过 100 个标签值,超出后会计入基数告警
最小采样间隔10 秒,低于该间隔的采集请求会被拒绝
超出配额按 ¥0.35/GB 继续计费,不会停止服务

用量在控制台「用量」页实时更新(每小时同步一次),达到 80% 额度时邮件提醒,并可设置月度预算上限。

10. SDK 语言支持

语言安装包最低版本支持能力
Javacom.guanlan:sdk2.0指标 / 日志 / 链路
Gogithub.com/guanlan/sdk-gov2.0.0指标 / 日志 / 链路
Pythonguanlan-sdk2.0指标 / 日志 / 链路
Node.js@guanlan/sdk2.0指标 / 日志
Rustguanlan-sdk2.0指标
任意语言OpenTelemetry Collector / OTLP HTTP—指标 / 日志 / 链路
没有合适的语言时,直接用 OTLP HTTP 推送即可,无需等待官方 SDK。接入端点见接入前准备。

11. 核心概念

  • 项目(Project):资源与权限的顶层边界,通常对应一个团队或一个业务线。
  • 服务(Service):数据归属的最小单元,建议与部署单元一一对应。
  • 仪表盘(Dashboard):图表的集合,支持变量模板与下钻联动。
  • 事件(Event):一次告警的完整生命周期,包含聚合后的相关信号。

12. 下一步

  • 接入 观澜雷达,为关键指标配置第一条告警;
  • 已有 Prometheus / Grafana?从迁移指南开始,多数团队两周内完成;
  • 遇到问题?帮助中心或提交工单,工作日 2 小时内响应。