数据加工主要解决您规整数据的痛点以及帮助您进一步挖掘数据的价值,降低时间与人力成本。合理配置可以节约一定的成本,本文档介绍如何以较优的成本方式使用数据加工功能。
典型配置
成本因素
通过日志服务的计费方式,可以了解到日志服务的成本主要由以下几个因素决定。
每日导入的数据量。
数据存储的时间。
是否建立索引。
根据成本因素,本文通过如下两个案例介绍如何进行成本优化。
优化存储结构
如果您持续采集某应用的日志,每天的写入量为100 GB,存储30天并建立全文索引,那么日志服务的成本大约是562美元/每月。
如果您更关心的是其中某一类POD的日志,例如操作日志与出错日志。假设这类日志的比例是20%,且希望存储30天。对其他的日志只需要存储7天。那么推荐您使用如下加工方案。
构建接入源Logstore,存储3天不建立索引。
构建目标Logstore1,用于存储操作日志与错误日志,存储30天并建立索引。
构建目标logstore2,用于存储一般性日志,存储7天并建立索引。
这种情况下您的成本约为421美元/每月,与加工之前相比大约可以节省25%的成本。
如果您的原始日志存储周期为60天,可以通过数据加工将只关心的20%的日志存储60天,其他日志存储7天即可,这样可以节约12%的成本, 并对关心的日志增加1倍存储时间。
优化存储内容
如果您持续采集某应用的日志,每天的写入量为100 GB,存储30天并建立全文索引,那么日志服务的成本大约是562美元/每月。
如下为采集到的一条原始日志,大小为1021 Bytes。
__source__: 192.0.2.0
__topic__: ddos_access_log
body_bytes_sent: 3866
cc_action: none
cc_blocks:
cc_phase:
content_type: text/x-flv
host: www.example.com
http_cookie: i1=w1;x2=q2
http_referer: http://www.example.com
http_user_agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/192.0.2.1 Safari/537.36
http_x_forwarded_for: 192.0.2.2
https: true
isp_line: BGP
matched_host: www.example.com
method: GET
real_client_ip: 192.0.2.3
remote_addr: 192.0.2.4
remote_port: 48196
request_length: 2946
request_method: GET
request_time_msec: 78920
request_uri: /request/nvwlvvkhw
server_name: www.example.com
status: 502
time: 2019-07-22T17:40:26+08:00
ua_browser: mozilla
ua_browser_family:
ua_browser_type:
ua_browser_version: 9.0
ua_device_type:
ua_os: windows_7
ua_os_family:
upstream_addr: 192.0.2.4:80
upstream_ip: 192.0.2.5
upstream_response_time: 0.858
upstream_status: 200
user_id: st0s2b5
假设您只关心原始日志中的某些字段,则可以通过数据加工将关心的字段存储30天并建立索引,其他冗余字段仅存储3天即可。那么推荐您使用如下加工方案。
构建接入源Logstore,存储3天不建立索引。
构建目标Logstore,用于存储操作日志与错误日志,存储30天并建立索引。
假设每条日志经过加工后大小约为原来的60%,这种情况下您的成本约为393美元/每月,与加工之前相比大约可以节省30%的成本。
原始日志大小1021 Bytes,加工后日志如下所示,大小仅为618 Bytes。
__source__: 192.0.2.0
__topic__: ddos_access_log
body_bytes_sent: 3866
content_type: text/x-flv
host: www.example.com
http_referer: http://www.example.com
ua_browser: mozilla
ua_browser_family:
ua_browser_type:
ua_browser_version: 9.0
ua_device_type:
ua_os: windows_7
http_x_forwarded_for: 192.0.2.2
matched_host: www.example.com
method: GET
real_client_ip: 192.0.2.3
request_length: 2946
request_uri: /request/nvwlvvkhw
status: 502
upstream_addr: 192.0.2.4:80
upstream_ip: 192.0.2.5
upstream_response_time: 0.858
upstream_status: 200
user_id: st0s2b5