diff --git a/Makefile b/Makefile index 20e411b030..e32fd60dc8 100644 --- a/Makefile +++ b/Makefile @@ -42,11 +42,29 @@ release: \ release-vmcluster release-vmcluster: \ - vminsert-prod \ - vmselect-prod \ - vmstorage-prod - cd bin && tar czf victoria-metrics-$(PKG_TAG).tar.gz vminsert-prod vmselect-prod vmstorage-prod && \ - sha256sum victoria-metrics-$(PKG_TAG).tar.gz > victoria-metrics-$(PKG_TAG)_checksums.txt + release-vmcluster-amd64 \ + release-vmcluster-arm64 + +release-vmcluster-amd64: + GOARCH=amd64 $(MAKE) release-vmcluster-generic + +release-vmcluster-arm64: + GOARCH=arm64 $(MAKE) release-vmcluster-generic + +release-vmcluster-generic: \ + vminsert-$(GOARCH)-prod \ + vmselect-$(GOARCH)-prod \ + vmstorage-$(GOARCH)-prod + cd bin && \ + tar --transform="flags=r;s|-$(GOARCH)||" -czf victoria-metrics-$(GOARCH)-$(PKG_TAG).tar.gz \ + vminsert-$(GOARCH)-prod \ + vmselect-$(GOARCH)-prod \ + vmstorage-$(GOARCH)-prod \ + && sha256sum victoria-metrics-$(GOARCH)-$(PKG_TAG).tar.gz \ + vminsert-$(GOARCH)-prod \ + vmselect-$(GOARCH)-prod \ + vmstorage-$(GOARCH)-prod \ + | sed s/-$(GOARCH)-prod/-prod/ > victoria-metrics-$(GOARCH)-$(PKG_TAG)_checksums.txt pprof-cpu: go tool pprof -trim_path=github.com/VictoriaMetrics/VictoriaMetrics@ $(PPROF_FILE) diff --git a/app/vminsert/Makefile b/app/vminsert/Makefile index fbd19798ec..aca86da687 100644 --- a/app/vminsert/Makefile +++ b/app/vminsert/Makefile @@ -15,6 +15,21 @@ vminsert-prod: vminsert-pure-prod: APP_NAME=vminsert $(MAKE) app-via-docker-pure +vminsert-amd64-prod: + APP_NAME=vminsert $(MAKE) app-via-docker-amd64 + +vminsert-arm-prod: + APP_NAME=vminsert $(MAKE) app-via-docker-arm + +vminsert-arm64-prod: + APP_NAME=vminsert $(MAKE) app-via-docker-arm64 + +vminsert-ppc64le-prod: + APP_NAME=vminsert $(MAKE) app-via-docker-ppc64le + +vminsert-386-prod: + APP_NAME=vminsert $(MAKE) app-via-docker-386 + vminsert-prod-race: APP_NAME=vminsert RACE=-race $(MAKE) app-via-docker diff --git a/app/vmselect/Makefile b/app/vmselect/Makefile index b1b3b6a72a..ffe7dd4ba5 100644 --- a/app/vmselect/Makefile +++ b/app/vmselect/Makefile @@ -19,6 +19,21 @@ vmselect-prod: vmselect-pure-prod: APP_NAME=vmselect $(MAKE) app-via-docker-pure +vmselect-amd64-prod: + APP_NAME=vmselect $(MAKE) app-via-docker-amd64 + +vmselect-arm-prod: + APP_NAME=vmselect $(MAKE) app-via-docker-arm + +vmselect-arm64-prod: + APP_NAME=vmselect $(MAKE) app-via-docker-arm64 + +vmselect-ppc64le-prod: + APP_NAME=vmselect $(MAKE) app-via-docker-ppc64le + +vmselect-386-prod: + APP_NAME=vmselect $(MAKE) app-via-docker-386 + vmselect-prod-race: APP_NAME=vmselect RACE=-race $(MAKE) app-via-docker diff --git a/app/vmstorage/Makefile b/app/vmstorage/Makefile index 727f11c74b..ad0635ed03 100644 --- a/app/vmstorage/Makefile +++ b/app/vmstorage/Makefile @@ -19,6 +19,21 @@ vmstorage-prod: vmstorage-pure-prod: APP_NAME=vmstorage $(MAKE) app-via-docker-pure +vmstorage-amd64-prod: + APP_NAME=vmstorage $(MAKE) app-via-docker-amd64 + +vmstorage-arm-prod: + APP_NAME=vmstorage $(MAKE) app-via-docker-arm + +vmstorage-arm64-prod: + APP_NAME=vmstorage $(MAKE) app-via-docker-arm64 + +vmstorage-ppc64le-prod: + APP_NAME=vmstorage $(MAKE) app-via-docker-ppc64le + +vmstorage-386-prod: + APP_NAME=vmstorage $(MAKE) app-via-docker-386 + vmstorage-prod-race: APP_NAME=vmstorage RACE=-race $(MAKE) app-via-docker diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index f1294214e3..ef059a2346 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -3,19 +3,20 @@ # tip * FEATURE: vminsert and vmagent: add `-sortLabels` command-line flag for sorting metric labels before pushing them to `vmstorage`. This should reduce the size of `MetricName -> internal_series_id` cache (aka `vm_cache_size_bytes{type="storage/tsid"}`) when ingesting samples for the same time series with distinct order of labels. For example, `foo{k1="v1",k2="v2"}` and `foo{k2="v2",k1="v1"}` represent a single time series. Labels sorting is disabled by default, since the majority of established exporters preserve the order of labels for the exported metrics. -* FEATURE: allow specifying label value alongside label name for the `others sum` time series returned from `topk_*` and `bottomk_*` functions from [MetricsQL](https://victoriametrics.github.io/MetricsQL.html). For example, `topk_avg(3, max(process_resident_memory_bytes) by (instance), "instance=other_sum")` would return top 3 series from `max(process_resident_memory_bytes) by (instance)` plus a series containing of the sum of other series. The `others sum` series will have `{instance="other_sum"}` label. +* FEATURE: allow specifying label value alongside label name for the `others sum` time series returned from `topk_*` and `bottomk_*` functions from [MetricsQL](https://victoriametrics.github.io/MetricsQL.html). For example, `topk_avg(3, max(process_resident_memory_bytes) by (instance), "instance=other_sum")` would return top 3 series from `max(process_resident_memory_bytes) by (instance)` plus a series containing the sum of other series. The `others sum` series will have `{instance="other_sum"}` label. * FEATURE: do not delete `dst_label` when applying `label_copy(q, "src_label", "dst_label")` and `label_move(q, "src_label", "dst_label")` to series without `src_label` and with non-empty `dst_label`. See more details at [MetricsQL docs](https://victoriametrics.github.io/MetricsQL.html). * FEATURE: update Go builder from `v1.16.2` to `v1.16.3`. This should fix [these issues](https://github.com/golang/go/issues?q=milestone%3AGo1.16.3+label%3ACherryPickApproved). * FEATURE: vmagent: add support for `follow_redirects` option to `scrape_configs` section in the same way as [Prometheus 2.26 does](https://github.com/prometheus/prometheus/pull/8546). * FEATURE: vmagent: add support for `authorization` section in `-promscrape.config` in the same way as [Prometheus 2.26 does](https://github.com/prometheus/prometheus/pull/8512). * FEATURE: vmagent: add support for socks5 proxy in `proxy_url` config option. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1177). -* FEATURE: vmagent: add support for `socks5 over tls` proxy in `proxy_url` config option. It can be set up with the following config: `proxy_url: tls+socks5://proxy-addr:port`. +* FEATURE: vmagent: add support for `socks5 over tls` proxy in `proxy_url` config option. It can be set up with the following config: `proxy_url: "tls+socks5://proxy-addr:port"`. * FEATURE: vmagent: reduce memory usage when `-remoteWrite.queues` is set to a big value. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1167). * FEATURE: vmagent: add AWS IAM roles for tasks support for EC2 service discovery according to [these docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html). * FEATURE: vmagent: add support for `proxy_tls_config`, `proxy_authorization`, `proxy_basic_auth`, `proxy_bearer_token` and `proxy_bearer_token_file` options in `consul_sd_config`, `dockerswarm_sd_config` and `eureka_sd_config` sections. * FEATURE: vmagent: pass `X-Prometheus-Scrape-Timeout-Seconds` header to scrape targets as Prometheus does. In this case scrape targets can limit the time needed for performing the scrape. See [this comment](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1179#issuecomment-813118733) for details. -* FEATURE: vmagent: drop corrupted persistent queue files at `-remoteWrite.tmpDataPath` instead of throwing a fatal error. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1030). +* FEATURE: vmagent: drop corrupted persistent queue files at `-remoteWrite.tmpDataPath` instead of throwing a fatal error. Corrupted files can appear after unclean shutdown of `vmagent` such as OOM kill or hardware reset. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1030). * FEATURE: vmauth: add support for authorization via [bearer token](https://swagger.io/docs/specification/authentication/bearer-authentication/). See [the docs](https://victoriametrics.github.io/vmauth.html#auth-config) for details. +* FEATURE: publish `arm64` and `amd64` binaries for cluster version of VictoriaMetrics at [releases page](https://github.com/VictoriaMetrics/VictoriaMetrics/releases). * BUGFIX: vmagent: properly work with simple HTTP proxies which don't support `CONNECT` method. For example, [PushProx](https://github.com/prometheus-community/PushProx). See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1179). * BUGFIX: vmagent: properly discover targets if multiple namespace selectors are put inside `kubernetes_sd_config`. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1170).