Use 0.28.1 build image and update go and alpine versions (#8583)

**What this PR does / why we need it**:

- Use the 0.28.1 build image
- Update Go version to 1.20.1
- Use Alpine 3.16.4
- Fix linter issues due to updated govet in 1.20.1 
- Modify images to not create `/etc/nsswitch.conf` file anymore
(available by default on Alpine 3.16.4)
- Remove impossible test cases for `TestMemChunk_IteratorBounds`(see
https://github.com/grafana/loki/pull/8591#discussion_r1115020111 for
context)

Signed-off-by: Michel Hollands <michel.hollands@grafana.com>
Signed-off-by: Christian Haudum <christian.haudum@gmail.com>
Co-authored-by: Christian Haudum <christian.haudum@gmail.com>
Co-authored-by: DylanGuedes <djmgguedes@gmail.com>
pull/8598/head
Michel Hollands 3 years ago committed by GitHub
parent 48aa833229
commit 4f8d3240f6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 40
      .drone/drone.yml
  2. 2
      .golangci.yml
  3. 5
      CHANGELOG.md
  4. 2
      Makefile
  5. 4
      clients/cmd/docker-driver/Dockerfile
  6. 2
      clients/cmd/promtail/Dockerfile
  7. 2
      clients/cmd/promtail/Dockerfile.arm32
  8. 4
      clients/cmd/promtail/Dockerfile.cross
  9. 4
      clients/cmd/promtail/Dockerfile.debug
  10. 6
      clients/pkg/promtail/targets/testutils/testutils.go
  11. 4
      cmd/logcli/Dockerfile
  12. 6
      cmd/logql-analyzer/Dockerfile
  13. 4
      cmd/loki-canary/Dockerfile
  14. 6
      cmd/loki-canary/Dockerfile.cross
  15. 7
      cmd/loki/Dockerfile
  16. 9
      cmd/loki/Dockerfile.cross
  17. 4
      cmd/loki/Dockerfile.debug
  18. 4
      cmd/migrate/Dockerfile
  19. 4
      cmd/querytee/Dockerfile
  20. 6
      cmd/querytee/Dockerfile.cross
  21. 6
      integration/shared_test.go
  22. 2
      operator/Dockerfile.cross
  23. 4
      pkg/canary/comparator/comparator.go
  24. 21
      pkg/chunkenc/memchunk_test.go
  25. 4
      pkg/logql/engine_test.go
  26. 10
      pkg/util/metrics_helper_test.go
  27. 4
      production/helm/loki/src/helm-test/Dockerfile
  28. 4
      tools/dev/loki-boltdb-storage-s3/dev.dockerfile
  29. 4
      tools/lambda-promtail/Dockerfile

@ -93,14 +93,14 @@ steps:
depends_on:
- clone
environment: {}
image: grafana/loki-build-image:0.27.1
image: grafana/loki-build-image:0.28.1
name: check-drone-drift
- commands:
- make BUILD_IN_CONTAINER=false check-generated-files
depends_on:
- clone
environment: {}
image: grafana/loki-build-image:0.27.1
image: grafana/loki-build-image:0.28.1
name: check-generated-files
- commands:
- cd ..
@ -110,7 +110,7 @@ steps:
depends_on:
- clone
environment: {}
image: grafana/loki-build-image:0.27.1
image: grafana/loki-build-image:0.28.1
name: clone-target-branch
when:
event:
@ -121,7 +121,7 @@ steps:
- clone-target-branch
- check-generated-files
environment: {}
image: grafana/loki-build-image:0.27.1
image: grafana/loki-build-image:0.28.1
name: test
- commands:
- cd ../loki-target-branch
@ -129,7 +129,7 @@ steps:
depends_on:
- clone-target-branch
environment: {}
image: grafana/loki-build-image:0.27.1
image: grafana/loki-build-image:0.28.1
name: test-target-branch
when:
event:
@ -142,7 +142,7 @@ steps:
- test
- test-target-branch
environment: {}
image: grafana/loki-build-image:0.27.1
image: grafana/loki-build-image:0.28.1
name: compare-coverage
when:
event:
@ -160,7 +160,7 @@ steps:
TOKEN:
from_secret: github_token
USER: grafanabot
image: grafana/loki-build-image:0.27.1
image: grafana/loki-build-image:0.28.1
name: report-coverage
when:
event:
@ -170,7 +170,7 @@ steps:
depends_on:
- check-generated-files
environment: {}
image: grafana/loki-build-image:0.27.1
image: grafana/loki-build-image:0.28.1
name: lint
- commands:
- make BUILD_IN_CONTAINER=false check-mod
@ -178,7 +178,7 @@ steps:
- test
- lint
environment: {}
image: grafana/loki-build-image:0.27.1
image: grafana/loki-build-image:0.28.1
name: check-mod
- commands:
- apk add make bash && make lint-scripts
@ -189,28 +189,28 @@ steps:
depends_on:
- check-generated-files
environment: {}
image: grafana/loki-build-image:0.27.1
image: grafana/loki-build-image:0.28.1
name: loki
- commands:
- make BUILD_IN_CONTAINER=false check-doc
depends_on:
- loki
environment: {}
image: grafana/loki-build-image:0.27.1
image: grafana/loki-build-image:0.28.1
name: check-doc
- commands:
- make BUILD_IN_CONTAINER=false validate-example-configs
depends_on:
- loki
environment: {}
image: grafana/loki-build-image:0.27.1
image: grafana/loki-build-image:0.28.1
name: validate-example-configs
- commands:
- make BUILD_IN_CONTAINER=false check-example-config-doc
depends_on:
- clone
environment: {}
image: grafana/loki-build-image:0.27.1
image: grafana/loki-build-image:0.28.1
name: check-example-config-doc
- commands:
- mkdir -p /hugo/content/docs/loki/latest
@ -243,7 +243,7 @@ steps:
depends_on:
- clone
environment: {}
image: grafana/loki-build-image:0.27.1
image: grafana/loki-build-image:0.28.1
name: loki-mixin-check
when:
event:
@ -268,7 +268,7 @@ steps:
depends_on:
- clone
environment: {}
image: grafana/loki-build-image:0.27.1
image: grafana/loki-build-image:0.28.1
name: documentation-helm-reference-check
trigger:
ref:
@ -1370,7 +1370,7 @@ steps:
NFPM_SIGNING_KEY:
from_secret: gpg_private_key
NFPM_SIGNING_KEY_FILE: /drone/src/private-key.key
image: grafana/loki-build-image:0.27.1
image: grafana/loki-build-image:0.28.1
name: write-key
- commands:
- make BUILD_IN_CONTAINER=false packages
@ -1378,7 +1378,7 @@ steps:
NFPM_PASSPHRASE:
from_secret: gpg_passphrase
NFPM_SIGNING_KEY_FILE: /drone/src/private-key.key
image: grafana/loki-build-image:0.27.1
image: grafana/loki-build-image:0.28.1
name: test packaging
- commands:
- ./tools/packaging/verify-deb-install.sh
@ -1404,7 +1404,7 @@ steps:
NFPM_PASSPHRASE:
from_secret: gpg_passphrase
NFPM_SIGNING_KEY_FILE: /drone/src/private-key.key
image: grafana/loki-build-image:0.27.1
image: grafana/loki-build-image:0.28.1
name: publish
when:
event:
@ -1438,7 +1438,7 @@ steps:
from_secret: docker_password
DOCKER_USERNAME:
from_secret: docker_username
image: grafana/loki-build-image:0.27.1
image: grafana/loki-build-image:0.28.1
name: build and push
privileged: true
volumes:
@ -1675,6 +1675,6 @@ kind: secret
name: gpg_private_key
---
kind: signature
hmac: e5f127d71d3dcb4ae93d348ff2641c9639bf0372640fd398328cff25eda62a9d
hmac: 13b906ad666c4711a677e511e67a8bbfde8def0a73bc23a1dc3799953f986485
...

@ -4,7 +4,7 @@
# options for analysis running
run:
# define go version
go: "1.19"
go: "1.20"
# default concurrency is a available CPU number
concurrency: 16

@ -49,6 +49,11 @@
* [8315](https://github.com/grafana/loki/pull/8315) **thepalbi** Relicense and export `pkg/ingester` WAL code to be used in Promtail's WAL.
##### Build
* [8575](https://github.com/grafana/loki/pull/8575) **MichelHollands** Update build image to go 1.20.1 and alpine 3.16.4.
* [8583](https://github.com/grafana/loki/pull/8583) **MichelHollands** Use 0.28.1 build image and update go and alpine versions.
#### Promtail
##### Enhancements

@ -29,7 +29,7 @@ DOCKER_IMAGE_DIRS := $(patsubst %/Dockerfile,%,$(DOCKERFILES))
BUILD_IN_CONTAINER ?= true
# ensure you run `make drone` after changing this
BUILD_IMAGE_VERSION := 0.27.1
BUILD_IMAGE_VERSION := 0.28.1
# Docker image info
IMAGE_PREFIX ?= grafana

@ -1,4 +1,4 @@
ARG BUILD_IMAGE=grafana/loki-build-image:0.27.1
ARG BUILD_IMAGE=grafana/loki-build-image:0.28.1
# Directories in this file are referenced from the root of the project not this folder
# This file is intended to be called from the root like so:
# docker build -t grafana/loki -f cmd/loki/Dockerfile .
@ -9,7 +9,7 @@ COPY . /src/loki
WORKDIR /src/loki
RUN make clean && make BUILD_IN_CONTAINER=false clients/cmd/docker-driver/docker-driver
FROM alpine:3.16.2
FROM alpine:3.16.4
RUN apk add --update --no-cache ca-certificates tzdata
COPY --from=build /src/loki/clients/cmd/docker-driver/docker-driver /bin/docker-driver
WORKDIR /bin/

@ -1,4 +1,4 @@
FROM golang:1.19.5-bullseye as build
FROM golang:1.20.1-bullseye as build
COPY . /src/loki
WORKDIR /src/loki

@ -1,4 +1,4 @@
FROM golang:1.19.5-bullseye as build
FROM golang:1.20.1-bullseye as build
COPY . /src/loki
WORKDIR /src/loki

@ -1,8 +1,8 @@
ARG BUILD_IMAGE=grafana/loki-build-image:0.27.1
ARG BUILD_IMAGE=grafana/loki-build-image:0.28.1
# Directories in this file are referenced from the root of the project not this folder
# This file is intended to be called from the root like so:
# docker build -t grafana/promtail -f clients/cmd/promtail/Dockerfile .
FROM golang:1.19.5-alpine as goenv
FROM golang:1.20.1-alpine as goenv
RUN go env GOARCH > /goarch && \
go env GOARM > /goarm

@ -2,14 +2,14 @@
# This file is intended to be called from the root like so:
# docker build -t grafana/promtail -f clients/cmd/promtail/Dockerfile.debug .
FROM grafana/loki-build-image:0.27.1 as build
FROM grafana/loki-build-image:0.28.1 as build
ARG GOARCH="amd64"
COPY . /src/loki
WORKDIR /src/loki
RUN make clean && make BUILD_IN_CONTAINER=false PROMTAIL_JOURNAL_ENABLED=true promtail-debug
FROM alpine:3.16.2
FROM alpine:3.16.4
RUN apk add --update --no-cache ca-certificates tzdata
COPY --from=build /src/loki/clients/cmd/promtail/promtail-debug /usr/bin/promtail-debug
COPY --from=build /usr/bin/dlv /usr/bin/dlv

@ -5,8 +5,10 @@ import (
"time"
)
var randomGenerator *rand.Rand
func InitRandom() {
rand.Seed(time.Now().UnixNano())
randomGenerator = rand.New(rand.NewSource(time.Now().UnixNano()))
}
var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
@ -14,7 +16,7 @@ var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
func RandName() string {
b := make([]rune, 10)
for i := range b {
b[i] = letters[rand.Intn(len(letters))]
b[i] = letters[randomGenerator.Intn(len(letters))]
}
return string(b)
}

@ -1,10 +1,10 @@
FROM golang:1.19.5 as build
FROM golang:1.20.1 as build
COPY . /src/loki
WORKDIR /src/loki
RUN make clean && make BUILD_IN_CONTAINER=false logcli
FROM alpine:3.16.2
FROM alpine:3.16.4
RUN apk add --no-cache ca-certificates

@ -1,13 +1,13 @@
FROM golang:1.19.5 as build
FROM golang:1.20.1 as build
COPY . /src/loki
WORKDIR /src/loki
RUN make clean && CGO_ENABLED=0 go build ./cmd/logql-analyzer/
FROM alpine:3.15.4
FROM alpine:3.16.4
RUN apk add --no-cache ca-certificates
COPY --from=build /src/loki/logql-analyzer /usr/bin/logql-analyzer
ENTRYPOINT [ "/usr/bin/logql-analyzer" ]
ENTRYPOINT [ "/usr/bin/logql-analyzer" ]

@ -1,10 +1,10 @@
FROM golang:1.19.5 as build
FROM golang:1.20.1 as build
COPY . /src/loki
WORKDIR /src/loki
RUN make clean && make BUILD_IN_CONTAINER=false loki-canary
FROM alpine:3.16.2
FROM alpine:3.16.4
RUN apk add --update --no-cache ca-certificates
COPY --from=build /src/loki/cmd/loki-canary/loki-canary /usr/bin/loki-canary
ENTRYPOINT [ "/usr/bin/loki-canary" ]

@ -1,8 +1,8 @@
ARG BUILD_IMAGE=grafana/loki-build-image:0.27.1
ARG BUILD_IMAGE=grafana/loki-build-image:0.28.1
# Directories in this file are referenced from the root of the project not this folder
# This file is intended to be called from the root like so:
# docker build -t grafana/promtail -f cmd/promtail/Dockerfile .
FROM golang:1.19.5-alpine as goenv
FROM golang:1.20.1-alpine as goenv
RUN go env GOARCH > /goarch && \
go env GOARM > /goarm
@ -12,7 +12,7 @@ COPY . /src/loki
WORKDIR /src/loki
RUN make clean && GOARCH=$(cat /goarch) GOARM=$(cat /goarm) make BUILD_IN_CONTAINER=false loki-canary
FROM alpine:3.16.2
FROM alpine:3.16.4
RUN apk add --update --no-cache ca-certificates
COPY --from=build /src/loki/cmd/loki-canary/loki-canary /usr/bin/loki-canary
ENTRYPOINT [ "/usr/bin/loki-canary" ]

@ -1,10 +1,10 @@
FROM golang:1.19.5 as build
FROM golang:1.20.1 as build
COPY . /src/loki
WORKDIR /src/loki
RUN make clean && make BUILD_IN_CONTAINER=false loki
FROM alpine:3.16.2
FROM alpine:3.16.4
RUN apk add --no-cache ca-certificates libcap
@ -17,9 +17,6 @@ RUN mkdir -p /loki/rules && \
mkdir -p /loki/rules-temp && \
chown -R loki:loki /etc/loki /loki
# See https://github.com/grafana/loki/issues/1928
RUN [ ! -e /etc/nsswitch.conf ] && echo 'hosts: files dns' > /etc/nsswitch.conf
USER 10001
EXPOSE 3100
ENTRYPOINT [ "/usr/bin/loki" ]

@ -1,8 +1,8 @@
ARG BUILD_IMAGE=grafana/loki-build-image:0.27.1
ARG BUILD_IMAGE=grafana/loki-build-image:0.28.1
# Directories in this file are referenced from the root of the project not this folder
# This file is intended to be called from the root like so:
# docker build -t grafana/loki -f cmd/loki/Dockerfile .
FROM golang:1.19.5-alpine as goenv
FROM golang:1.20.1-alpine as goenv
RUN go env GOARCH > /goarch && \
go env GOARM > /goarm
@ -12,7 +12,7 @@ COPY . /src/loki
WORKDIR /src/loki
RUN make clean && GOARCH=$(cat /goarch) GOARM=$(cat /goarm) make BUILD_IN_CONTAINER=false loki
FROM alpine:3.16.2
FROM alpine:3.16.4
RUN apk add --no-cache ca-certificates
@ -24,9 +24,6 @@ RUN addgroup -g 10001 -S loki && \
RUN mkdir -p /loki && \
chown -R loki:loki /etc/loki /loki
# See https://github.com/grafana/loki/issues/1928
RUN [ ! -e /etc/nsswitch.conf ] && echo 'hosts: files dns' > /etc/nsswitch.conf
USER 10001
EXPOSE 3100
ENTRYPOINT [ "/usr/bin/loki" ]

@ -1,13 +1,13 @@
# Directories in this file are referenced from the root of the project not this folder
# This file is intended to be called from the root like so:
# docker build -t grafana/loki -f cmd/loki/Dockerfile.debug .
FROM grafana/loki-build-image:0.27.1 as build
FROM grafana/loki-build-image:0.28.1 as build
ARG GOARCH="amd64"
COPY . /src/loki
WORKDIR /src/loki
RUN make clean && make BUILD_IN_CONTAINER=false loki-debug
FROM alpine:3.16.2
FROM alpine:3.16.4
RUN apk add --update --no-cache ca-certificates
COPY --from=build /src/loki/cmd/loki/loki-debug /usr/bin/loki-debug
COPY --from=build /usr/bin/dlv /usr/bin/dlv

@ -1,9 +1,9 @@
FROM golang:1.19.5 as build
FROM golang:1.20.1 as build
COPY . /src/loki
WORKDIR /src/loki
RUN make clean && make BUILD_IN_CONTAINER=false migrate
FROM alpine:3.16.2
FROM alpine:3.16.4
RUN apk add --update --no-cache ca-certificates
COPY --from=build /src/loki/cmd/migrate/migrate /usr/bin/migrate
#ENTRYPOINT [ "/usr/bin/migrate" ]

@ -1,10 +1,10 @@
FROM golang:1.19.5 as build
FROM golang:1.20.1 as build
COPY . /src/loki
WORKDIR /src/loki
RUN make clean && make BUILD_IN_CONTAINER=false loki-querytee
FROM alpine:3.16.2
FROM alpine:3.16.4
RUN apk add --update --no-cache ca-certificates
COPY --from=build /src/loki/cmd/querytee/querytee /usr/bin/querytee
ENTRYPOINT [ "/usr/bin/querytee" ]

@ -1,8 +1,8 @@
ARG BUILD_IMAGE=grafana/loki-build-image:0.27.1
ARG BUILD_IMAGE=grafana/loki-build-image:0.28.1
# Directories in this file are referenced from the root of the project not this folder
# This file is intended to be called from the root like so:
# docker build -t grafana/promtail -f cmd/promtail/Dockerfile .
FROM golang:1.19.5-alpine as goenv
FROM golang:1.20.1-alpine as goenv
RUN go env GOARCH > /goarch && \
go env GOARM > /goarm
@ -12,7 +12,7 @@ COPY . /src/loki
WORKDIR /src/loki
RUN make clean && GOARCH=$(cat /goarch) GOARM=$(cat /goarm) make BUILD_IN_CONTAINER=false loki-querytee
FROM alpine:3.16.2
FROM alpine:3.16.4
RUN apk add --update --no-cache ca-certificates
COPY --from=build /src/loki/cmd/querytee/querytee /usr/bin/querytee
ENTRYPOINT [ "/usr/bin/querytee" ]

@ -5,8 +5,10 @@ import (
"time"
)
var randomGenerator *rand.Rand
func init() {
rand.Seed(time.Now().UnixNano())
randomGenerator = rand.New(rand.NewSource(time.Now().UnixNano()))
}
var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
@ -14,7 +16,7 @@ var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
func randStringRunes() string {
b := make([]rune, 12)
for i := range b {
b[i] = letterRunes[rand.Intn(len(letterRunes))]
b[i] = letterRunes[randomGenerator.Intn(len(letterRunes))]
}
return string(b)
}

@ -1,4 +1,4 @@
ARG BUILD_IMAGE=grafana/loki-build-image:0.27.1
ARG BUILD_IMAGE=grafana/loki-build-image:0.28.1
FROM golang:1.19.1-alpine as goenv
RUN go env GOARCH > /goarch && \

@ -249,8 +249,8 @@ func (c *Comparator) run() {
t := time.NewTicker(c.pruneInterval)
// Use a random tick up to the interval for the first tick
firstMt := true
rand.Seed(time.Now().UnixNano())
mt := time.NewTicker(time.Duration(rand.Int63n(c.metricTestInterval.Nanoseconds())))
randomGenerator := rand.New(rand.NewSource(time.Now().UnixNano()))
mt := time.NewTicker(time.Duration(randomGenerator.Int63n(c.metricTestInterval.Nanoseconds())))
sc := time.NewTicker(c.spotCheckQueryRate)
defer func() {
t.Stop()

@ -68,9 +68,9 @@ func TestBlocksInclusive(t *testing.T) {
func TestBlock(t *testing.T) {
for _, enc := range testEncoding {
enc := enc
t.Run(enc.String(), func(t *testing.T) {
t.Parallel()
chk := NewMemChunk(enc, DefaultHeadBlockFmt, testBlockSize, testTargetSize)
cases := []struct {
ts int64
@ -180,6 +180,7 @@ func TestBlock(t *testing.T) {
func TestCorruptChunk(t *testing.T) {
for _, enc := range testEncoding {
enc := enc
t.Run(enc.String(), func(t *testing.T) {
t.Parallel()
@ -251,6 +252,8 @@ func TestRoundtripV2(t *testing.T) {
for _, f := range HeadBlockFmts {
for _, enc := range testEncoding {
for _, version := range []byte{chunkFormatV2, chunkFormatV3} {
enc := enc
version := version
t.Run(enc.String(), func(t *testing.T) {
t.Parallel()
@ -308,6 +311,7 @@ func TestRoundtripV2(t *testing.T) {
func TestRoundtripV3(t *testing.T) {
for _, f := range HeadBlockFmts {
for _, enc := range testEncoding {
enc := enc
t.Run(fmt.Sprintf("%v-%v", f, enc), func(t *testing.T) {
t.Parallel()
@ -331,6 +335,7 @@ func TestRoundtripV3(t *testing.T) {
func TestSerialization(t *testing.T) {
for _, f := range HeadBlockFmts {
for _, enc := range testEncoding {
enc := enc
t.Run(enc.String(), func(t *testing.T) {
t.Parallel()
@ -382,6 +387,7 @@ func TestSerialization(t *testing.T) {
func TestChunkFilling(t *testing.T) {
for _, f := range HeadBlockFmts {
for _, enc := range testEncoding {
enc := enc
t.Run(enc.String(), func(t *testing.T) {
t.Parallel()
@ -893,34 +899,26 @@ func TestMemChunk_IteratorBounds(t *testing.T) {
expect []bool // array of expected values for next call in sequence
}{
{time.Unix(0, 0), time.Unix(0, 1), logproto.FORWARD, []bool{false}},
{time.Unix(0, 1), time.Unix(0, 1), logproto.FORWARD, []bool{true, false}},
{time.Unix(0, 1), time.Unix(0, 2), logproto.FORWARD, []bool{true, false}},
{time.Unix(0, 2), time.Unix(0, 2), logproto.FORWARD, []bool{true, false}},
{time.Unix(0, 1), time.Unix(0, 3), logproto.FORWARD, []bool{true, true, false}},
{time.Unix(0, 2), time.Unix(0, 3), logproto.FORWARD, []bool{true, false}},
{time.Unix(0, 3), time.Unix(0, 3), logproto.FORWARD, []bool{false}},
{time.Unix(0, 0), time.Unix(0, 1), logproto.BACKWARD, []bool{false}},
{time.Unix(0, 1), time.Unix(0, 1), logproto.BACKWARD, []bool{true, false}},
{time.Unix(0, 1), time.Unix(0, 2), logproto.BACKWARD, []bool{true, false}},
{time.Unix(0, 2), time.Unix(0, 2), logproto.BACKWARD, []bool{true, false}},
{time.Unix(0, 1), time.Unix(0, 3), logproto.BACKWARD, []bool{true, true, false}},
{time.Unix(0, 2), time.Unix(0, 3), logproto.BACKWARD, []bool{true, false}},
{time.Unix(0, 3), time.Unix(0, 3), logproto.BACKWARD, []bool{false}},
} {
t.Run(
fmt.Sprintf("mint:%d,maxt:%d,direction:%s", tt.mint.UnixNano(), tt.maxt.UnixNano(), tt.direction),
func(t *testing.T) {
t.Parallel()
tt := tt
c := createChunk()
// testing headchunk
it, err := c.Iterator(context.Background(), tt.mint, tt.maxt, tt.direction, noopStreamPipeline)
require.NoError(t, err)
for i := range tt.expect {
require.Equal(t, tt.expect[i], it.Next())
for idx, expected := range tt.expect {
require.Equal(t, expected, it.Next(), "idx: %s", idx)
}
require.NoError(t, it.Close())
@ -938,6 +936,7 @@ func TestMemChunk_IteratorBounds(t *testing.T) {
func TestMemchunkLongLine(t *testing.T) {
for _, enc := range testEncoding {
enc := enc
t.Run(enc.String(), func(t *testing.T) {
t.Parallel()

@ -2392,15 +2392,15 @@ func TestStepEvaluator_Error(t *testing.T) {
}
for _, tc := range tests {
tc := tc
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
tc := tc
eng := NewEngine(EngineOpts{}, tc.querier, NoLimits, log.NewNopLogger())
q := eng.Query(LiteralParams{
qs: tc.qs,
start: time.Unix(0, 0),
end: time.Unix(180, 0),
step: 1 * time.Second,
limit: 1,
})
_, err := q.Exec(user.InjectOrgID(context.Background(), "fake"))
require.Equal(t, tc.err, err)

@ -461,7 +461,7 @@ func TestFloat64PrecisionStability(t *testing.T) {
// Randomise the seed but log it in case we need to reproduce the test on failure.
seed := time.Now().UnixNano()
rand.Seed(seed)
randomGenerator := rand.New(rand.NewSource(seed))
t.Log("random generator seed:", seed)
// Generate a large number of registries with different metrics each.
@ -472,22 +472,22 @@ func TestFloat64PrecisionStability(t *testing.T) {
g := promauto.With(reg).NewGaugeVec(prometheus.GaugeOpts{Name: "test_gauge"}, labelNames)
for i := 0; i < cardinality; i++ {
g.WithLabelValues("a", strconv.Itoa(i)).Set(rand.Float64())
g.WithLabelValues("a", strconv.Itoa(i)).Set(randomGenerator.Float64())
}
c := promauto.With(reg).NewCounterVec(prometheus.CounterOpts{Name: "test_counter"}, labelNames)
for i := 0; i < cardinality; i++ {
c.WithLabelValues("a", strconv.Itoa(i)).Add(rand.Float64())
c.WithLabelValues("a", strconv.Itoa(i)).Add(randomGenerator.Float64())
}
h := promauto.With(reg).NewHistogramVec(prometheus.HistogramOpts{Name: "test_histogram", Buckets: []float64{0.1, 0.5, 1}}, labelNames)
for i := 0; i < cardinality; i++ {
h.WithLabelValues("a", strconv.Itoa(i)).Observe(rand.Float64())
h.WithLabelValues("a", strconv.Itoa(i)).Observe(randomGenerator.Float64())
}
s := promauto.With(reg).NewSummaryVec(prometheus.SummaryOpts{Name: "test_summary"}, labelNames)
for i := 0; i < cardinality; i++ {
s.WithLabelValues("a", strconv.Itoa(i)).Observe(rand.Float64())
s.WithLabelValues("a", strconv.Itoa(i)).Observe(randomGenerator.Float64())
}
registries.AddUserRegistry(strconv.Itoa(userID), reg)

@ -1,4 +1,4 @@
FROM golang:1.18.5 as build
FROM golang:1.20.1 as build
# build via Makefile target helm-test-image in root
# Makefile. Building from this directory will not be
@ -7,7 +7,7 @@ COPY . /src/loki
WORKDIR /src/loki
RUN make clean && make BUILD_IN_CONTAINER=false helm-test
FROM alpine:3.16.2
FROM alpine:3.16.4
RUN apk add --update --no-cache ca-certificates=20220614-r0
COPY --from=build /src/loki/production/helm/loki/src/helm-test/helm-test /usr/bin/helm-test
ENTRYPOINT [ "/usr/bin/helm-test" ]

@ -1,8 +1,8 @@
FROM golang:1.18.5
FROM golang:1.20.1
ENV CGO_ENABLED=0
RUN go install github.com/go-delve/delve/cmd/dlv@v1.9.0
FROM alpine:3.16.2
FROM alpine:3.16.4
RUN mkdir /loki
WORKDIR /loki

@ -1,4 +1,4 @@
FROM golang:1.19.5-alpine AS build-image
FROM golang:1.20.1-alpine AS build-image
COPY tools/lambda-promtail /src/lambda-promtail
WORKDIR /src/lambda-promtail
@ -12,7 +12,7 @@ RUN go mod download
RUN go build -o ./main -tags lambda.norpc -ldflags="-s -w" lambda-promtail/*.go
FROM alpine:3.16.2
FROM alpine:3.16.4
WORKDIR /app

Loading…
Cancel
Save