You need to enable JavaScript to run this app.
导航
快速开始
最近更新时间:2024.01.18 09:58:32首次发布时间:2022.06.15 11:55:01

本文介绍如何快速使用日志服务 Node.js SDK 实现基础的日志采集流程,包括创建日志项目、创建日志主题、写入日志和查询日志等操作。

前提条件

  • 已安装日志服务 Node.js SDK。详细步骤请参考安装 Node.js SDK
  • 推荐使用最新版本的 Node.js SDK,您可以在 package.json 文件的 @volcengine/openapi 字段中查看 SDK 版本号。
  • 已添加 VOLCENGINE_ACCESS_KEY_ID 等环境变量。环境变量的配置方式请参考配置身份认证信息

初始化客户端

初始化 Client 实例之后,才可以向 TLS 服务发送请求。初始化时推荐通过环境变量动态获取火山引擎密钥等身份认证信息,以免 AccessKey 硬编码引发数据安全风险。
初始化代码如下:

VOLCENGINE_ACCESS_KEY_ID="your accessKeyId" VOLCENGINE_ACCESS_KEY_SECRET="your secretKey" VOLCENGINE_ENDPOINT="your host" VOLCENGINE_REGION="your region"

示例代码

本文档以日志服务的基本日志采集和检索流程为例。创建一个 TLSSQuickStart.js 文件,并调用接口分别完成创建 Project、创建 Topic、创建索引、写入日志数据和查询日志数据。
详细示例代码如下:

const { tlsOpenapi } = require('@volcengine/openapi');
async function main() {
    const tlsOpenapiService = tlsOpenapi.defaultService;
   
    
    const project = await tlsOpenapiService.CreateProject({
        ProjectName: 'your project name',
        Region: 'project belong to which region',
    });
    
    const topic = await tlsOpenapiService.CreateTopic({
        ProjectId: 'your project id',
        ShardCount: 'your shard count',
        TopicName: 'your topic name',
        Ttl: 'your ttl time',
    });
    
    const index = await tlsOpenapiService.CreateIndex({
        TopicId: 'your topic id',
        FullText: 'your full-text config',
        KeyValue: 'your kv config',
    });
    
    // 将结构化的日志数据通过 objToProtoBuffer 方法转为 Protocol Buffer 格式。
    const logBuffer = await tlsOpenapi.TlsService.objToProtoBuffer({
        LogGroups: [
            {
                Logs: [
                    {
                        Time: 'log time',
                        Contents: [{ Key: 'content key', Value: 'key value' }]
                    }
                ],
                Source: 'log source',
                LogTags: [{ Key: 'tag key', Value: 'key value' }],
                FileName: 'file name',
                ContextFlow: 'context flow',
            }
        ]
    });
    
    // PutLogs API 接收 TopicId、压缩类型 (CompressType) 和 Protocol Buffer 格式日志 (LogGroupList) 作为入参,将日志数据上传到 TLS。
    const putLogsResult = await tlsOpenapiService.PutLogs({
        TopicId: 'your topic id',
        CompressType: 'log compress type',
        LogGroupList: logBuffer,
    });
    
    const searchLogsResult = await tlsOpenapiService.SearchLogs({
        StartTime: 'log start time',
        EndTime: 'log end time',
        Limit: 'page size',
        Query: 'query phrases',
        TopicId: 'your topic id',
    });

}