From 0a42c8fd8b34e074465d02559e621ecd296f6d6d Mon Sep 17 00:00:00 2001 From: Andrii Chubatiuk Date: Mon, 1 Jul 2024 16:51:32 +0300 Subject: [PATCH] deployment: remove snap packages support (#6543) ### Describe Your Changes Removed snap packages support as it requires time for maintenance and it's not popular at all ### Checklist The following checks are **mandatory**: - [ ] My change adheres [VictoriaMetrics contributing guidelines](https://docs.victoriametrics.com/contributing/). --------- Signed-off-by: hagen1778 Co-authored-by: hagen1778 --- Makefile | 1 - README.md | 25 +------- docs/CHANGELOG.md | 2 + docs/Quick-Start.md | 1 - docs/README.md | 25 +------- docs/Release-Guide.md | 14 ----- docs/Single-server-VictoriaMetrics.md | 25 +------- snap/local/Dockerfile | 9 --- snap/local/Makefile | 31 ---------- snap/local/README.md | 50 ---------------- snap/local/victoriametrics-wrapper | 7 --- snap/snapcraft.yaml | 86 --------------------------- 12 files changed, 11 insertions(+), 265 deletions(-) delete mode 100644 snap/local/Dockerfile delete mode 100644 snap/local/Makefile delete mode 100644 snap/local/README.md delete mode 100755 snap/local/victoriametrics-wrapper delete mode 100644 snap/snapcraft.yaml diff --git a/Makefile b/Makefile index db177a3a0..5bacae5f0 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,6 @@ include app/*/Makefile include docs/Makefile include deployment/*/Makefile include dashboards/Makefile -include snap/local/Makefile include package/release/Makefile all: \ diff --git a/README.md b/README.md index bbc59b61b..853b21a94 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,7 @@ VictoriaMetrics is a fast, cost-effective and scalable monitoring solution and t See [case studies for VictoriaMetrics](https://docs.victoriametrics.com/casestudies/). VictoriaMetrics is available in [binary releases](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/latest), -[Docker images](https://hub.docker.com/r/victoriametrics/victoria-metrics/), [Snap packages](https://snapcraft.io/victoriametrics) -and [source code](https://github.com/VictoriaMetrics/VictoriaMetrics). +[Docker images](https://hub.docker.com/r/victoriametrics/victoria-metrics/) and [source code](https://github.com/VictoriaMetrics/VictoriaMetrics). Documentation for the cluster version of VictoriaMetrics is available [here](https://docs.victoriametrics.com/cluster-victoriametrics/). @@ -139,7 +138,6 @@ VictoriaMetrics can also be installed via these installation methods: * [Ansible role for installing cluster VictoriaMetrics (by VictoriaMetrics)](https://github.com/VictoriaMetrics/ansible-playbooks). * [Ansible role for installing cluster VictoriaMetrics (by community)](https://github.com/Slapper/ansible-victoriametrics-cluster-role). * [Ansible role for installing single-node VictoriaMetrics (by community)](https://github.com/dreamteam-gg/ansible-victoriametrics-role). -* [Snap package for VictoriaMetrics](https://snapcraft.io/victoriametrics). ### How to start VictoriaMetrics @@ -182,24 +180,7 @@ Additionally, all the VictoriaMetrics components allow setting flag values via e ### Configuration with snap package -Snap package for VictoriaMetrics is available [here](https://snapcraft.io/victoriametrics). - -Command-line flags for Snap package can be set with following command: - -```sh -echo 'FLAGS="-selfScrapeInterval=10s -search.logSlowQueryDuration=20s"' > $SNAP_DATA/var/snap/victoriametrics/current/extra_flags -snap restart victoriametrics -``` - -Do not change value for `-storageDataPath` flag, because snap package has limited access to host filesystem. - -Changing scrape configuration is possible with text editor: - -```sh -vi $SNAP_DATA/var/snap/victoriametrics/current/etc/victoriametrics-scrape-config.yaml -``` - -After changes were made, trigger config re-read with the command `curl 127.0.0.1:8428/-/reload`. +Snap packages for VictoriaMetrics are supported by community and are available at [https://snapcraft.io/victoriametrics](https://snapcraft.io/victoriametrics). ### Running as Windows service @@ -1205,7 +1186,7 @@ More details may be found [here](https://github.com/VictoriaMetrics/VictoriaMetr ## Setting up service Read [instructions](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/43) on how to set up VictoriaMetrics -as a service for your OS. A [snap package](https://snapcraft.io/victoriametrics) is available for Ubuntu. +as a service for your OS. ## How to work with snapshots diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 55e420143..37af6f63f 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -29,6 +29,8 @@ See also [LTS releases](https://docs.victoriametrics.com/lts-releases/). ## tip +**Update note 1: support for snap packages was removed due to lack of interest from community. See this [pull request](https://github.com/VictoriaMetrics/VictoriaMetrics/pull/6543) for details. Please read about supported package types [here](https://docs.victoriametrics.com/#install).** + * FEATURE: [vmauth](https://docs.victoriametrics.com/vmauth/): allow overriding `Host` header with a target host before sending to a downstream. See this [issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/6453) * FEATURE: [dashboards](https://grafana.com/orgs/victoriametrics): add [Grafana dashboard](https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/dashboards/vmauth.json) and [alerting rules](https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/deployment/docker/alerts-vmauth.yml) for [vmauth](https://docs.victoriametrics.com/vmauth/) dashboard. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4313) for details. * FEATURE: [vmagent](https://docs.victoriametrics.com/vmagent/): added `yandexcloud_sd` AWS API IMDSv2 support. diff --git a/docs/Quick-Start.md b/docs/Quick-Start.md index f2c64174e..f9ea00dd0 100644 --- a/docs/Quick-Start.md +++ b/docs/Quick-Start.md @@ -25,7 +25,6 @@ Single-server-VictoriaMetrics VictoriaMetrics is available as: * [Managed VictoriaMetrics at AWS](https://aws.amazon.com/marketplace/pp/prodview-4tbfq5icmbmyc) * [Docker images](https://hub.docker.com/r/victoriametrics/victoria-metrics/) -* [Snap packages](https://snapcraft.io/victoriametrics) * [Helm Charts](https://github.com/VictoriaMetrics/helm-charts#list-of-charts) * [Binary releases](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/latest) * [Source code](https://github.com/VictoriaMetrics/VictoriaMetrics). diff --git a/docs/README.md b/docs/README.md index 750465f83..ac8bec4d0 100644 --- a/docs/README.md +++ b/docs/README.md @@ -18,8 +18,7 @@ VictoriaMetrics is a fast, cost-effective and scalable monitoring solution and t See [case studies for VictoriaMetrics](https://docs.victoriametrics.com/casestudies/). VictoriaMetrics is available in [binary releases](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/latest), -[Docker images](https://hub.docker.com/r/victoriametrics/victoria-metrics/), [Snap packages](https://snapcraft.io/victoriametrics) -and [source code](https://github.com/VictoriaMetrics/VictoriaMetrics). +[Docker images](https://hub.docker.com/r/victoriametrics/victoria-metrics/) and [source code](https://github.com/VictoriaMetrics/VictoriaMetrics). Documentation for the cluster version of VictoriaMetrics is available [here](https://docs.victoriametrics.com/cluster-victoriametrics/). @@ -142,7 +141,6 @@ VictoriaMetrics can also be installed via these installation methods: * [Ansible role for installing cluster VictoriaMetrics (by VictoriaMetrics)](https://github.com/VictoriaMetrics/ansible-playbooks). * [Ansible role for installing cluster VictoriaMetrics (by community)](https://github.com/Slapper/ansible-victoriametrics-cluster-role). * [Ansible role for installing single-node VictoriaMetrics (by community)](https://github.com/dreamteam-gg/ansible-victoriametrics-role). -* [Snap package for VictoriaMetrics](https://snapcraft.io/victoriametrics). ### How to start VictoriaMetrics @@ -185,24 +183,7 @@ Additionally, all the VictoriaMetrics components allow setting flag values via e ### Configuration with snap package -Snap package for VictoriaMetrics is available [here](https://snapcraft.io/victoriametrics). - -Command-line flags for Snap package can be set with following command: - -```sh -echo 'FLAGS="-selfScrapeInterval=10s -search.logSlowQueryDuration=20s"' > $SNAP_DATA/var/snap/victoriametrics/current/extra_flags -snap restart victoriametrics -``` - -Do not change value for `-storageDataPath` flag, because snap package has limited access to host filesystem. - -Changing scrape configuration is possible with text editor: - -```sh -vi $SNAP_DATA/var/snap/victoriametrics/current/etc/victoriametrics-scrape-config.yaml -``` - -After changes were made, trigger config re-read with the command `curl 127.0.0.1:8428/-/reload`. +Snap packages for VictoriaMetrics are supported by community and are available at [https://snapcraft.io/victoriametrics](https://snapcraft.io/victoriametrics). ### Running as Windows service @@ -1208,7 +1189,7 @@ More details may be found [here](https://github.com/VictoriaMetrics/VictoriaMetr ## Setting up service Read [instructions](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/43) on how to set up VictoriaMetrics -as a service for your OS. A [snap package](https://snapcraft.io/victoriametrics) is available for Ubuntu. +as a service for your OS. ## How to work with snapshots diff --git a/docs/Release-Guide.md b/docs/Release-Guide.md index 0a4fe5f66..f201a1a27 100644 --- a/docs/Release-Guide.md +++ b/docs/Release-Guide.md @@ -99,20 +99,6 @@ Bumping the limits may significantly improve build speed. 1. Bump VictoriaMetrics version at `deployment/docker/docker-compose.yml` and at `deployment/docker/docker-compose-cluster.yml`. 1. Follow the instructions in [release follow-up](https://github.com/VictoriaMetrics/VictoriaMetrics-enterprise/blob/master/Release-Guide.md). -## Building snap package - - pre-requirements: - -* snapcraft binary, can be installed with commands: - for MacOS `brew install snapcraft` and [install multipass](https://discourse.ubuntu.com/t/installing-multipass-on-macos/8329), - for Ubuntu - `sudo snap install snapcraft --classic` -* exported snapcraft login to `~/.snap/login.json` with `snapcraft export-login login.json && mkdir -p ~/.snap && mv login.json ~/.snap/` -* already created release at github (it operates `git describe` version, so git tag must be annotated). - -1. checkout to the latest git tag for single-node version. -1. execute `make release-snap` - it must build and upload snap package. -1. promote release to current, if needed manually at release page [snapcraft-releases](https://snapcraft.io/victoriametrics/releases) - ### Public Announcement * Publish message in Slack at diff --git a/docs/Single-server-VictoriaMetrics.md b/docs/Single-server-VictoriaMetrics.md index 034486ab2..97b8108a1 100644 --- a/docs/Single-server-VictoriaMetrics.md +++ b/docs/Single-server-VictoriaMetrics.md @@ -26,8 +26,7 @@ VictoriaMetrics is a fast, cost-effective and scalable monitoring solution and t See [case studies for VictoriaMetrics](https://docs.victoriametrics.com/casestudies/). VictoriaMetrics is available in [binary releases](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/latest), -[Docker images](https://hub.docker.com/r/victoriametrics/victoria-metrics/), [Snap packages](https://snapcraft.io/victoriametrics) -and [source code](https://github.com/VictoriaMetrics/VictoriaMetrics). +[Docker images](https://hub.docker.com/r/victoriametrics/victoria-metrics/) and [source code](https://github.com/VictoriaMetrics/VictoriaMetrics). Documentation for the cluster version of VictoriaMetrics is available [here](https://docs.victoriametrics.com/cluster-victoriametrics/). @@ -150,7 +149,6 @@ VictoriaMetrics can also be installed via these installation methods: * [Ansible role for installing cluster VictoriaMetrics (by VictoriaMetrics)](https://github.com/VictoriaMetrics/ansible-playbooks). * [Ansible role for installing cluster VictoriaMetrics (by community)](https://github.com/Slapper/ansible-victoriametrics-cluster-role). * [Ansible role for installing single-node VictoriaMetrics (by community)](https://github.com/dreamteam-gg/ansible-victoriametrics-role). -* [Snap package for VictoriaMetrics](https://snapcraft.io/victoriametrics). ### How to start VictoriaMetrics @@ -193,24 +191,7 @@ Additionally, all the VictoriaMetrics components allow setting flag values via e ### Configuration with snap package -Snap package for VictoriaMetrics is available [here](https://snapcraft.io/victoriametrics). - -Command-line flags for Snap package can be set with following command: - -```sh -echo 'FLAGS="-selfScrapeInterval=10s -search.logSlowQueryDuration=20s"' > $SNAP_DATA/var/snap/victoriametrics/current/extra_flags -snap restart victoriametrics -``` - -Do not change value for `-storageDataPath` flag, because snap package has limited access to host filesystem. - -Changing scrape configuration is possible with text editor: - -```sh -vi $SNAP_DATA/var/snap/victoriametrics/current/etc/victoriametrics-scrape-config.yaml -``` - -After changes were made, trigger config re-read with the command `curl 127.0.0.1:8428/-/reload`. +Snap packages for VictoriaMetrics are supported by community and are available at [https://snapcraft.io/victoriametrics](https://snapcraft.io/victoriametrics). ### Running as Windows service @@ -1216,7 +1197,7 @@ More details may be found [here](https://github.com/VictoriaMetrics/VictoriaMetr ## Setting up service Read [instructions](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/43) on how to set up VictoriaMetrics -as a service for your OS. A [snap package](https://snapcraft.io/victoriametrics) is available for Ubuntu. +as a service for your OS. ## How to work with snapshots diff --git a/snap/local/Dockerfile b/snap/local/Dockerfile deleted file mode 100644 index 8faf32ea9..000000000 --- a/snap/local/Dockerfile +++ /dev/null @@ -1,9 +0,0 @@ -FROM snapcore/snapcraft:stable -ARG GO_VERSION -RUN apt-get update && apt-get install -y git make wget binutils build-essential bzip2 cpp cpp-5 dpkg-dev fakeroot g++ g++-5 gcc gcc-5 - -RUN cd /usr/local &&\ - wget https://dl.google.com/go/go$GO_VERSION.linux-amd64.tar.gz &&\ - tar -zxvf go$GO_VERSION.linux-amd64.tar.gz && rm go$GO_VERSION.linux-amd64.tar.gz -ENV PATH="/usr/local/go/bin:${PATH}" - diff --git a/snap/local/Makefile b/snap/local/Makefile deleted file mode 100644 index fbc2eff2e..000000000 --- a/snap/local/Makefile +++ /dev/null @@ -1,31 +0,0 @@ -GO_VERSION ?= 1.22.1 -SNAP_BUILDER_IMAGE := local/snap-builder:2.0.0-$(shell echo $(GO_VERSION) | tr :/ __) - - -# truncate pkg_tag, snap has limitations for name length -SNAP_TAG := $(shell echo "$(PKG_TAG)" | cut -b1-31 ) - -snap-builder-image: - (docker image ls --format '{{.Repository}}:{{.Tag}}' | grep -q '$(SNAP_BUILDER_IMAGE)$$') \ - || docker build \ - --build-arg GO_VERSION=$(GO_VERSION) \ - --tag $(SNAP_BUILDER_IMAGE) \ - snap/local - -build-snap: snap-builder-image - docker run --rm \ - --mount type=bind,src="$(shell pwd)",dst=/builder \ - -w /builder \ - --env PKG_TAG=$(SNAP_TAG) \ - $(SNAP_BUILDER_IMAGE) \ - bash -c 'snapcraft clean && snapcraft snap -o "bin/victoriametrics_$(SNAP_TAG)_multi.snap"' - -release-snap: snap-builder-image build-snap - docker run --rm \ - --mount type=bind,src=${HOME}/.snap,dst=/root/.snap \ - --mount type=bind,src="$(shell pwd)",dst=/builder \ - -w /builder \ - --env PKG_TAG=$(SNAP_TAG) \ - $(SNAP_BUILDER_IMAGE) \ - bash -c 'snapcraft login --with /root/.snap/login.json && snapcraft upload "bin/victoriametrics_$(SNAP_TAG)_multi.snap" --release beta,edge,candidate,stable' - diff --git a/snap/local/README.md b/snap/local/README.md deleted file mode 100644 index 4862bf381..000000000 --- a/snap/local/README.md +++ /dev/null @@ -1,50 +0,0 @@ -### Snap integration - - - -snap link: - -#### develop - -Install snapcraft or docker - -build snap package with command - - ```console -make build-snap -``` - -It produces snap package with current git version - `victoriametrics_v1.46.0+git1.1bebd021a-dirty_all.snap`. -You can install it with command: `snap install victoriametrics_v1.46.0+git1.1bebd021a-dirty_all.snap --dangerous` - -#### usage - -installation and configuration: - -```console -# install -snap install victoriametrics -# logs -snap logs victoriametrics -# restart - snap restart victoriametrics -``` - -Configuration management: - - Prometheus scrape config can be edited with your favorite editor, its located at - -```console -vi /var/snap/victoriametrics/current/etc/victoriametrics-scrape-config.yaml -``` - -after changes, you can trigger config reread with `curl localhost:8428/-/reload`. - -Configuration tuning is possible with editing extra_flags: - -```console -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/` diff --git a/snap/local/victoriametrics-wrapper b/snap/local/victoriametrics-wrapper deleted file mode 100755 index afb3a4994..000000000 --- a/snap/local/victoriametrics-wrapper +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -test -e $SNAP_DATA/extra_flags || echo 'FLAGS=""' > $SNAP_DATA/extra_flags - -# get args -. $SNAP_DATA/extra_flags -$SNAP/bin/victoria-metrics -storageDataPath /var/lib/victoriametrics --promscrape.config /etc/victoriametrics-scrape-config.yaml $FLAGS \ No newline at end of file diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml deleted file mode 100644 index 6eb60e4a0..000000000 --- a/snap/snapcraft.yaml +++ /dev/null @@ -1,86 +0,0 @@ -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 https://docs.victoriametrics.com/single-server-victoriametrics/#prometheus-setup for details. - * Supports Prometheus querying API, so it can be used as Prometheus drop-in replacement in Grafana. - VictoriaMetrics implements MetricsQL, https://docs.victoriametrics.com/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 https://docs.victoriametrics.com/vmbackup/ / https://docs.victoriametrics.com/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 https://docs.victoriametrics.com/#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:8428/-/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.22/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: ['amd64'] - run-on: ['amd64']