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 <roman@victoriametrics.com>
Co-authored-by: hagen1778 <roman@victoriametrics.com>
This commit is contained in:
Andrii Chubatiuk 2024-07-01 16:51:32 +03:00 committed by GitHub
parent 861852f262
commit 0a42c8fd8b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 11 additions and 265 deletions

View file

@ -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: \

View file

@ -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

View file

@ -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.

View file

@ -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).

View file

@ -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

View file

@ -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 <https://victoriametrics.slack.com>

View file

@ -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

View file

@ -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}"

View file

@ -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'

View file

@ -1,50 +0,0 @@
### Snap integration
<https://snapcraft.io/>
snap link: <https://snapcraft.io/victoriametrics>
#### 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/`

View file

@ -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

View file

@ -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']