160
英雄联盟
数据模型__公共资源说明_API-Reference_日志服务-阿里云
为方便理解整个Log Service服务并顺利使用,这里首先介绍其中的几个基本概念。
地域(Region)
地域为阿里云的服务节点。用户通过在不同的阿里云Region部署服务,让自己的服务距离客户更近,获得更低的访问延时及更好的用户体验。目前阿里云在全国各地拥有多个Region。
项目(Project)
项目为Log Service中的基本管理单元,用于资源隔离和控制。用户可以通过项目来管理某一个应用的所有日志及相关的日志源。
日志库(Logstore)
日志库为Log Service中日志数据的收集、存储和消费单元。每个日志库隶属于一个项目,每个项目可以创建多个日志库。用户可以根据实际需求为某一个项目生成多个日志库,其中常见的做法是为一个应用中的每类日志创建一个独立的日志库。例如,假如用户有一个“big-game”游戏应用,服务器上有三种日志:操作日志(operation_log),应用程序日志(application_log)以及访问日志(access_log),用户可以首先创建名为“big-game”的项目,然后在该项目下面为这三种日志创建三个日志库,分别用于它们的收集、存储和消费。
日志(Log)
日志为Log Service中处理的最小数据单元。Log Service采用半结构数据模式定义一条日志,具体数据模型如下:
- 主题(Topic):用户自定义字段,用以标记一批日志(例如:访问日志根据不同的站点进行标记)。默认该字段为空字符串(空字符串也为一个有效的主题)。
- 时间(Time):日志中保留字段,用以表示日志产生的时间(精度为秒,从1970-1-1 00:00:00 UTC计算起的秒数),一般由日志中的时间直接生-。
- 内容(Content):用以记录日志的具体内容。内容部分由一个或多个内容项组成,每一个内容项由Key、Value对组成。
- 来源(Source):日志的来源地,例如产生该日志机器的IP地址。默认该字段为空。
与此同时,Log Service对日志各字段的取值有不同要求,具体如下表描述:
数据域 | 要求 |
---|---|
time | 整型,Unix标准时间格式,最小单位为秒 |
topic | 任意不超过128字节的UTF-8编码字符串 |
source | 任意不超过128字节的UTF-8编码字符串 |
content | 一个或多个Key-Value对。其中Key为仅包含字母、下划线、数字,不以数字开头,不超过128字节的UTF-8编码字符串。Value为不超过1024*1024字节的任意UTF-8编码字符串 |
上表content中的key不可以使用如下关键字:
__time__
,__source__
,__topic__
,__partition_time__
,_extract_others_
,__extract_others__
日志主题(Topic)
一个日志库内的日志可以通过日志主题(Topic)来划分。用户可以在写入时指定日志主题。例如,一个平台用户可以使用用户编号作为日志主题写入日志。如果不需要划分一个日志库内日志,让所有日志使用相同的日志主题即可。
注意:空字符串是一个有效的日志主题(Topic),默认的日志主题都是空字符串。
下图描述了日志库、日志主题和日志之间的关系:
实际使用场景中,日志的格式多样。为了帮助理解,以下以一条nginx原始访问日志如何映射到Log Service日志数据模型为例说明。假设用户nginx服务器的IP地址为10.249.201.117
,下面为其上的一条原始日志:
10.1.168.193 - - [01/Mar/2012:16:12:07 +0800] "GET /Send?AccessKeyId=8225105404 HTTP/1.1" 200 5 "-" "Mozilla/5.0 (X11; Linux i686 on x86_64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2"
把该条原始日志映射到Log Service日志数据模型,如下:
数据域 | 内容 | 说明 |
---|---|---|
topic | "" | 沿用默认值(空字符串) |
time | 1330589527 | 日志产生的精确时间(精确到秒),从原始日志中的时间戳转换而来。 |
source | "10.249.201.117" | 使用服务器IP地址作为日志源 |
content | Key-Value对 | 日志具体内容 |
用户可以自己决定如何提取日志原始内容并组合成Key-Value对,例如下表:
key | value |
---|---|
ip | "10.1.168.193" |
method | "GET" |
status | "200" |
length | "5" |
ref_url | "-" |
browser | "Mozilla/5.0 (X11; Linux i686 on x86_64; rv:10.0.2) Gecko/20100101 Firef |
Logs
由多条日志产生的集合。
LogGroup
一组日志的集合。
LogGroupList
一组LogGroup集合,用于结果返回。
编码方式
系统目前支持以下内容编码方式(将来可扩展),Restful API层通过Content-Type表示。
含义 | Content-Type | |
---|---|---|
ProtoBuf | ProtoBuf对数据模型进行编码 | application/x-protobuf |
以下PB定义了数据模型中的对象:
message Log
{
required uint32 Time = 1;// UNIX Time Format
message Content
{
required string Key = 1;
required string Value = 2;
}
repeated Content Contents= 2;
}
message LogGroup
{
repeated Log Logs= 1;
optional string Reserved = 2; // reserved fields
optional string Topic = 3;
optional string Source = 4;
}
message LogGroupList
{
repeated LogGroup logGroupList = 1;
}
注意:
- 由于PB对KeyValue对不要求唯一性,因此需要避免出现该情况,否则行为为未定义。
最后更新:2016-11-23 16:04:03
上一篇:
鉴权规则__RAM子用户访问_API-Reference_日志服务-阿里云
下一篇:
数据编码方式__公共资源说明_API-Reference_日志服务-阿里云
查看导入列表__数据迁移_API 参考_云数据库 RDS 版-阿里云
软件市场条件__服务商入驻_服务商_云市场-阿里云
为什么返券无法使用?___储值卡_代金券及推荐码_财务-阿里云
上传文档后忘记保存ArchiveID如何处理__数据操作常见问题_产品使用问题_归档存储-阿里云
CDN的源站服务器中网站日志获取客户端真实IP__运维技术分享_技术运维问题_CDN-阿里云
导入本地镜像__镜像_用户指南_云服务器 ECS-阿里云
SSH 登录时出现如下错误:Disconnected:No supported authentication methods available__远程登录 (SSH)_Linux操作运维问题_云服务器 ECS-阿里云
发送定时消息__Java SDK_TCP 接入(专业)_消息队列 MQ-阿里云
请求状态__常用指标_使用手册_性能测试-阿里云
查询域名下录制配置列表__直播流操作接口_API 手册_CDN-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云