Software:VictoriaMetrics

From HandWiki
VictoriaMetrics
VictoriaMetrics logo.svg
Original author(s)Aliaksandr Valialkin
Developer(s)VictoriaMetrics Inc.
Initial releaseClosed Source Release: September, 2018 / 1st Open Source Release: May, 2019
Stable release
v1.99 / 01 March 2024
Repositoryhttps://github.com/VictoriaMetrics/VictoriaMetrics
Written inGo
Operating systemLinux, Windows, MacOS, FreeBSD, OpenBSD
Available inEnglish
TypeTime Series Database / Monitoring Solution
LicenseApache 2.0
Websitehttps://victoriametrics.com

VictoriaMetrics is a free and open source time series database (TSDB) and monitoring solution [1][2][3]. It is designed to collect, store and process real-time metrics. It supports the Prometheus pull model and various push protocols (Graphite, InfluxDB, OpenTSDB) for data ingestion. For reading the data and evaluating alerting rules VictoriaMetrics supports the MetricsQL and Graphite query languages. The project is written in Go and licensed under the Apache 2 License, with its source code available on GitHub.

History

VictoriaMetrics was created by Aliaksandr Valialkin in response to scalability issues with the Prometheus monitoring solution used at his previous place of work.[4] Inspired by the performance and architecture of ClickHouse, a free software analytical database, Aliaksandr decided to implement a storage for efficient processing of time series data. He started working on a project he later named VictoriaMetrics, after his wife.

The initial, proprietary version of VictoriaMetrics was released in September, 2018.

Later, in May 2019, the open source version of VictoriaMetrics was released.

Architecture

VictoriaMetrics is distributed as a single-node or cluster version.

  • Single-node version: a single binary executable capable of scraping metrics, accepting write requests or executing reading queries.
  • Cluster version: extended version of a single node split into three components:
Additional Components

There are additional components in the VictoriaMetrics product ecosystem for various purposes:

  • vmagent: a lightweight application for metrics collection, transformation and forwarding to the storage. Acts as a proxy between clients and VictoriaMetrics
  • vmalert: an application for evaluating alerting and recording rules
  • vmbackup/vmrestore: a set of tools for backup and recovery
  • vmauth: an authentication proxy used for extra protection and routing
  • vmctl: an utility for migrating from other systems such as Prometheus, InfluxDB or OpenTSDB
  • vmanomaly: an anomaly detection service

Limitations

  • No data update support
  • Limited data deletion support
  • Supports only numeric values as time series data point value
  • Does not accept data with timestamps set in the future

Integrations

VictoriaMetrics supports data ingestion via the following protocols:

  • Prometheus remote write protocol
  • Prometheus exposition and OpenMetrics protocol
  • InfluxDB line protocol
  • OpenTSDB Put protocol
  • Graphite plaintext protocol
  • OpenTelemetry[5][6]
  • DataDog v2 data ingestion protocol
  • NewRelic agent data ingestion

Use Cases

Usage

  • VictoriaMetrics is used by CERN for real-time monitoring of CMS[7]
  • Grammarly uses VictoriaMetrics for internal monitoring of the infrastructure
  • Percona Monitoring and Management (PMM) solution uses VictoriaMetrics
  • Open Cosmos has integrated VictoriaMetrics into its mission-critical satellite control and data distribution platform[8]
  • Other organizations using VictoriaMetrics include Semrush, Ably, Roblox, Cloudflare, Criteo and more.


References

  1. Speed, Richard (11 Dec 2023). "VictoriaMetrics takes organic growth over investor pressure". https://www.theregister.com/2023/12/11/victoriametrics_interview/. 
  2. Hausenblas, Michael (26 December 2023). Cloud Observability in Action. Manning. p. 106. ISBN 978-1633439597. https://www.simonandschuster.com/books/Cloud-Observability-in-Action/Michael-Hausenblas/In-Action/9781633439597. 
  3. Chapman, Rob; Holmes, Peter (12 January 2024). Observability with Grafana: Monitor, control, and visualize your Kubernetes and cloud platforms using the LGTM stack. Packt Publishing. p. 24. ISBN 9781803248004. https://www.packtpub.com/en-lv/product/observability-with-grafana-9781803248004. 
  4. Tolmashov, Oleg (2023-11-15). "Unleashing VM histograms for Ruby: Migrating from Prometheus to VictoriaMetrics with vm-client" (in en). https://hackernoon.com/unleashing-vm-histograms-for-ruby-migrating-from-prometheus-to-victoriametrics-with-vm-client. 
  5. Behar, Vincent. "Adopting OpenTelemetry and its collector". https://archive.fosdem.org/2022/schedule/event/adapting_otel/attachments/slides/4975/export/events/attachments/adapting_otel/slides/4975/adopting_opentelemetry.pdf. 
  6. OpenTelemetry, Authors. "Vendors who natively support OpenTelemetry". OpenTelemetry Authors. https://opentelemetry.io/ecosystem/vendors/. 
  7. Kuznetsov, Valentin. "CMS Monitoring R&D: Real time monitoring and Alerts". Cornell University / Indico, CERN: 26. https://indico.cern.ch/event/877333/contributions/3696707/attachments/1972189/3281133/CMS_mon_RD_for_opInt.pdf. Retrieved 2022-08-30. 
  8. Bridgwater, Adrian (25 January 2023). "Is it time for time-series databases?". https://www.siliconrepublic.com/start-ups/victoriametrics-data-monitoring-satellites. 

Category:Software