https://github.com/graphite-project/whisper

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

https://github.com/graphite-project/whisper

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 84 committers (1.2%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.6%) to scientific vocabulary

Keywords

graphite graphite-components library metrics python time-series whisper

Keywords from Contributors

graphite-web carbon packaging pypi pillow tensor pip closember distributed autograd
Last synced: 6 months ago · JSON representation

Repository

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

Basic Info
Statistics
  • Stars: 1,257
  • Watchers: 76
  • Forks: 325
  • Open Issues: 5
  • Releases: 18
Topics
graphite graphite-components library metrics python time-series whisper
Created almost 14 years ago · Last pushed 8 months ago
Metadata Files
Readme License

README.md

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 TIMEFORMAT, --time-format=TIMEFORMAT 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 TIMEFORMAT, --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] frompath topath

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] srcpath dstpath

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

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] patha pathb

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.

Owner

  • Name: Graphite Project
  • Login: graphite-project
  • Kind: organization

GitHub Events

Total
  • Issues event: 1
  • Watch event: 13
  • Delete event: 1
  • Issue comment event: 9
  • Push event: 4
  • Pull request event: 13
  • Fork event: 3
  • Create event: 1
Last Year
  • Issues event: 1
  • Watch event: 13
  • Delete event: 1
  • Issue comment event: 9
  • Push event: 4
  • Pull request event: 13
  • Fork event: 3
  • Create event: 1

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 384
  • Total Committers: 84
  • Avg Commits per committer: 4.571
  • Development Distribution Score (DDS): 0.849
Past Year
  • Commits: 10
  • Committers: 3
  • Avg Commits per committer: 3.333
  • Development Distribution Score (DDS): 0.4
Top Committers
Name Email Commits
Piotr Popieluch p****2@g****m 58
Jeff Schroeder j****r@c****g 57
Michael Leinartas m****s@g****m 28
Denis Zhdanov d****v@g****m 23
Chris Davis c****d@g****m 22
Bruno Renié b****e@g****m 17
Frederic Brin d****x@m****m 10
Nate Tade n****e@r****m 9
coderfi c****i@g****m 8
Dan Cech d****h@g****m 8
Chris Day c****y@t****m 6
Sidnei da Silva s****a@c****m 6
dependabot[bot] 4****] 6
Jean Raby j****n@r****h 5
Slaven Rezic s****c@i****e 5
Valentin Haenel v****l@g****e 5
Aman Gupta a****n@t****t 5
Roman Koblov p****8@m****m 4
John Seekins j****s@o****m 4
Dieter Plaetinck d****r@v****m 4
obfuscurity j****n@d****t 4
Dan Rowe d****3@g****m 3
TheNoButton m****s@g****m 3
William Dauchy w****y@c****m 3
Denis Zhdanov d****v@e****m 3
Demis Gallisto d****o@g****m 3
benm b****2@g****m 3
cclauss c****s@b****h 3
Dave Ertel d****l@k****m 3
Jordan Sissel j****s@s****m 2
and 54 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 66
  • Total pull requests: 57
  • Average time to close issues: almost 2 years
  • Average time to close pull requests: 4 months
  • Total issue authors: 56
  • Total pull request authors: 21
  • Average comments per issue: 3.86
  • Average comments per pull request: 1.42
  • Merged pull requests: 44
  • Bot issues: 0
  • Bot pull requests: 7
Past Year
  • Issues: 0
  • Pull requests: 13
  • Average time to close issues: N/A
  • Average time to close pull requests: about 2 months
  • Issue authors: 0
  • Pull request authors: 6
  • Average comments per issue: 0
  • Average comments per pull request: 0.54
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 3
Top Authors
Issue Authors
  • cdeil (3)
  • mleinart (3)
  • panditb (3)
  • toni-moreno (2)
  • wang1219 (2)
  • deniszh (2)
  • FliesLikeABrick (2)
  • henry-spanka (1)
  • pidou46 (1)
  • Sandy4321 (1)
  • JasperWallace (1)
  • TerenceYi (1)
  • jliu149 (1)
  • jehutywong (1)
  • mkaluza (1)
Pull Request Authors
  • deniszh (19)
  • dependabot[bot] (12)
  • piotr1212 (7)
  • a-detiste (2)
  • n0coast (2)
  • tmzullinger (2)
  • naclsn (2)
  • niol (2)
  • cdeil (2)
  • Glandos (1)
  • Xu-Wentao (1)
  • ygrab (1)
  • FliesLikeABrick (1)
  • YevhenLukomskyi (1)
  • rowlap (1)
Top Labels
Issue Labels
stale (44) question (22) enhancement (15) bug (12) pinned (1) discussion (1) needs backport to 1.1.x (1)
Pull Request Labels
dependencies (12) github_actions (10) backport (6) needs backport to 1.1.x (6) stale (5) enhancement (2) question (2) python (2) pinned (1) bug (1) tests (1)

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 5
anaconda.org: whisper

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.

  • Versions: 5
  • Dependent Packages: 0
  • Dependent Repositories: 1
Rankings
Forks count: 18.7%
Stargazers count: 21.8%
Average: 35.7%
Dependent packages count: 51.1%
Dependent repos count: 51.3%
Last synced: 6 months ago

Dependencies

requirements.txt pypi
  • fadvise ==4.0.0
setup.py pypi
  • six *
.github/workflows/codeql-analysis.yml actions
  • actions/checkout v3 composite
  • github/codeql-action/analyze v2 composite
  • github/codeql-action/autobuild v2 composite
  • github/codeql-action/init v2 composite
.github/workflows/tests.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • codecov/codecov-action v3 composite