name: victoriametrics base: core18 adopt-info: build icon: logo.png summary: VictoriaMetrics is fast, cost-effective and scalable time-series database. description: | * VictoriaMetrics can be used as long-term storage for Prometheus or for vmagent. See [these docs](#prometheus-setup) for details. * Supports Prometheus querying API, so it can be used as Prometheus drop-in replacement in Grafana. VictoriaMetrics implements MetricsQL, https://github.com/VictoriaMetrics/VictoriaMetrics/wiki/MetricsQL query language, which is inspired by PromQL. * Supports global query view. Multiple Prometheus instances may write data into VictoriaMetrics. Later this data may be used in a single query. * High performance and good scalability for both inserts and selects. * High data compression, so up to 70x more data points may be crammed into limited storage comparing to TimescaleDB. * Optimized for storage with high-latency IO and low IOPS (HDD and network storage in AWS, Google Cloud, Microsoft Azure, etc). * A single-node VictoriaMetrics may substitute moderately sized clusters built with competing solutions such as Thanos, M3DB, Cortex, InfluxDB or TimescaleDB. * Easy operation: * VictoriaMetrics consists of a single without external dependencies. * All the configuration is done via explicit command-line flags with reasonable defaults. * All the data is stored in a single directory pointed by `-storageDataPath` flag. * Easy and fast backups from to S3 or GCS with [vmbackup] / [vmrestore]. * Storage is protected from corruption on unclean shutdown (i.e. OOM, hardware reset or `kill -9`) thanks to the storage architecture. * Supports metrics' scraping, ingestion and backfilling via the following protocols: * [Metrics from Prometheus exporters] such as node_exporter. * Prometheus remote write API( * InfluxDB line protocol over HTTP, TCP and UDP. * Graphite plaintext protocol if `-graphiteListenAddr` is set. * OpenTSDB put message, if `-opentsdbListenAddr` is set. * HTTP OpenTSDB /api/put requests, if `-opentsdbHTTPListenAddr` is set. * JSON line format. * Native binary format. * Prometheus exposition format. * Arbitrary CSV data. * Supports metrics' relabeling. See [these docs](#relabeling) for details. * Ideally works with big amounts of time series data from Kubernetes, IoT sensors, connected cars, industrial telemetry, financial data and various Enterprise workloads. * Has open source cluster version (https://github.com/VictoriaMetrics/VictoriaMetrics/tree/cluster). ** Configuration management** * Prometheus scrape config can be edited with your favorite editor, its located at `vi /var/snap/victoriametrics/current/etc/victoriametrics-scrape-config.yaml` after changes, you can trigger config reread with `curl localhost:8248/-/reload`. * Configuration tuning is possible with editing extra_flags: `echo 'FLAGS="-selfScrapeInterval=10s -search.logSlowQueryDuration=20s"' > /var/snap/victoriametrics/current/extra_flags && snap restart victoriametrics` * Data folder located at `/var/snap/victoriametrics/current/var/lib/victoriametrics/`. grade: stable # must be 'stable' to release into candidate/stable channels confinement: strict # use 'strict' once you have the right plugs and slots parts: build: plugin: go go-channel: 1.17/stable go-importpath: github.com/VictoriaMetrics/VictoriaMetrics source: . source-type: local build-packages: [build-essential, make] override-build: | make app-local APP_NAME=victoria-metrics mkdir -p $SNAPCRAFT_PART_INSTALL/bin cp -p $SNAPCRAFT_PART_BUILD/bin/victoria-metrics $SNAPCRAFT_PART_INSTALL/bin/ cp -p $SNAPCRAFT_PART_SRC/snap/local/victoriametrics-wrapper $SNAPCRAFT_PART_INSTALL/bin/ override-pull: | snapcraftctl set-version "$PKG_TAG" snapcraftctl pull apps: victoriametrics: command: bin/victoriametrics-wrapper daemon: simple restart-condition: always restart-delay: 10s plugs: [network,network-bind] plugs: network: network-bind: layout: /var/lib/victoriametrics: bind: $SNAP_DATA/var/lib/victoriametrics /etc/victoriametrics-scrape-config.yaml: bind-file: $SNAP_DATA/etc/victoriametrics-scrape-config.yaml architectures: - build-on: ['arm64', 'amd64'] run-on: ['arm64','amd64']