固定大小循环冗余数据库
项目描述
Whisper
概述
Whisper 是 Graphite 项目中的三个组件之一
- Graphite-Web,一个基于 Django 的 Web 应用程序,用于渲染图表和仪表板
- Carbon 指标处理守护进程
- Whisper 时间序列数据库库
Whisper 是一个固定大小的数据库,在设计目的上类似于 RRD(循环缓冲数据库)。它提供了对时间上的数值数据的快速、可靠的存储。Whisper 允许最近数据具有更高的分辨率(每点的秒数),并随着对历史数据长期保留的需求而降低分辨率。
安装、配置和使用
请参阅 readthedocs 中的说明。
Whisper 脚本
rrd2whisper.py
将 rrd 文件转换为 whisper (.wsp) 文件。
Usage: rrd2whisper.py rrd_path
Options:
-h, --help show this help message and exit
--xFilesFactor=XFILESFACTOR
The xFilesFactor to use in the output file. Defaults
to the input RRD's xFilesFactor
--aggregationMethod=AGGREGATIONMETHOD
The consolidation function to fetch from on input and
aggregationMethod to set on output. One of: average,
last, max, min, avg_zero, absmax, absmin
--destinationPath=DESTINATIONPATH
Path to place created whisper file. Defaults to the
RRD file's source path.
whisper-create.py
创建一个新的 whisper 数据库文件。
Usage: whisper-create.py path timePerPoint:timeToStore [timePerPoint:timeToStore]*
whisper-create.py --estimate timePerPoint:timeToStore [timePerPoint:timeToStore]*
timePerPoint and timeToStore specify lengths of time, for example:
60:1440 60 seconds per datapoint, 1440 datapoints = 1 day of retention
15m:8 15 minutes per datapoint, 8 datapoints = 2 hours of retention
1h:7d 1 hour per datapoint, 7 days of retention
12h:2y 12 hours per datapoint, 2 years of retention
Options:
-h, --help show this help message and exit
--xFilesFactor=XFILESFACTOR
--aggregationMethod=AGGREGATIONMETHOD
Function to use when aggregating values (average, sum,
last, max, min, avg_zero, absmax, absmin)
--overwrite
--estimate Don't create a whisper file, estimate storage requirements based on archive definitions
whisper-dump.py
将整个 whisper 文件内容输出到 stdout。
Usage: whisper-dump.py path
Options:
-h, --help show this help message and exit
--pretty Show human-readable timestamps instead of unix times
-t TIME_FORMAT, --time-format=TIME_FORMAT
Time format to use with --pretty; see time.strftime()
-r, --raw Dump value only in the same format for whisper-update
(UTC timestamps)
whisper-fetch.py
从 whisper 文件中检索所有存储的指标到 stdout。
Usage: whisper-fetch.py [options] path
Options:
-h, --help show this help message and exit
--from=_FROM Unix epoch time of the beginning of your requested interval
(default: 24 hours ago)
--until=UNTIL Unix epoch time of the end of your requested interval
(default: now)
--json Output results in JSON form
--pretty Show human-readable timestamps instead of unix times
-t TIME_FORMAT, --time-format=TIME_FORMAT
Time format to use with --pretty; see time.strftime()
--drop=DROP Specify 'nulls' to drop all null values. Specify 'zeroes' to
drop all zero values. Specify 'empty' to drop both null and
zero values.
whisper-info.py
将 whisper 文件的元数据输出到 stdout。
Usage: whisper-info.py [options] path [field]
Options:
-h, --help show this help message and exit
--json Output results in JSON form
whisper-merge.py
将两个现有的 whisper 文件合并在一起。
Usage: whisper-merge.py [options] from_path to_path
Options:
-h, --help show this help message and exit
whisper-fill.py
从 src 复制数据到 dst,如果缺少数据。与 whisper-merge 不同,不要覆盖目标文件中已存在的数据,而是仅添加缺少的数据(例如,在目标文件中的空隙处)。由于没有值被覆盖,没有数据或精度丢失。与 whisper-merge 不同,尝试使用最高精度的存档提供数据,而不是具有最大保留期的存档。
Usage: whisper-fill.py [options] src_path dst_path
Options:
-h, --help show this help message and exit
whisper-resize.py
更改现有 whisper 文件的保留率。
Usage: whisper-resize.py path timePerPoint:timeToStore [timePerPoint:timeToStore]*
timePerPoint and timeToStore specify lengths of time, for example:
60:1440 60 seconds per datapoint, 1440 datapoints = 1 day of retention
15m:8 15 minutes per datapoint, 8 datapoints = 2 hours of retention
1h:7d 1 hour per datapoint, 7 days of retention
12h:2y 12 hours per datapoint, 2 years of retention
Options:
-h, --help show this help message and exit
--xFilesFactor=XFILESFACTOR
Change the xFilesFactor
--aggregationMethod=AGGREGATIONMETHOD
Change the aggregation function (average, sum, last,
max, min, avg_zero, absmax, absmin)
--force Perform a destructive change
--newfile=NEWFILE Create a new database file without removing the
existing one
--nobackup Delete the .bak file after successful execution
--aggregate Try to aggregate the values to fit the new archive
better. Note that this will make things slower and use
more memory.
whisper-set-aggregation-method.py
更改现有 whisper 文件的聚合方法。
Usage: whisper-set-aggregation-method.py path <average|sum|last|max|min|avg_zero|absmax|absmin>
Options:
-h, --help show this help message and exit
whisper-update.py
使用一个或多个值更新 whisper 文件,必须提供带有值的时间戳。
Usage: whisper-update.py [options] path timestamp:value [timestamp:value]*
Options:
-h, --help show this help message and exit
whisper-diff.py
检查 whisper 文件之间的差异。在合并之前进行健全性检查。
Usage: whisper-diff.py [options] path_a path_b
Options:
-h, --help show this help message and exit
--summary show summary of differences
--ignore-empty skip comparison if either value is undefined
--columns print output in simple columns
--no-headers do not print column headers
--until=UNTIL Unix epoch time of the end of your requested interval
(default: now)
--json Output results in JSON form
许可协议
Whisper 根据 Apache 许可协议的第 2.0 版本许可。有关详细信息,请参阅 LICENSE 文件。