mirror of
https://github.com/scylladb/scylladb.git
synced 2026-06-06 06:53:12 +00:00
6c4e8049a01f42be44a464e8fe0b99f0d5932b49
Prometheus histograms have 3 embedded metrics: count, buckets, and sum. Currently we fill up count and buckets but sum is left at 0. This is particularly bad, since according to the prometheus documentation, the best way to calculate histogram averages is to write: rate(metric_sum[5m]) / rate(metric_count[5m]) One way of keeping track of the sum is adding the value we sampled, every time we sample. However, the interface for the estimated histogram has a method that allows to add a metric while allowing to adjust the count for missing metrics (add_nano()) That makes acumulating a sum inaccurate--as we will have no values for the points that were added. To overcome that, when we call add_nano(), we pretend we are introducing new_count - _count metrics, all with the same value. Long term, doing away with sampling may help us provide more accurate results. After this patch, we are able to correctly calculate latency averages through the data exported in prometheus. Signed-off-by: Glauber Costa <glauber@scylladb.com> Message-Id: <20171122144558.7575-1-glauber@scylladb.com>
Scylla
Quick-start
$ git submodule update --init --recursive
$ sudo ./install-dependencies.sh
$ ./configure.py --mode=release
$ ninja-build -j4 # Assuming 4 system threads.
$ ./build/release/scylla
$ # Rejoice!
Please see HACKING.md for detailed information on building and developing Scylla.
Running Scylla
- Run Scylla
./build/release/scylla
- run Scylla with one CPU and ./tmp as data directory
./build/release/scylla --datadir tmp --commitlog-directory tmp --smp 1
- For more run options:
./build/release/scylla --help
Building Fedora RPM
As a pre-requisite, you need to install Mock on your machine:
# Install mock:
sudo yum install mock
# Add user to the "mock" group:
usermod -a -G mock $USER && newgrp mock
Then, to build an RPM, run:
./dist/redhat/build_rpm.sh
The built RPM is stored in /var/lib/mock/<configuration>/result directory.
For example, on Fedora 21 mock reports the following:
INFO: Done(scylla-server-0.00-1.fc21.src.rpm) Config(default) 20 minutes 7 seconds
INFO: Results and/or logs in: /var/lib/mock/fedora-21-x86_64/result
Building Fedora-based Docker image
Build a Docker image with:
cd dist/docker
docker build -t <image-name> .
Run the image with:
docker run -p $(hostname -i):9042:9042 -i -t <image name>
Contributing to Scylla
Description
Languages
C++
72.1%
Python
26.7%
CMake
0.3%
GAP
0.3%
Shell
0.3%