No description
Find a file
rtm0 334cd92a6c
testing: allow disabling fsync to make tests run faster (#6871)
### Describe Your Changes

fsync() ensures that the data is written to disk. In production this is
needed for data durability. However, during the development, when the
unit tests are run, this level of durability is not needed. Therefore
fsync() can be disabled which will makes test runs two times faster.

The disabling is done by setting the `DISABLE_FSYNC_FOR_TESTING`
environment variable. The valid values for this variable are the same as
the values of the arg of `go doc strconv.ParseBool`:

```
1, t, T, TRUE, true, True, 0, f, F, FALSE, false, False.
```

Any other value means `false`.

The variable is set for all test build targets. Compare running times:

Build Target | DISABLE_FSYNC_FOR_TESTING=0 | DISABLE_FSYNC_FOR_TESTING=1
----------------- | ------------------------------------------------ |
-------------------------------------------------
make test | 1m5s  | 0m22s
make test-race | 3m1s | 1m42s
make test-pure | 1m7s | 0m20s
make test-full | 1m21s | 0m32s
make test-full-386 | 1m42s | 0m36s

When running tests for a given package, fsync can be disabled as
follows:

```shell
DISABLE_FSYNC_FOR_TESTING=1 go test ./lib/storage
```

Disabling fsync() is intended for testing purposes only and the name of
the variables reflects that.

What could also have been done but haven't:

- lib/filestream/filestream.go: `Writer.MustFlush()` also uses f.Sync()
but nothing has been done to it, because the Writer.MustFlush() is not
used anywhere in the VM codebase. A side question: what is the general
policy for the unused code?
- lib/filestream/filestream.go: Writer.Write() calls `adviceDontNeed()`
which calls unix.Fdatasync(). Disabling it could potentially improve
running time, but running tests with this code disabled has shown
otherwise.

### Checklist

The following checks are **mandatory**:

- [ x] My change adheres [VictoriaMetrics contributing
guidelines](https://docs.victoriametrics.com/contributing/).

---------

Signed-off-by: Artem Fetishev <wwctrsrx@gmail.com>
2024-08-30 10:54:46 +02:00
.github Revert "deployment: build image for vmagent streamaggr benchmark (#6515)" 2024-07-16 13:27:06 +02:00
app app/{vmselect,vlselect}: run make vmui-update vmui-logs-update 2024-08-28 13:30:38 +02:00
cspell docs: add spellcheck command (#6562) 2024-07-11 12:39:42 +02:00
dashboards dashboards: add Scrape duration 0.99 quantile panel 2024-07-30 14:57:17 +02:00
deployment deployment: bump VM version to 1.103.0 2024-08-29 15:13:19 +02:00
docs docs/vmalert: mention VM Cloud where it can be helpful to a user (#6888) 2024-08-30 10:39:05 +02:00
lib testing: allow disabling fsync to make tests run faster (#6871) 2024-08-30 10:54:46 +02:00
package simplify release process (#3012) 2022-08-31 02:27:24 +03:00
ports/OpenBSD docs: convert png images to webp in all the docs except of docs/operator/* 2023-11-22 19:21:00 +02:00
vendor lib/promscrape: fixes proxy autorization (#6783) 2024-08-19 22:31:18 +02:00
.dockerignore added packer build for DigitalOcean Droplets (#1917) 2021-12-21 12:09:14 +02:00
.gitignore testing: allow disabling fsync to make tests run faster (#6871) 2024-08-30 10:54:46 +02:00
.golangci.yml .golangci.yml: properly specify functions to exclude for return values check after the upgrade to v1.59.1 at 239a7b6e6f 2024-06-11 16:41:01 +02:00
.wwhrd.yml add MPL-2.0 to approved licenses 2024-08-29 10:35:36 +02:00
CODE_OF_CONDUCT.md A good change for MD files (#2353) 2022-03-22 13:40:55 +02:00
CONTRIBUTING.md Move CONTRIBUTING.md to docs/ 2024-04-20 23:11:22 +02:00
go.mod deployment/docker: update Go builder from Go1.22.5 to Go1.23.0 (#6861) 2024-08-22 23:55:50 +02:00
go.sum lib/promscrape: fixes proxy autorization (#6783) 2024-08-19 22:31:18 +02:00
LICENSE LICENSE: update the current year from 2023 to 2024 2024-01-17 01:48:04 +02:00
logo.png Add logo 2018-11-29 21:47:17 +02:00
Makefile testing: allow disabling fsync to make tests run faster (#6871) 2024-08-30 10:54:46 +02:00
README.md docs: rm mentions of google group as it was deprecated 2024-08-21 14:08:27 +02:00
SECURITY.md add new LTS release v1.102.x 2024-08-02 11:12:20 +02:00
VM_logo.zip removed DS_Store files from VM_logo.zip (#1233) 2021-04-20 11:41:07 +03:00

VictoriaMetrics

Latest Release Docker Pulls Slack GitHub license Go Report Build Status codecov

VictoriaMetrics logo

VictoriaMetrics is a fast, cost-saving, and scalable solution for monitoring and managing time series data. It delivers high performance and reliability, making it an ideal choice for businesses of all sizes.

Here are some resources and information about VictoriaMetrics:

Yes, we open-source both the single-node VictoriaMetrics and the cluster version.

Prominent features

VictoriaMetrics is optimized for timeseries data, even when old time series are constantly replaced by new ones at a high rate, it offers a lot of features:

Enterprise version

In addition, the Enterprise version includes extra features:

  • Anomaly detection: Automation and simplification of your alerting rules, covering complex anomalies found in metrics data.
  • Backup automation: Automates regular backup procedures.
  • Multiple retentions: Reducing storage costs by specifying different retentions for different datasets.
  • Downsampling: Reducing storage costs and increasing performance for queries over historical data.
  • Stable releases with long-term support lines (LTS).
  • Comprehensive support: First-class consulting, feature requests and technical support provided by the core VictoriaMetrics dev team.
  • Many other features, which you can read about on the Enterprise page.

Contact us if you need enterprise support for VictoriaMetrics. Or you can request a free trial license here, downloaded Enterprise binaries are available at Github Releases.

We strictly apply security measures in everything we do. VictoriaMetrics has achieved security certifications for Database Software Development and Software-Based Monitoring Services. See Security page for more details.

Benchmarks

Some good benchmarks VictoriaMetrics achieved:

Community and contributions

Feel free asking any questions regarding VictoriaMetrics:

If you like VictoriaMetrics and want to contribute, then please read these docs.

Zip contains three folders with different image orientations (main color and inverted version).

Files included in each folder:

  • 2 JPEG Preview files
  • 2 PNG Preview files with transparent background
  • 2 EPS Adobe Illustrator EPS10 files

Logo Usage Guidelines

Font used

  • Lato Black
  • Lato Regular

Color Palette

We kindly ask

  • Please don't use any other font instead of suggested.
  • To keep enough clear space around the logo.
  • Do not change spacing, alignment, or relative locations of the design elements.
  • Do not change the proportions for any of the design elements or the design itself. You may resize as needed but must retain all proportions.