diff --git a/go.mod b/go.mod index 9394bba67073..3d5aae7fd9e9 100644 --- a/go.mod +++ b/go.mod @@ -75,7 +75,7 @@ require ( github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f github.com/ncw/swift v1.0.53 github.com/oklog/run v1.1.0 - github.com/oklog/ulid v1.3.1 // indirect + github.com/oklog/ulid v1.3.1 github.com/opentracing-contrib/go-grpc v0.0.0-20210225150812-73cb765af46e github.com/opentracing-contrib/go-stdlib v1.0.0 github.com/opentracing/opentracing-go v1.2.0 diff --git a/pkg/storage/chunk/client/object_client.go b/pkg/storage/chunk/client/object_client.go index 5fd14580be72..7632647bd910 100644 --- a/pkg/storage/chunk/client/object_client.go +++ b/pkg/storage/chunk/client/object_client.go @@ -3,11 +3,13 @@ package client import ( "bytes" "context" + "crypto/rand" "encoding/base64" "io" "strings" "time" + "github.com/oklog/ulid" "github.com/pkg/errors" "github.com/grafana/loki/v3/pkg/storage/chunk" @@ -114,7 +116,9 @@ func (o *client) PutWal(ctx context.Context, segment *wal.SegmentWriter) error { defer func(reader io.ReadSeekCloser) { _ = reader.Close() }(reader) - return o.store.PutObject(ctx, "wal-segment-"+time.Now().UTC().Format(time.RFC3339Nano), reader) + + newUlid := ulid.MustNew(ulid.Timestamp(time.Now()), rand.Reader) + return o.store.PutObject(ctx, "loki-v2/wal/anon/"+newUlid.String(), reader) } // PutChunks stores the provided chunks in the configured backend. If multiple errors are