版本:7.0.0
描述
通过采样率设置,我们可以配置采样的数据量,如80%,50%等,这样做的目的是避免采集过分多的数据。但是,这样会丢失一些信息,如果恰好我们想查看的数据丢失了,就会导致排查问题难度提升,甚至遗漏问题。
SkyWalking同时提供了数据清理机制,即我们采集的数据会保留多长时间。因为链路追踪这样的需求,大多数情况下只需要查找短时间内的数据,甚至是实时数据,那么我们就不需要长时间的保留采集到的数据。
配置
配置文件路径:path/config/application.yml
本章节仅展示与数据清理机制有关的配置,如下:
core:
selector: ${SW_CORE:default}
default:
# Set a timeout on metrics data. After the timeout has expired, the metrics data will automatically be deleted.
enableDataKeeperExecutor: ${SW_CORE_ENABLE_DATA_KEEPER_EXECUTOR:true} # Turn it off then automatically metrics data delete will be close.
dataKeeperExecutePeriod: ${SW_CORE_DATA_KEEPER_EXECUTE_PERIOD:5} # How often the data keeper executor runs periodically, unit is minute
recordDataTTL: ${SW_CORE_RECORD_DATA_TTL:90} # Unit is minute
minuteMetricsDataTTL: ${SW_CORE_MINUTE_METRIC_DATA_TTL:90} # Unit is minute
hourMetricsDataTTL: ${SW_CORE_HOUR_METRIC_DATA_TTL:36} # Unit is hour
dayMetricsDataTTL: ${SW_CORE_DAY_METRIC_DATA_TTL:45} # Unit is day
monthMetricsDataTTL: ${SW_CORE_MONTH_METRIC_DATA_TTL:18} # Unit is month
enableDataKeeperExecutor
:数据清理机制的开关,默认开启。dataKeeperExecutePeriod
:数据清理定时器间隔时间,默认5,单位分钟。recordDataTTL
:明细记录的有效期,默认90,单位分钟。minuteMetricsDataTTL
:分钟级指标数据有效期,默认90,单位分钟。hourMetricsDataTTL
:小时级指标数据有效期,默认36,单位小时。dayMetricsDataTTL
:天级指标数据有效期,默认45,单位天。monthMetricsDataTTL
:月级指标数据有效期,默认18,单位月。
以上是核心配置里面有效期配置,但是在使用elasticsearch6.x存储采集数据时,是使用存储配置里面的有效期覆盖核心配置的有效期(elasticsearch7没有此配置,直接使用核心配置)。如下:
storage:
selector: ${SW_STORAGE:h2}
elasticsearch:
# Those data TTL settings will override the same settings in core module.
recordDataTTL: ${SW_STORAGE_ES_RECORD_DATA_TTL:7} # Unit is day
otherMetricsDataTTL: ${SW_STORAGE_ES_OTHER_METRIC_DATA_TTL:45} # Unit is day
monthMetricsDataTTL: ${SW_STORAGE_ES_MONTH_METRIC_DATA_TTL:18} # Unit is month
recordDataTTL
:记录明细有效期,默认7,单位天。otherMetricsDataTTL
:其他指标(分钟/小时/天)数据有效期,默认45,单位天。monthMetricsDataTTL
:月级指标数据有效期,默认18,单位月。
小结
在实际使用过程中,我们可以根据自身实际情况,对数据的有效期进行个性化的配置。如:使用elasticsearch6.x
时,我们可以将明细记录有效期设置为1天。