Software:VictoriaMetrics
VictoriaMetrics logo | |
Original author(s) | Aliaksandr Valialkin |
---|---|
Developer(s) | VictoriaMetrics Inc. |
Initial release | Closed Source Release: September, 2018 / 1st Open Source Release: May, 2019 |
Stable release | v1.99
/ 01 March 2024 |
Repository | https://github.com/VictoriaMetrics/VictoriaMetrics |
Written in | Go |
Operating system | Linux, Windows, MacOS, FreeBSD, OpenBSD |
Available in | English |
Type | Time Series Database / Monitoring Solution |
License | Apache 2.0 |
Website | https://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:
- vminsert: for processing write requests, data sharding, routing and replication
- vmselect: for processing read requests, deduplication, caching
- vmstorage: for storing and processing data on disk
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
- Kubernetes and cloud-native monitoring
- APM (Application Performance Monitoring)
- IoT sensors, connected cars, industrial telemetry
- Financial markets data
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
- ↑ Speed, Richard (11 Dec 2023). "VictoriaMetrics takes organic growth over investor pressure". https://www.theregister.com/2023/12/11/victoriametrics_interview/.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ OpenTelemetry, Authors. "Vendors who natively support OpenTelemetry". OpenTelemetry Authors. https://opentelemetry.io/ecosystem/vendors/.
- ↑ 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.
- ↑ Bridgwater, Adrian (25 January 2023). "Is it time for time-series databases?". https://www.siliconrepublic.com/start-ups/victoriametrics-data-monitoring-satellites.
Original source: https://en.wikipedia.org/wiki/VictoriaMetrics.
Read more |