whisper

graphite-projectApache-2.0更新放缓

Graphite 的基于文件的时间序列数据库格式,用固定大小文件存储监控指标,解决指标数据高效读写和长期保留的问题。

Whisper is a file-based time-series database format for Graphite.

1.1.10发布于 2022-05-22 17:56 UTC1,260star320fork同步于 2026-11-07 07:30 UTC

怎么上手

由 README 提炼,执行前请确认
pip install whisper
硬件要求按 README 说明

README 未说明

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

Graphite 的定长时序数据库格式库,用固定大小文件存储数值指标并自动降采样

Graphite 的基于文件的时间序列数据库格式,用固定大小文件存储监控指标,解决指标数据高效读写和长期保留的问题。

核心能力

  • 定长文件存储,类似 RRD 的环形数据库设计
  • 高精度近期数据自动降采样为低精度长期保留
  • 提供 whisper-create 按精度与保留期定义归档
  • 附带 dump/fetch/merge/fill/resize 等运维脚本
  • 支持 rrd2whisper 从 RRD 文件迁移数据

容易踩的坑

README 未给出安装命令,仅指向 readthedocs 文档;whisper-resize 默认会生成 .bak 备份文件,需 --nobackup 才删除;resize 属破坏性操作,需加 --force 才执行

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本1.1.10
  1. 1.1.10最新正式版2022-05-22 · 2022-05-22 17:56 UTC
  2. 1.1.82021-04-18 · 2021-04-18 20:21 UTC
    查看更新说明
  3. 1.1.72020-03-16 · 2020-03-16 15:19 UTC
    查看更新说明
  4. 1.1.62019-10-24 · 2019-10-24 21:19 UTC
    查看更新说明

    Graphite release 1.1.6 Please see Release Notes https://graphite.readthedocs.io/en/latest/releases/1_1_6.html

  5. 1.1.52018-12-23 · 2018-12-23 18:50 UTC
    查看更新说明

    Graphite release 1.1.5 Please see Release Notes https://graphite.readthedocs.io/en/latest/releases/1_1_5.html

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Whisper

    Codacy Badge Build Status FOSSA Status codecov

    Overview

    Whisper is one of three components within the Graphite project:

    1. Graphite-Web, a Django-based web application that renders graphs and dashboards
    2. The Carbon metric processing daemons
    3. The Whisper time-series database library

    Graphite Components

    Whisper is a fixed-size database, similar in design and purpose to RRD (round-robin-database). It provides fast, reliable storage of numeric data over time. Whisper allows for higher resolution (seconds per point) of recent data to degrade into lower resolutions for long-term retention of historical data.

    Installation, Configuration and Usage

    Please refer to the instructions at readthedocs.

    Whisper Scripts

    rrd2whisper.py

    Convert a rrd file into a whisper (.wsp) file.

    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

    Create a new whisper database file.

    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

    Dump the whole whisper file content to 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

    Fetch all the metrics stored in a whisper file to 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

    Dump the metadata about a whisper file to 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

    Join two existing whisper files together.

    Usage: whisper-merge.py [options] from_path to_path
    
    Options:
      -h, --help  show this help message and exit
    

    whisper-fill.py

    Copies data from src in dst, if missing. Unlike whisper-merge, don't overwrite data that's already present in the target file, but instead, only add the missing data (e.g. where the gaps in the target file are). Because no values are overwritten, no data or precision gets lost. Also, unlike whisper-merge, try to take the highest-precision archive to provide the data, instead of the one with the largest retention.

    Usage: whisper-fill.py [options] src_path dst_path
    
    Options:
      -h, --help  show this help message and exit
    

    whisper-resize.py

    Change the retention rates of an existing whisper file.

    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

    Change the aggregation method of an existing whisper file.

    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

    Update a whisper file with 1 or many values, must provide a time stamp with the value.

    Usage: whisper-update.py [options] path timestamp:value [timestamp:value]*
    
    Options:
      -h, --help  show this help message and exit
    

    whisper-diff.py

    Check the differences between whisper files. Use sanity check before merging.

    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
    

    License

    Whisper is licensed under version 2.0 of the Apache License. See the LICENSE file for details.