132 Commits

Author SHA1 Message Date
Trevor Whitney
e569e10eec chore(bench): introduce metadata discovery tool (#21085) 2026-03-09 17:32:57 +00:00
Jake Leahy
c524203a6e feat(logcli): Allow custom headers to be passed (#20231) 2025-12-17 12:15:35 +00:00
Robert Fratto
0f0846adec chore(engine): make stream/task debug logging configurable (#19842)
Signed-off-by: Robert Fratto <robertfratto@gmail.com>
2025-11-12 15:40:06 -05:00
Christian Haudum
4b118fb729 chore: Admission lanes for workflow tasks (#19584)
This PR introduces "admission lanes" for dispatching tasks to the runner (scheduler), that are controlled by token buckets, to avoid overflowing the runner with a large amount of tasks.

Signed-off-by: Christian Haudum <christian.haudum@gmail.com>
2025-11-06 09:31:40 +01:00
Sophie Waldman
98b411a649 chore(linter): Fix issues flagged by updated golangci-lint version (#19206) 2025-09-15 16:58:01 -04:00
Trevor Whitney
f38950a02b feat: add delete commands to logcli (#18375) 2025-07-25 07:01:43 -06:00
Robert Fratto
86c57c8616 chore: consistently use new labels.Labels API (#18490) 2025-07-18 13:15:40 -04:00
Christian Haudum
b316d52612 chore(engine): Use shard information from query frontend in the new query engine (#17792)
**What this PR does / why we need it**:

This PR introduces the sharding to the new query engine to be able to test the engine using the exsiting Loki architecture with query frontend, query scheduler, and queriers.

**Note, this is only an interim solution used for validating and testing.**

By design, the first phase of the query engine implementation does only local execution of queries without sharding or time-based splitting.

However, for testing the results of this first phase, we can utilise dual-ingestion (writing both chunks/tsdb and data objects in a way that sharding and splitting is performed in the query frontend using the existing middlewares.
On the queriers themselves, the sub-queries are parsed and planned using the new logical and physical planner. If the query can successfully be planned, it will be executed by the new engine, otherwise it falls back to the old engine.

**Shard size considerations**

While performing time-splitting in the frontend works for data objects as well, sharding by information from TSDB is not directly mappable to data objects. The default target shard size in TSDB is 600MB (decompressed), whereas target size of data objects is 1GB compressed or roughly 10-15GB uncompressed. However, individual logs sections of a data object have a target size of 128MB, which is roughly 0.9-1.2GB. That is 1.5-2x larger than the TSDB target shard size. So when using the sharding calculation from TSDB, it would over-shard for data object sections, which is likely acceptable for testing and good enough for proving that local execution with the new engine works.

**How does sharding with data objects in this PR work?**

The query frontend passes down the calculated shards as part of the query parameters of the serialised sub-request. The logical planner on the querier stores the Shard annotation on the `MAKETABLE` alongside the stream selector. This is then used by the physical planner to filter out only the relevant sections of the resolved data objects from the metastore lookup. During exeuction, only readers for the relevant sections are initialised when performing the `DataObjScan`.


Signed-off-by: Christian Haudum <christian.haudum@gmail.com>
Co-authored-by: Ashwanth <iamashwanth@gmail.com>
2025-06-24 06:36:25 +00:00
Karsten Jeschkies
a864f8b986 refactor(stringlabels): Support stringlabels in log.StreamPipeline (#17216) 2025-04-15 10:10:29 +00:00
Christian Haudum
1705f98a9f chore(engine): Wire up new execution engine (#17032)
This PR connects the already existing components of the new query engine and wires them up in the querier API.

The feature flag `-querier.engine.enable-v2-engine` controls whether supported queries should be executed using the new engine.

Note that this implementation currently does not execute any queries.


Signed-off-by: Christian Haudum <christian.haudum@gmail.com>
2025-04-07 14:02:03 +00:00
Saya
3286e218b3 feat(logcli): Add timestamp format flag via cli argument for default output (#16672)
Co-authored-by: Ben McKaig <bmckaig@blackberry.com>
Co-authored-by: steelrain74 <ben.mckaig@gmail.com>
Co-authored-by: Trevor Whitney <trevorjwhitney@gmail.com>
2025-03-25 17:54:04 +00:00
Trevor Whitney
23800f6100 chore: convert multi-variant queries from global to per-tenant config (#16718) 2025-03-14 17:49:57 -06:00
Jonathan Lange
639ac74c48 feat(logcli): Include common labels (#15611)
Adds a new `--include-common-labels` flag to logcli query, which causes the output to include all common labels.

This is mostly useful with `--quiet` and `--output=jsonl` as it allows users to get structured information from Loki that has all the information that Loki can provide.

---
Signed-off-by: Jonathan Lange <jml@mumak.net>
Co-authored-by: Christian Haudum <christian.haudum@gmail.com>
2025-01-08 12:01:15 +01:00
Aaron Delaney
c56b95d298 feat: add opt-in support for ProxyFroomEnvironment in logcli (#11742) (#14950) 2024-11-15 13:43:37 -07:00
Dylan Guedes
9e7d2f2982 fix: logcli: Check for errors before checking for exists when fetching data (#14780) 2024-11-06 16:01:34 -03:00
Ed Welch
08416d4a28 chore: improve error message when can't find remote schemaconfig file (#14496)
Signed-off-by: Edward Welch <edward.welch@grafana.com>
2024-10-30 11:56:12 -04:00
Jason Tackaberry
4d3f9f5a7b feat(logcli): add gzip compression option (#14598)
Passing `--compress` to logcli will enable (or more accurately not disable) compression on the `http.Transport`, allowing Loki to return gzip-compressed payloads.

This improves overall execution time and reduces data transfer by 10-15x.

Signed-off-by: Jason Tackaberry <tack@urandom.ca>
2024-10-29 09:48:42 +01:00
Cyrill Troxler
bcfd0d1ad1 fix(logcli): create new tail response for every line (#14525)
When tailing with logcli, the loghttp.TailResponse is created outside of the loop, resulting in stale labels within the TailResponse LabelSet as the unmarshal does not clear the map.

Signed-off-by: Cyrill Troxler <cyrill@nine.ch>
2024-10-18 17:12:43 +02:00
Joao Marcal
c059ace53e feat(storage): GCS backend using thanos.io/objstore (#11132)
Signed-off-by: Joao Marcal <jmarcal@redhat.com>
Signed-off-by: Kaviraj <kavirajkanagaraj@gmail.com>
Signed-off-by: Kaviraj Kanagaraj <kavirajkanagaraj@gmail.com>
Signed-off-by: Ashwanth Goli <iamashwanth@gmail.com>
Co-authored-by: Kaviraj Kanagaraj <kavirajkanagaraj@gmail.com>
Co-authored-by: Ashwanth <iamashwanth@gmail.com>
2024-10-18 17:46:41 +05:30
Trevor Whitney
b5462b6639 chore: remove copied loop vars (#14383) 2024-10-04 10:38:36 -06:00
Trevor Whitney
7983f94b15 feat: detected field values (#14350) 2024-10-03 08:45:50 -06:00
Paul Rogers
18cef217fc chore: Linting updates in prep for Go 1.23 (#14071) 2024-09-06 13:12:14 -04:00
Christian Haudum
d8cc1cea83 chore: Make dedicated iterator package (#13273)
Iterators of various types are widely used throughout the Loki code base. With the recent code additions of the bloom filters, a new set of utility functions for iterators emerged in `github.com/grafana/loki/v3/pkg/storage/bloom/v1`. The package defines interfaces for various common types, but also provides implementations to create and compose new iterators that implement these interfaces. This new package uses Go Generics.

- However, at the current state, there are multiple iterator interfaces and implementations, which adds cognitive overhead in understanding how they work and which ones should be used. The idea is to unify them into a single iterator lib for Loki.
- As a first step towards a single iterator library for the Loki code base, this PR moves the utilities from the `pkg/storage/bloom/v1` package to the `pkg/iter/v2` package.
- Second, it changes the existing `EntryIterator` and `SampleIterator` iterators to "inherit" `v2.CloseIterator` in order to expose the same function names.
- And lastly, naming conventions of iterator interfaces and structs are unified.

The basic iterator interface (defined in `pkg/iter/v2/interface.go`) looks like so:

```go
// Usage:
//
//	for it.Next() {
//	    curr := it.At()
//	    // do something
//	}
//	if it.Err() != nil {
//	    // do something
//	}
type Iterator[T any] interface {
	Next() bool
	Err() error
	At() T
}
```

---

Signed-off-by: Christian Haudum <christian.haudum@gmail.com>
2024-07-03 10:08:50 +02:00
benclive
6a0fdd0880 feat: Add new Drain tokenizer that splits on most punctuation (#13143) 2024-06-07 12:59:31 +02:00
Kaviraj Kanagaraj
88e545fc95 feat(cache): Add Cache-Control: no-cache support for Loki instant queries. (#12896)
Signed-off-by: Kaviraj <kavirajkanagaraj@gmail.com>
2024-05-19 17:40:25 +02:00
Owen Diehl
bc78d13d9b feat(blooms): compute chunks once (#12664)
Signed-off-by: Owen Diehl <ow.diehl@gmail.com>
2024-04-29 15:54:05 -04:00
Trevor Whitney
210ea93a69 feat: add detected-fields command to logcli (#12739) 2024-04-23 10:18:02 -06:00
Ed Welch
670041368a chore: add more validation at startup to make sure we have a proper schema, and necessary directories are created (#12496)
Signed-off-by: Edward Welch <edward.welch@grafana.com>
Co-authored-by: Dylan Guedes <djmgguedes@gmail.com>
2024-04-07 17:06:13 -04:00
Ed Welch
4c88be0ef2 chore: update loki modules for 3.0 release (#12433)
Signed-off-by: Edward Welch <edward.welch@grafana.com>
2024-04-02 13:00:17 -04:00
Michel Hollands
4ce5fa8954 feat: update logcli so it tries to load the latest version of the schemaconfig (#11852)
Signed-off-by: Michel Hollands <michel.hollands@gmail.com>
Signed-off-by: Michel Hollands <michel.hollands@grafana.com>
Co-authored-by: Dylan Guedes <djmgguedes@gmail.com>
2024-03-15 13:43:41 +00:00
Karsten Jeschkies
5b97fcfd93 Send query plan to querier. (#11246)
**What this PR does / why we need it**:
Following https://github.com/grafana/loki/pull/11123 and in order to
enable https://github.com/grafana/loki/pull/10417 the query frontend
should send the serialized LogQL AST instead of the query string to the
queriers. This enables the frontend to change the AST and inject
expressions that are not expressible in LogQL.

**Checklist**
- [ ] Reviewed the
[`CONTRIBUTING.md`](https://github.com/grafana/loki/blob/main/CONTRIBUTING.md)
guide (**required**)
- [ ] Documentation added
- [x] Tests updated
- [ ] `CHANGELOG.md` updated
- [ ] If the change is worth mentioning in the release notes, add
`add-to-release-notes` label
- [ ] Changes that require user attention or interaction to upgrade are
documented in `docs/sources/setup/upgrade/_index.md`
- [ ] For Helm chart changes bump the Helm chart version in
`production/helm/loki/Chart.yaml` and update
`production/helm/loki/CHANGELOG.md` and
`production/helm/loki/README.md`. [Example
PR](d10549e3ec)
- [ ] If the change is deprecating or removing a configuration option,
update the `deprecated-config.yaml` and `deleted-config.yaml` files
respectively in the `tools/deprecated-config-checker` directory.
[Example
PR](0d4416a4b0)

---------

Signed-off-by: Callum Styan <callumstyan@gmail.com>
Co-authored-by: Callum Styan <callumstyan@gmail.com>
2023-11-22 08:29:02 +01:00
Karsten Jeschkies
4ed3b117d2 Use newest build image 0.31.2 with golangci-lint update. (#11118)
**What this PR does / why we need it**:
This just updates the Loki build imaage changed in #11114.

**Checklist**
- [ ] Reviewed the
[`CONTRIBUTING.md`](https://github.com/grafana/loki/blob/main/CONTRIBUTING.md)
guide (**required**)
- [ ] Documentation added
- [ ] Tests updated
- [ ] `CHANGELOG.md` updated
- [ ] If the change is worth mentioning in the release notes, add
`add-to-release-notes` label
- [ ] Changes that require user attention or interaction to upgrade are
documented in `docs/sources/setup/upgrade/_index.md`
- [ ] For Helm chart changes bump the Helm chart version in
`production/helm/loki/Chart.yaml` and update
`production/helm/loki/CHANGELOG.md` and
`production/helm/loki/README.md`. [Example
PR](d10549e3ec)
- [ ] If the change is deprecating or removing a configuration option,
update the `deprecated-config.yaml` and `deleted-config.yaml` files
respectively in the `tools/deprecated-config-checker` directory.
[Example
PR](0d4416a4b0)
2023-11-02 11:06:29 +01:00
Michel Hollands
8628b15624 Use metrics namespace for more metrics (#11025)
**What this PR does / why we need it**:

Use the metrics namespace setting instead of hardcoding to `cortex`.
This is a follow up to (and based on)
https://github.com/grafana/loki/pull/11014.

**Checklist**
- [x] Reviewed the
[`CONTRIBUTING.md`](https://github.com/grafana/loki/blob/main/CONTRIBUTING.md)
guide (**required**)
- [ ] Documentation added
- [X] Tests updated
- [x] `CHANGELOG.md` updated
- [ ] If the change is worth mentioning in the release notes, add
`add-to-release-notes` label
- [ ] Changes that require user attention or interaction to upgrade are
documented in `docs/sources/setup/upgrade/_index.md`
- [ ] For Helm chart changes bump the Helm chart version in
`production/helm/loki/Chart.yaml` and update
`production/helm/loki/CHANGELOG.md` and
`production/helm/loki/README.md`. [Example
PR](d10549e3ec)
- [ ] If the change is deprecating or removing a configuration option,
update the `deprecated-config.yaml` and `deleted-config.yaml` files
respectively in the `tools/deprecated-config-checker` directory. <!--
TODO(salvacorts): Add example PR -->

---------

Signed-off-by: Michel Hollands <michel.hollands@gmail.com>
Co-authored-by: Ashwanth <iamashwanth@gmail.com>
2023-10-30 14:57:06 +00:00
Ashwanth
a118e994d8 Remove shared_store and shared_store_key_prefix from shipper and compactor (#10840)
**What this PR does / why we need it**:
#### Removes `shared_store` and `shared_store_key_prefix` from index
shipper and compactor configs and their corresponding CLI flags.

- `-tsdb.shipper.shared-store`
- `-boltdb.shipper.shared-store`
- `-tsdb.shipper.shared-store.key-prefix`
- `-boltdb.shipper.shared-store.key-prefix`
- `-boltdb.shipper.compactor.shared-store`
- `-boltdb.shipper.compactor.shared-store.key-prefix`

`shared_store` has been a confusing option allowing users to easily
misconfigure Loki.
Going forward `object_store` setting in the
[period_config](https://grafana.com/docs/loki/latest/configure/#period_config)
(which already configured the store for chunks) will be used to
configure store for the index.

And the newly added `path_prefix` option under the `index` key in
`period_config` will configure the path under which index tables are
stored.

This change enforces chunks and index files for a given period reside
together in the same storage bucket. More details in the upgrade guide.

---

`-compactor.delete-request-store` has to be **explicitly configured**
going forward. Without setting this, loki wouldn't know which object
store to use for storing delete requests. Path prefix for storing
deletes is decided by `-compactor.delete-request-store.key-prefix` which
defaults to `index/`.


**Checklist**
- [X] Reviewed the
[`CONTRIBUTING.md`](https://github.com/grafana/loki/blob/main/CONTRIBUTING.md)
guide (**required**)
- [X] Documentation added
- [X] Tests updated
- [x] `CHANGELOG.md` updated
- [ ] If the change is worth mentioning in the release notes, add
`add-to-release-notes` label
- [X] Changes that require user attention or interaction to upgrade are
documented in `docs/sources/setup/upgrade/_index.md`
- [ ] For Helm chart changes bump the Helm chart version in
`production/helm/loki/Chart.yaml` and update
`production/helm/loki/CHANGELOG.md` and
`production/helm/loki/README.md`. [Example
PR](d10549e3ec)
2023-10-30 12:46:30 +01:00
Christian Haudum
2e775f3f44 chore(storage): Restructure shipper packages (#10729)
**What this PR does / why we need it**:

This PR restructures the code for the shipper component of the Loki storage layer.

New package layout:

```console
$ tree -d pkg/storage/stores/shipper 
pkg/storage/stores/shipper
└── indexshipper
    ├── boltdb
    │   └── compactor
    ├── compactor
    │   ├── client
    │   │   └── grpc
    │   ├── deletion
    │   ├── deletionmode
    │   ├── generationnumber
    │   └── retention
    ├── downloads
    ├── gatewayclient
    ├── index
    ├── indexgateway
    ├── storage
    ├── testutil
    ├── tsdb
    │   ├── index
    │   ├── testdata
    │   └── testutil
    ├── uploads
    └── util

23 directories
```

* TSDB and BoltDB specific code is under `./pkg/storage/stores/shipper/indexshipper/tsdb` and `./pkg/storage/stores/shipper/indexshipper/boltdb` respectively.
* Common code for both TSDB and BoltDB is directly under `./pkg/storage/stores/shipper/indexshipper` and subdirectories, such as `uploads/`, `downloads/`, `compactor/`, ...

**Special notes for your reviewer**:

This PR is identical to https://github.com/grafana/loki/pull/10724 except of the package `pkg/storage/stores/indexshipper` the package is `pkg/storage/stores/shipper/indexshipper` (one level deeper).


Signed-off-by: Christian Haudum <christian.haudum@gmail.com>
2023-09-28 10:43:58 +03:00
Charles Korn
bde65667f7 Upgrade dskit to use packages migrated from weaveworks/common (#10164)
**What this PR does / why we need it**:

This PR upgrades dskit and replaces use of packages from
weaveworks/common with their migrated equivalents in dskit. See
https://github.com/grafana/dskit/pull/342 for more details.

Note that Loki still uses some packages from weaveworks/common that I
haven't migrated (`aws` and `test`) - I'll migrate these separately.

If this PR needs to be rebuilt, I used `rewrite.sh`
([source](https://gist.github.com/charleskorn/48efe62a09d6d70f3de30327003df5c5#file-rewrite-sh))
to generate most of these changes.

**Which issue(s) this PR fixes**:

(none)

**Special notes for your reviewer**:

(none)

**Checklist**
- [x] Reviewed the
[`CONTRIBUTING.md`](https://github.com/grafana/loki/blob/main/CONTRIBUTING.md)
guide (**required**)
- [n/a] Documentation added
- [n/a] Tests updated
- [n/a] `CHANGELOG.md` updated
- [n/a] If the change is worth mentioning in the release notes, add
`add-to-release-notes` label
- [n/a] Changes that require user attention or interaction to upgrade
are documented in `docs/sources/setup/upgrade/_index.md`
- [n/a] For Helm chart changes bump the Helm chart version in
`production/helm/loki/Chart.yaml` and update
`production/helm/loki/CHANGELOG.md` and
`production/helm/loki/README.md`. [Example
PR](d10549e3ec)

Co-authored-by: Kaviraj Kanagaraj <kavirajkanagaraj@gmail.com>
2023-08-07 10:11:28 +02:00
Trevor Whitney
1584443216 logcli: fix volume routes, add targetLabels and aggregateByLabels (#10059)
This PR fixes `logcli` to use the new endpoints for volume, which are
now `volume` and `volume_range` instead of `series_volume` and
`series_volume_range`. This PR also adds support for the additional
parameters `targetLabels` and `aggregateBy`.
2023-07-26 16:20:37 -06:00
Trevor Whitney
8aaf5c10a8 add stats, volume, and volume_range commands to logcli (#9966)
Add `stats`, `volume`, and `volume_range` commands to `logcli`.

Does not implement the file client for now. I think it would be cool if
in the future the file client could read from a downloaded TSDB index
file for these commands.
2023-07-24 09:04:56 -06:00
Trevor Whitney
4a56445686 Upgrade golangci-lint and fix linting errors (#9601)
**What this PR does / why we need it**:

Upgrade  `golangci-lint` and fixes all the errors. The upgrade includes some stricter linting.
2023-06-12 12:24:29 -06:00
Vladyslav Diachenko
3c52034d63 [logcli] fixed query command that is run against user's bucket with TSDB index enabled (#9597)
**What this PR does / why we need it**:
set TSDB shipper mode to ReadOnly and disabled indexGatewayClient during
local query run. Also, I increase index downloading timeout to 1m
because the users run the query from local machines that not always have
more than 100Mbps

**Which issue(s) this PR fixes**:
Fixes #9555 

**Special notes for your reviewer**:
Unfortunately, we do not have similar tests and test architecture to
cover it with unit tests properly.

**Checklist**
- [x] Reviewed the
[`CONTRIBUTING.md`](https://github.com/grafana/loki/blob/main/CONTRIBUTING.md)
guide (**required**)
- [ ] Documentation added
- [ ] Tests updated
- [x] `CHANGELOG.md` updated
- [x] Changes that require user attention or interaction to upgrade are
documented in `docs/sources/upgrading/_index.md`
- [x] For Helm chart changes bump the Helm chart version in
`production/helm/loki/Chart.yaml` and update
`production/helm/loki/CHANGELOG.md` and
`production/helm/loki/README.md`. [Example
PR](d10549e3ec)
2023-06-06 22:35:48 +03:00
Salva Corts
56bbb43748 Logcli - Better logging when object cannot get loaded from object store (#9194)
**What this PR does / why we need it**:
This PR improves the error messaging for Logcli when an object cannot be
downloaded from the store by printing the name of the object along with
the error.

**Which issue(s) this PR fixes**:
Internal support escalation

**Special notes for your reviewer**:
There are other places where GetObject is called:
- `indexStorageClient.GetFile`
- `indexStorageClient.GetUserFile`

Looks like both of them are used only by the compactor and the table
manager. IIUC, these functions are not used by LogCLI.

**Checklist**
- [ ] Reviewed the
[`CONTRIBUTING.md`](https://github.com/grafana/loki/blob/main/CONTRIBUTING.md)
guide (**required**)
- [ ] Documentation added
- [ ] Tests updated
- [ ] `CHANGELOG.md` updated
- [ ] Changes that require user attention or interaction to upgrade are
documented in `docs/sources/upgrading/_index.md`
2023-04-19 15:40:22 +02:00
Ed Welch
edc6b0bff7 Loki: Add a limit for the [range] value on range queries (#8343)
Signed-off-by: Edward Welch <edward.welch@grafana.com>

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

Loki does not currently split queries by time to a value smaller than
what's in the [range] of a range query.

Example

```
sum(rate({job="foo"}[2d]))
```

Imagine now this query being executed over a longer window of a few days
with a step of something like 30m.

Every step evaluation would query the last [2d] of data.

There are use cases where this is desired, specifically if you force the
step to match the value in the range, however what is more common is
someone accidentally uses `[$__range]` in here instead of
`[$__interval]` within Grafana and then sets the query time selector to
a large value like 7 days.

This PR adds a limit which will fail queries that set the [range] value
higher than the configured limit.

It's disabled by default.

In the future it may be possible for Loki to perform splits within the
[range] and remove the need for this limit, but until then this can be
an important safeguard in clusters with a lot of data.


**Which issue(s) this PR fixes**:
Fixes #8746

**Special notes for your reviewer**:

**Checklist**
- [ ] Reviewed the
[`CONTRIBUTING.md`](https://github.com/grafana/loki/blob/main/CONTRIBUTING.md)
guide (**required**)
- [ ] Documentation added
- [ ] Tests updated
- [ ] `CHANGELOG.md` updated
- [ ] Changes that require user attention or interaction to upgrade are
documented in `docs/sources/upgrading/_index.md`

---------

Signed-off-by: Edward Welch <edward.welch@grafana.com>
Co-authored-by: Karsten Jeschkies <karsten.jeschkies@grafana.com>
Co-authored-by: Vladyslav Diachenko <82767850+vlad-diachenko@users.noreply.github.com>
2023-03-31 08:27:23 -04:00
Karsten Jeschkies
94725e7908 Define RequiredLabels query limit. (#8851)
**What this PR does / why we need it**:
Some end-users can impose great workload on a cluster by selecting too
many streams in their queries. We should be able to limit them.

Therefore we introduce a new limit `RequiredLabelMatchers` which list
label names that must be included in the stream selectors.

The implementation follows the same approach as for max query limit.

**Which issue(s) this PR fixes**:
Fixes #8745

**Checklist**
- [ ] Reviewed the
[`CONTRIBUTING.md`](https://github.com/grafana/loki/blob/main/CONTRIBUTING.md)
guide (**required**)
- [x] Documentation added
- [x] Tests updated
- [x] `CHANGELOG.md` updated
- [ ] Changes that require user attention or interaction to upgrade are
documented in `docs/sources/upgrading/_index.md`
2023-03-23 17:03:16 +01:00
Callum Styan
9a2a038f43 Allow passing of context to query related limits functions (#8689)
In this PR we're allowing for passing of a `context.Context` via the
Limits interfaces (some of which are new, to clean up
hardcoding/embedding of `validation.Overrides`) This is based on
work/ideas by @jeschkies .

Fixes #8694

---------

Signed-off-by: Callum Styan <callumstyan@gmail.com>
Co-authored-by: Karsten Jeschkies <karsten.jeschkies@grafana.com>
2023-03-03 16:04:01 +01:00
Karsten Jeschkies
2f8d771c6b Fix logcli parallel download deadlock. (#8553) 2023-02-17 17:30:18 +01:00
Angus Dippenaar
42522d794a logcli: Add parallel flags (#8518) 2023-02-16 14:56:05 +01:00
Karsten Jeschkies
1875a1d6d8 Fetch all entries with logcli if limit==0. (#8537) 2023-02-16 09:45:45 +01:00
Christian Haudum
2139dbf55f [LogCLI] Load tenant-specific schema config file when using --remote-schema (#8413)
Signed-off-by: Christian Haudum <christian.haudum@gmail.com>
2023-02-06 15:07:59 +01:00
Salva Corts
7ad413e87d Re-stablish tailing websocket connection if it's closed unexpectedly. (#8374) 2023-02-03 15:21:24 +01:00
Danny Kopping
a63ad06509 Querier/Ruler: query blocker (#7785)
Block malicious or expensive queries using a per-tenant runtime configuration.
2022-11-28 10:13:11 +02:00