mirror of https://github.com/grafana/loki
Tag:
Branch:
Tree:
bfa2a1df65
2005.12.08-limits
2025.08.04_metricsQuery
add-cleanup-branches-workflow
add-fallback-batcher
add-time-snap-middleware
aggregator-columnar
alt-err-prop
arrow-batch-agg-sorting
arve/add-claude.md
arve/remove_global_name_validation
ashwanth/restructure-query-section
auto-triager
aws-bug
backport-13116-to-release-3.3.x
backport-14221-to-release-3.2.x
backport-14780-to-release-3.2.x
backport-16045-to-k239
backport-17054-to-k249
backport-17129-to-k277
backport-21254-to-k297
backport-21990-to-release-3.6.x
backport-21990-to-release-3.7.x
backport-21995-to-release-3.6.x
backport-21995-to-release-3.7.x
backport-22000-to-release-3.7.x
benchmark-improvements
benclive/add-unique-parsed-keys-to-pointers
benclive/batch-aggregator-add
benclive/buffer-nodesource-channel
benclive/caching-logs
benclive/cleanup-partial-downloads
benclive/columnar-reader-impl
benclive/custom-stream-tools
benclive/dataobj-consumer-autoresearch
benclive/fix-range-agg-without-by
benclive/hedge-requests-exp
benclive/implement-tsdb-writer-for-dataobj-consumers
benclive/index-compaction-poc
benclive/index-compaction-poc-2
benclive/index-testing-wip
benclive/k289-backport
benclive/k305-predicate-error
benclive/push-build-artifacts-to-gar
benclive/refactor-aggregator-tests
benclive/respect-encoding-flags-compat
benclive/scan-kafka
benclive/update-github-runners-to-use-free-or-self-hosted
benton/loki-mixin-updates
bound-parallelism-slicefor
callum-pipeline-sanitize-sm-values
callum-stream_limit-insights
callum-track-max-labels
cancel-delete-request-with-details-handler
chaudum/cleanup-ingester
chaudum/fix-blocked-query-edgecase
chaudum/generic-dataobj-section
chaudum/go-yaml
chaudum/inmemory-kafka
chaudum/k259
chaudum/metastore-toc-bucket
chaudum/module-cleanup
chaudum/move-state-workflow
chaudum/remove-deprecated-api-endpoints
chaudum/remove-deprecated-storage-backends
chaudum/remove-write-read-backend-targets
chaudum/renovate-rules-for-dependencies
chaudum/update-renovate-json
check-inverse-postings
columnar-agg
compare-igw-metastore
compare-igw-metastore2
config-parsing-hooks-refactor
dahoppe/claude/shuffle-shard-optimisation
dahoppe/heap-usage-metrics
dahoppe/load-shed-while-decompressing
dahoppe/pattern-tee-bytes-metric
dahoppe/shuffle-sharding-experimentation
danhopper/automemlimit
danhopper/colliding-metric-names
danhopper/fewer-goroutines-distributor
danhopper/no-more-shuffle-sharding
dataobj-compactor/coordinator-loop
dataobj-compactor/index-merge-executor
dataobj-compactor/marker-management
dataobj-inspect-upgrade-otel
dataobj-store-sort-order
dedupe-metric-queries
dedupe-ranges
dependabot/go_modules/golang.org/x/crypto-0.45.0
dependabot/go_modules/operator/api/loki/golang.org/x/net-0.38.0
dependabot/go_modules/operator/golang.org/x/crypto-0.45.0
deps-update/main-github.comalecthomaschromav2
deps-update/main-github.comalicebobminiredisv2
deps-update/main-github.comawsaws-sdk-go-v2services3
deps-update/main-github.combaidubcebce-sdk-go
deps-update/main-github.combugerjsonparser
deps-update/main-github.comgo-sql-drivermysql
deps-update/main-github.comklauspostcompress
deps-update/main-github.comleodidogo-syslogv4
deps-update/main-github.compresslygoosev3
deps-update/main-github.comredisgo-redisv9
deps-update/main-github.comshirougopsutilv4
deps-update/main-github.comtwmbfranz-go
deps-update/main-github.comtwmbfranz-gopkgkadm
deps-update/main-go-github.com-apache-thrift-vulnerability
deps-update/main-go-github.com-containerd-containerd-v2-vulnerability
deps-update/main-go-go.opentelemetry.io-otel-vulnerability
deps-update/main-go-golang.org-x-crypto-vulnerability
deps-update/main-go-golang.org-x-net-vulnerability
deps-update/main-go-golang.org-x-sys-vulnerability
deps-update/main-go.opentelemetry.iocollectorpdata
deps-update/main-google.golang.orgapi
deps-update/main-google.golang.orggrpc
deps-update/main-k8s.ioapimachinery
deps-update/main-lock-file-maintenance
deps-update/main-major-github.comtwmbfranz-gopkgkmsg
deps-update/release-3.5.x-go-golang.org-x-crypto-vulnerability
deps-update/release-3.5.x-go-google.golang.org-grpc-vulnerability
deps-update/release-3.6.x-go
deps-update/release-3.6.x-go-github.com-containerd-containerd-v2-vulnerability
deps-update/release-3.6.x-go-github.com-grafana-loki-v3-vulnerability
deps-update/release-3.6.x-go-github.com-prometheus-prometheus-vulnerability
deps-update/release-3.6.x-go-go.opentelemetry.io-otel-vulnerability
deps-update/release-3.6.x-go-golang.org-x-crypto-vulnerability
deps-update/release-3.6.x-go-golang.org-x-net-vulnerability
deps-update/release-3.6.x-go-golang.org-x-sys-vulnerability
deps-update/release-3.6.x-golang-version-go-vulnerability
deps-update/release-3.7.x-go-github.com-apache-thrift-vulnerability
deps-update/release-3.7.x-go-github.com-containerd-containerd-v2-vulnerability
deps-update/release-3.7.x-go-go.opentelemetry.io-otel-sdk-vulnerability
deps-update/release-3.7.x-go-go.opentelemetry.io-otel-vulnerability
deps-update/release-3.7.x-go-golang.org-x-crypto-vulnerability
deps-update/release-3.7.x-go-golang.org-x-net-vulnerability
deps-update/release-3.7.x-go-golang.org-x-sys-vulnerability
deps-update/release-3.7.x-golang-version-go-vulnerability
docs-nvdh-log-queries
dont-log-every-indexset-call-
emit-events-without-debuggnig
enable-az-limits
fcjack/image-workflows
feat/dataobj-tsdb
find-correctness-bugs
fix-discarded-otlp-volume
fix/range-agg-step-alignment-v2
gerboland/loki-data-chunk-fetcher
grobinson/add-cluster-namespace-segmentation-key
grobinson/add-ctx-builder-flush
grobinson/add-estimated-rate-metric
grobinson/add-gauge-buffered-events
grobinson/add-gauge-num-sections
grobinson/add-lag-collector
grobinson/add-metric-time-partition-estimate
grobinson/add-rate-service
grobinson/add-separate-rate-store-limits-service
grobinson/approx-shuffle-shard-within-tenant-shuffle
grobinson/avoid-map-regrow
grobinson/avoid-map-regrow-k289
grobinson/build-image-ops-17-03-2026
grobinson/dedicated-first-two-partitions-late-logs
grobinson/dont-increment-atomic-just-to-check-limit
grobinson/drop-traffic-when-buffer-full
grobinson/experiment-different-builders-for-old-logs
grobinson/experiment-shard-stream-hash-within-segment-subring
grobinson/fix-limits-kafka-backoff
grobinson/fix-misnamed-metric
grobinson/fix-race-condition-in-tracker
grobinson/fix-race-in-builder-tests
grobinson/include-labels-in-size-calc
grobinson/limited-reader-claude
grobinson/no-cancel-producer
grobinson/rateservice
grobinson/remove-kotel
grobinson/run-gc-after-flush
grobinson/run-gc-after-flush-2
grobinson/split-partitions-into-old-and-new-entries
grobinson/support-parallel-flush
grobinson/test-lag-collector-ingesters
grobinson/test-optimizations-shuffle-shard
grobinson/test-p95-rate
grobinson/track-buffered-bytes-pattern-tee
grobinson/track-consumption-lag-offsets
grobinson/use-consumer-index-builders
grobinson/use-default-size-maps-to-avoid-reallocs
grobinson/use-local-distributor-rate-store-segmentation-keys
grobinson/use-stream-size-in-update-rates
grobinson/use-xxhash-for-better-avalanche-effect
grobinson/wip
grobinson/wip-flush-in-background
grobinson/wip2
handle-errors-per-category
hay-kot/loki-replay-compaction-research
helm-chart-tagged-6.30.0
helm-chart-tagged-6.44.0
helm-chart-tagged-6.56.0
helm-chart-tagged-7.1.0
helm-chart-weekly-6.55.0
helm-chart-weekly-7.1.0
helm-chart-weekly-7.2.0
hundredwatt/dataobj-consumer-autoresearch
ignore-yaml-errors
index-builder-lag-report-only
index-gateway-dataobj-tsdb-dualresolve
ingest-pipelines
isolate-sort-metrics
ivkalita/metastore-distributed-plus-scheduler
ivkalita/toc-aligned-logsobj-builders
jnewbigin/build-images
jnewbigin/lbac
jnewbigin/partition-metrics
k100
k101
k102
k103
k104
k105
k106
k107
k108
k109
k110
k111
k112
k113
k114
k115
k116
k117
k118
k119
k12
k120
k121
k122
k123
k124
k125
k126
k127
k128
k129
k13
k130
k131
k132
k133
k135
k136
k137
k138
k139
k14
k140
k141
k142
k143
k144
k145
k146
k147
k148
k149
k15
k150
k151
k152
k153
k154
k155
k156
k157
k158
k159
k16
k160
k161
k162
k163
k164
k165
k166
k167
k168
k169
k17
k170
k171
k172
k173
k174
k175
k176
k177
k178
k179
k18
k180
k181
k182
k183
k184
k185
k186
k187
k188
k189
k19
k190
k191
k192
k193
k194
k195
k195-backup
k196
k197
k198
k199
k20
k200
k201
k202
k203
k204
k205
k206
k207
k208
k209
k21
k210
k211
k212
k213
k214
k215
k216
k217
k218
k219
k22
k220
k221
k222
k228
k229
k23
k230
k231
k232
k233
k234
k235
k236
k237
k238
k239
k24
k240
k241
k242
k243
k244
k245
k246
k246-with-per-tenant-ruler-wal-replay
k247
k248
k248-distributor-lvl-detection
k248-level-detection-debugging
k248-levels-as-index
k249
k25
k250
k251
k252
k253
k254
k255
k256
k257
k258
k259
k26
k260
k261
k262
k263
k264
k265
k266
k267
k268
k269
k27
k270
k271
k272
k273
k274
k275
k276
k277
k278
k279
k28
k280
k281
k282
k283
k284
k284-ewelch
k284-metastore-improv
k285
k286
k287
k288
k289
k29
k290
k291
k291-rangeagg-shard
k292
k293
k294
k295
k296
k297
k298
k299
k30
k300
k301
k302
k303
k304
k305
k306
k307
k308
k31
k32
k33
k34
k35
k36
k37
k38
k39
k40
k41
k42
k43
k44
k45
k46
k47
k48
k49
k50
k51
k52
k53
k54
k55
k56
k57
k58
k59
k60
k61
k62
k63
k64
k65
k66
k67
k68
k69
k70
k71
k72
k73
k74
k75
k76
k77
k78
k79
k80
k81
k82
k83
k84
k85
k86
k87
k88
k89
k90
k91
k92
k93
k94
k95
k96
k97
k98
k99
kk/test
label-filter-predicate-pushdown
leizor/policy-reject-old-samples
logql-analyzer-wasm
main
meher/a-separate-trace-for-engine-execution
meher/local-worker-setup
meher/log-partition-ring-cache-map-size
meher/parition-ring-manual-disable
meher/persistent-workerLoop-per-worker-connection
meher/query-lab
meher/remove-frontend-rule
meher/worker-phases-histogram
paul1r/k294_dupes
periklis/k280-max-query-bytes-read
periklis/max-query-bytes-read
push-rnvszrozvuoq
query-tee-mismatch-analysis-tool
query-timestamp-validation
rangeaggonly
rebase-idiomatic-worker-pattern
release-2.0.1
release-2.2
release-2.2.1
release-2.3
release-2.4
release-2.5.x
release-2.6.x
release-2.7.x
release-2.8.x
release-2.8.x-fix-failing-test
release-2.9.x
release-3.0.x
release-3.1.x
release-3.2.x
release-3.3.x
release-3.4.x
release-3.5.x
release-3.6.x
release-3.7.0-from-k
release-3.7.x
release-please--branches--k300
release-please--branches--k301
release-please--branches--k303
release-please--branches--k304
release-please--branches--k305
release-please--branches--k306
release-please--branches--k307
release-please--branches--k308
release-please--branches--main--components--operator
release-please--branches--release-2.9.x
release-please--branches--release-3.5.x
remote-rule-evaluator-middleware
remove-early-eof
reuse-labels-in-aggregator
salvacorts/k289/debub-lbac-volume
salvacorts/multi-merge
salvacorts/over-sophie-predicateclamp
salvacorts/reuse-forward-allo-headers
salvacorts/scan-cache-stats
salvacorts/sjwtaskclamp›-with-ashwanth-changes
salvacorts/task_ids
scantimerangepushup
scheduler-assignlock-granular
scheduler_contentions
shantanu/dataobj-compactor
shantanu/dedupe-with-sm
shantanu/fix-k290-deps
shantanu/fix-patterns-newlines
shantanu/tmp-fix-proj-pushdown
shantanu/tmp-proj-pushdown-bug
shantanu/update-go-deps
shantanu/use-yarn-release-workflows
sjwbillingtest
sjwpoolmemory
sjwtaskclamp
sjwtaskclamp2
skip-recent-queries-comparison
solid-moon-2
sophiewaldman-patch-1
sp/fix-discover-service-name
spiridonov-agg-perf-2
spiridonov-agg-sharding
spiridonov-agg-sharding-2
spiridonov-engine-sandbox
start-replay-support
stop-using-retry-flag
structured-metadata-push-down-3
svennergr-patch-1
task-batch-assign
test-gar-upload/1
test-gar-upload/v0.0.1
test-labeler
test-query-limits-fixes
test-workflow
thor-ingestion
thor-working-version
tinitiuset/ft-loki-mixin
tpatterson/expose-partition-ring
trevorwhitney/structured-metadata-push-down
twhitney/goldfish-mcp
update-prometheus
update-version-to-1.26.3
wire-dispatch
wire-metrics
workflow-helm-docs-install
wrap-downloading-file-errors
xcap-coverage
xcap-pipeline-inject
2.8.3
helm-loki-3.0.0
helm-loki-3.0.1
helm-loki-3.0.2
helm-loki-3.0.3
helm-loki-3.0.4
helm-loki-3.0.5
helm-loki-3.0.6
helm-loki-3.0.7
helm-loki-3.0.8
helm-loki-3.0.9
helm-loki-3.1.0
helm-loki-3.10.0
helm-loki-3.2.0
helm-loki-3.2.1
helm-loki-3.2.2
helm-loki-3.3.0
helm-loki-3.3.1
helm-loki-3.3.2
helm-loki-3.3.3
helm-loki-3.3.4
helm-loki-3.4.0
helm-loki-3.4.1
helm-loki-3.4.2
helm-loki-3.4.3
helm-loki-3.5.0
helm-loki-3.6.0
helm-loki-3.6.1
helm-loki-3.7.0
helm-loki-3.8.0
helm-loki-3.8.1
helm-loki-3.8.2
helm-loki-3.9.0
helm-loki-4.0.0
helm-loki-4.1.0
helm-loki-4.10.0
helm-loki-4.2.0
helm-loki-4.3.0
helm-loki-4.4.0
helm-loki-4.4.1
helm-loki-4.4.2
helm-loki-4.5.0
helm-loki-4.5.1
helm-loki-4.6.0
helm-loki-4.6.1
helm-loki-4.6.2
helm-loki-4.7.0
helm-loki-4.8.0
helm-loki-4.9.0
helm-loki-5.0.0
helm-loki-5.1.0
helm-loki-5.10.0
helm-loki-5.11.0
helm-loki-5.12.0
helm-loki-5.13.0
helm-loki-5.14.0
helm-loki-5.14.1
helm-loki-5.15.0
helm-loki-5.17.0
helm-loki-5.18.0
helm-loki-5.18.1
helm-loki-5.19.0
helm-loki-5.2.0
helm-loki-5.20.0
helm-loki-5.21.0
helm-loki-5.22.0
helm-loki-5.22.1
helm-loki-5.22.2
helm-loki-5.23.0
helm-loki-5.23.1
helm-loki-5.24.0
helm-loki-5.25.0
helm-loki-5.26.0
helm-loki-5.27.0
helm-loki-5.28.0
helm-loki-5.29.0
helm-loki-5.3.0
helm-loki-5.3.1
helm-loki-5.30.0
helm-loki-5.31.0
helm-loki-5.32.0
helm-loki-5.33.0
helm-loki-5.34.0
helm-loki-5.35.0
helm-loki-5.36.0
helm-loki-5.36.1
helm-loki-5.36.2
helm-loki-5.36.3
helm-loki-5.37.0
helm-loki-5.38.0
helm-loki-5.39.0
helm-loki-5.4.0
helm-loki-5.40.1
helm-loki-5.41.0
helm-loki-5.41.1
helm-loki-5.41.2
helm-loki-5.41.3
helm-loki-5.41.4
helm-loki-5.41.5
helm-loki-5.41.6
helm-loki-5.41.7
helm-loki-5.41.8
helm-loki-5.41.9-distributed
helm-loki-5.41.9-distributed-rc2
helm-loki-5.42.0
helm-loki-5.42.1
helm-loki-5.42.2
helm-loki-5.42.3
helm-loki-5.43.0
helm-loki-5.43.1
helm-loki-5.43.2
helm-loki-5.43.3
helm-loki-5.43.4
helm-loki-5.43.5
helm-loki-5.43.6
helm-loki-5.43.7
helm-loki-5.44.0
helm-loki-5.44.1
helm-loki-5.44.2
helm-loki-5.44.3
helm-loki-5.44.4
helm-loki-5.45.0
helm-loki-5.46.0
helm-loki-5.47.0
helm-loki-5.47.1
helm-loki-5.47.2
helm-loki-5.48.0
helm-loki-5.5.0
helm-loki-5.5.1
helm-loki-5.5.10
helm-loki-5.5.11
helm-loki-5.5.12
helm-loki-5.5.2
helm-loki-5.5.3
helm-loki-5.5.4
helm-loki-5.5.5
helm-loki-5.5.6
helm-loki-5.5.7
helm-loki-5.5.8
helm-loki-5.5.9
helm-loki-5.6.0
helm-loki-5.6.1
helm-loki-5.6.2
helm-loki-5.6.3
helm-loki-5.6.4
helm-loki-5.7.1
helm-loki-5.8.0
helm-loki-5.8.1
helm-loki-5.8.10
helm-loki-5.8.11
helm-loki-5.8.2
helm-loki-5.8.3
helm-loki-5.8.4
helm-loki-5.8.5
helm-loki-5.8.6
helm-loki-5.8.7
helm-loki-5.8.8
helm-loki-5.8.9
helm-loki-5.9.0
helm-loki-5.9.1
helm-loki-5.9.2
helm-loki-6.0.0
helm-loki-6.1.0
helm-loki-6.10.0
helm-loki-6.10.1
helm-loki-6.10.2
helm-loki-6.11.0
helm-loki-6.12.0
helm-loki-6.15.0
helm-loki-6.16.0
helm-loki-6.18.0
helm-loki-6.19.0
helm-loki-6.19.0-weekly.227
helm-loki-6.2.0
helm-loki-6.2.1
helm-loki-6.2.2
helm-loki-6.2.3
helm-loki-6.2.4
helm-loki-6.2.5
helm-loki-6.20.0
helm-loki-6.20.0-weekly.229
helm-loki-6.21.0
helm-loki-6.22.0
helm-loki-6.22.0-weekly.230
helm-loki-6.23.0
helm-loki-6.23.0-weekly.231
helm-loki-6.24.0
helm-loki-6.24.0-weekly.232
helm-loki-6.24.1
helm-loki-6.25.0
helm-loki-6.25.1
helm-loki-6.26.0
helm-loki-6.27.0
helm-loki-6.28.0
helm-loki-6.29.0
helm-loki-6.3.0
helm-loki-6.3.1
helm-loki-6.3.2
helm-loki-6.3.3
helm-loki-6.3.4
helm-loki-6.30.0
helm-loki-6.30.1
helm-loki-6.31.0
helm-loki-6.32.0
helm-loki-6.33.0
helm-loki-6.34.0
helm-loki-6.35.0
helm-loki-6.35.1
helm-loki-6.36.0
helm-loki-6.36.1
helm-loki-6.37.0
helm-loki-6.38.0
helm-loki-6.39.0
helm-loki-6.4.0
helm-loki-6.4.1
helm-loki-6.4.2
helm-loki-6.40.0
helm-loki-6.41.0
helm-loki-6.41.1
helm-loki-6.42.0
helm-loki-6.43.0
helm-loki-6.44.0
helm-loki-6.45.0
helm-loki-6.45.1
helm-loki-6.45.2
helm-loki-6.46.0
helm-loki-6.48.0
helm-loki-6.49.0
helm-loki-6.5.0
helm-loki-6.5.1
helm-loki-6.5.2
helm-loki-6.50.0
helm-loki-6.51.0
helm-loki-6.52.0
helm-loki-6.53.0
helm-loki-6.54.0
helm-loki-6.55.0
helm-loki-6.6.0
helm-loki-6.6.1
helm-loki-6.6.2
helm-loki-6.6.3
helm-loki-6.6.4
helm-loki-6.6.5
helm-loki-6.6.6
helm-loki-6.7.0
helm-loki-6.7.1
helm-loki-6.7.2
helm-loki-6.7.3
helm-loki-6.7.4
helm-loki-6.8.0
helm-loki-6.9.0
helm-loki-7.0.0
operator/v0.0.1-test
operator/v0.0.2-test
operator/v0.10.0
operator/v0.10.1
operator/v0.4.0
operator/v0.5.0
operator/v0.6.0
operator/v0.6.1
operator/v0.6.2
operator/v0.7.0
operator/v0.7.1
operator/v0.8.0
operator/v0.9.0
pkg/logql/syntax/v0.0.1
v0.1.0
v0.2.0
v0.3.0
v0.4.0
v1.0.0
v1.0.1
v1.0.2
v1.1.0
v1.2.0
v1.3.0
v1.4.0
v1.4.1
v1.5.0
v1.6.0
v1.6.1
v2.0.0
v2.0.1
v2.1.0
v2.2.0
v2.2.1
v2.3.0
v2.4.0
v2.4.1
v2.4.2
v2.5.0
v2.6.0
v2.6.1
v2.7.0
v2.7.1
v2.7.2
v2.7.3
v2.7.4
v2.7.5
v2.7.6
v2.7.7
v2.8.0
v2.8.1
v2.8.10
v2.8.11
v2.8.2
v2.8.3
v2.8.4
v2.8.5
v2.8.6
v2.8.7
v2.8.8
v2.8.9
v2.9.0
v2.9.1
v2.9.10
v2.9.11
v2.9.12
v2.9.13
v2.9.14
v2.9.15
v2.9.16
v2.9.17
v2.9.2
v2.9.3
v2.9.4
v2.9.5
v2.9.6
v2.9.7
v2.9.8
v2.9.9
v3.0.0
v3.0.1
v3.1.0
v3.1.1
v3.1.2
v3.2.0
v3.2.1
v3.2.2
v3.3.0
v3.3.1
v3.3.2
v3.3.3
v3.3.4
v3.4.0
v3.4.1
v3.4.2
v3.4.3
v3.4.4
v3.4.5
v3.4.6
v3.5.0
v3.5.1
v3.5.10
v3.5.11
v3.5.12
v3.5.2
v3.5.3
v3.5.4
v3.5.5
v3.5.6
v3.5.7
v3.5.8
v3.5.9
v3.6.0
v3.6.1
v3.6.10
v3.6.11
v3.6.2
v3.6.3
v3.6.4
v3.6.5
v3.6.6
v3.6.7
v3.6.8
v3.6.9
v3.7.0
v3.7.1
v3.7.2
${ noResults }
692 Commits (bfa2a1df65e233ce99fccd01df2130f440ebd166)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
c8d2c32002
|
feat: Introduce special header that tells Loki not to modify query results (#12327)
|
2 years ago |
|
|
863acc0152
|
chore(blooms): Make block query concurrency configurable (#12292)
A concurrency of 10 per worker seems to be too high for a reasonable 8GiB memory limit on bloom gateways. So this PR makes the concurrency configurable and uses a default of 4. Memory usage of loading block pages into memory therefore being: ``` worker_concurrency x block_query_concurrency x max_block_page_size x 2 ``` With current defaults: ``` 4 x 4 x 32MiB x 2 = 1GiB ``` Signed-off-by: Christian Haudum <christian.haudum@gmail.com> |
2 years ago |
|
|
d54e0871d4
|
chore(deps): Update Prometheus in Loki and Promtail (#12245)
This PR updates the Prometheus dependency in Loki and Promtail. The PR is required so that we can also update Grafana Agent to the latest Prometheus. Unfortunately, Promtail and Loki share the same go.mod file. |
2 years ago |
|
|
2544f003cf
|
chore: Add summary for received filters in bloom gateway (#12158)
|
2 years ago |
|
|
0ddf6fc49d
|
test: Fix for a few data races (#12129)
|
2 years ago |
|
|
609fdb3214
|
feat(querier/query-frontend): track and log congestion control latency (#12058)
Signed-off-by: Danny Kopping <danny.kopping@grafana.com> |
2 years ago |
|
|
4fa5148eb5
|
refactor: Pass query plan down to bloom gateway (#12037)
|
2 years ago |
|
|
fac5997b18
|
feat: Support split align and caching for instant metric query results (#11814)
Signed-off-by: Kaviraj <kavirajkanagaraj@gmail.com> |
2 years ago |
|
|
9e7725b31b
|
feat(metadata): introduce a separate split interval for recent query window (#11897)
|
2 years ago |
|
|
1c43991ddc
|
Remove `bloomcompactor.DayTable` in favour of `config.DayTime` (#11917)
Both structs shared the same semantics. This PR moves additional functionality from the `DayTable` to the `DayTime` struct. To get the table name of a day (ordinal number of day since unix epoch), call `DayTime.Table()`. Signed-off-by: Christian Haudum <christian.haudum@gmail.com> |
2 years ago |
|
|
b2e4cc39a8
|
Add mutex for t.stopped to prevent data races (#11933)
**What this PR does / why we need it**:
This addresses the data race present on the `t.stopped` variable in
`tail.go`.
```
==================
WARNING: DATA RACE
Write at 0x00c00098b198 by goroutine 568:
github.com/grafana/loki/pkg/querier.(*Tailer).close()
/Users/progers/dev/src/github.com/grafana/loki/pkg/querier/tail.go:272 +0x104
github.com/grafana/loki/pkg/querier.TestTailer.func7.2()
/Users/progers/dev/src/github.com/grafana/loki/pkg/querier/tail_test.go:169 +0x34
runtime.deferreturn()
/opt/homebrew/Cellar/go/1.21.6/libexec/src/runtime/panic.go:477 +0x34
testing.tRunner()
/opt/homebrew/Cellar/go/1.21.6/libexec/src/testing/testing.go:1595 +0x1b0
testing.(*T).Run.func1()
/opt/homebrew/Cellar/go/1.21.6/libexec/src/testing/testing.go:1648 +0x40
Previous read at 0x00c00098b198 by goroutine 569:
github.com/grafana/loki/pkg/querier.(*Tailer).loop()
/Users/progers/dev/src/github.com/grafana/loki/pkg/querier/tail.go:88 +0x13c
github.com/grafana/loki/pkg/querier.newTailer.func1()
/Users/progers/dev/src/github.com/grafana/loki/pkg/querier/tail.go:342 +0x34
Goroutine 568 (running) created at:
testing.(*T).Run()
/opt/homebrew/Cellar/go/1.21.6/libexec/src/testing/testing.go:1648 +0x5e8
github.com/grafana/loki/pkg/querier.TestTailer()
/Users/progers/dev/src/github.com/grafana/loki/pkg/querier/tail_test.go:158 +0x10dc
testing.tRunner()
/opt/homebrew/Cellar/go/1.21.6/libexec/src/testing/testing.go:1595 +0x1b0
testing.(*T).Run.func1()
/opt/homebrew/Cellar/go/1.21.6/libexec/src/testing/testing.go:1648 +0x40
Goroutine 569 (running) created at:
github.com/grafana/loki/pkg/querier.newTailer()
/Users/progers/dev/src/github.com/grafana/loki/pkg/querier/tail.go:342 +0x300
github.com/grafana/loki/pkg/querier.TestTailer.func7()
/Users/progers/dev/src/github.com/grafana/loki/pkg/querier/tail_test.go:168 +0x138
testing.tRunner()
/opt/homebrew/Cellar/go/1.21.6/libexec/src/testing/testing.go:1595 +0x1b0
testing.(*T).Run.func1()
/opt/homebrew/Cellar/go/1.21.6/libexec/src/testing/testing.go:1648 +0x40
==================
```
**Which issue(s) this PR fixes**:
Relates to: https://github.com/grafana/loki/issues/8586
**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
- [ ] 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](
|
2 years ago |
|
|
472496feb7
|
Parse JSON String arrays properly so string elements can be retrieved (#11921)
**What this PR does / why we need it**:
This PR imports the newly forked grafana/jsonparser over the
buger/jsonparser module. The latter has seemingly been abandoned. PR
10690 introduces a fix to the jsonparser module, which has been
incorporated into the grafana fork of the module.
The PR is designed to fix accessing string array elements from within a
JSON structure. For example, with the following JSON:
`{"log":{"message":{"content":{"misses":["a","b","c","d"]}}}}`
The Loki code, before this PR, when searching for `json misses =
"log.message.content.misses[0]" ` will result in an "Unknown value type
error". After this PR is merged, the result will assign `a` to the
`misses` variable.
**Which issue(s) this PR fixes**:
Fixes #[9179](https://github.com/grafana/loki/issues/9179)
https://github.com/grafana/loki/pull/10690
**Special notes for your reviewer**:
**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
- [x] 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](
|
2 years ago |
|
|
c277158f51
|
Cleanup data race associated with workerID var (#11922)
**What this PR does / why we need it**: A data race existed with the workerID variable, as it could be modified by multiple goroutines. Relates to: https://github.com/grafana/loki/issues/8586 -- Before fix: ``` go test -count=1 -race ./pkg/querier/worker ================== WARNING: DATA RACE Read at 0x00c000494108 by goroutine 229: github.com/grafana/loki/pkg/querier/worker.(*processorManager).concurrency.func1() /Users/progers/dev/src/github.com/grafana/loki/pkg/querier/worker/processor_manager.go:81 +0x118 Previous write at 0x00c000494108 by goroutine 222: github.com/grafana/loki/pkg/querier/worker.(*processorManager).concurrency() /Users/progers/dev/src/github.com/grafana/loki/pkg/querier/worker/processor_manager.go:70 +0x108 github.com/grafana/loki/pkg/querier/worker.(*querierWorker).resetConcurrency() /Users/progers/dev/src/github.com/grafana/loki/pkg/querier/worker/worker.go:267 +0x10c github.com/grafana/loki/pkg/querier/worker.(*querierWorker).AddressAdded() /Users/progers/dev/src/github.com/grafana/loki/pkg/querier/worker/worker.go:219 +0x868 github.com/grafana/loki/pkg/querier/worker.TestResetConcurrency.func1() /Users/progers/dev/src/github.com/grafana/loki/pkg/querier/worker/worker_test.go:64 +0x1c8 testing.tRunner() /opt/homebrew/Cellar/go/1.21.6/libexec/src/testing/testing.go:1595 +0x1b0 testing.(*T).Run.func1() /opt/homebrew/Cellar/go/1.21.6/libexec/src/testing/testing.go:1648 +0x40 Goroutine 229 (running) created at: github.com/grafana/loki/pkg/querier/worker.(*processorManager).concurrency() /Users/progers/dev/src/github.com/grafana/loki/pkg/querier/worker/processor_manager.go:75 +0xcc github.com/grafana/loki/pkg/querier/worker.(*querierWorker).resetConcurrency() /Users/progers/dev/src/github.com/grafana/loki/pkg/querier/worker/worker.go:267 +0x10c github.com/grafana/loki/pkg/querier/worker.(*querierWorker).AddressAdded() /Users/progers/dev/src/github.com/grafana/loki/pkg/querier/worker/worker.go:219 +0x868 github.com/grafana/loki/pkg/querier/worker.TestResetConcurrency.func1() /Users/progers/dev/src/github.com/grafana/loki/pkg/querier/worker/worker_test.go:64 +0x1c8 testing.tRunner() /opt/homebrew/Cellar/go/1.21.6/libexec/src/testing/testing.go:1595 +0x1b0 testing.(*T).Run.func1() /opt/homebrew/Cellar/go/1.21.6/libexec/src/testing/testing.go:1648 +0x40 Goroutine 222 (running) created at: testing.(*T).Run() /opt/homebrew/Cellar/go/1.21.6/libexec/src/testing/testing.go:1648 +0x5e8 github.com/grafana/loki/pkg/querier/worker.TestResetConcurrency() /Users/progers/dev/src/github.com/grafana/loki/pkg/querier/worker/worker_test.go:52 +0x1b0 testing.tRunner() /opt/homebrew/Cellar/go/1.21.6/libexec/src/testing/testing.go:1595 +0x1b0 testing.(*T).Run.func1() /opt/homebrew/Cellar/go/1.21.6/libexec/src/testing/testing.go:1648 +0x40 ================== --- FAIL: TestResetConcurrency (0.02s) --- FAIL: TestResetConcurrency/concurrency_is_correct_when_numTargets_does_not_divide_evenly_into_maxConcurrent (0.01s) testing.go:1465: race detected during execution of test testing.go:1465: race detected during execution of test FAIL FAIL github.com/grafana/loki/pkg/querier/worker 4.626s FAIL ``` -- After fix: ``` go clean -testcache go test -count=1 -race ./pkg/querier/worker ok github.com/grafana/loki/pkg/querier/worker 6.034s ``` **Which issue(s) this PR fixes**: Fixes #<issue number> **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 - [ ] 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]( |
2 years ago |
|
|
483ee56139
|
Inject downstream accumulator. (#11863)
**What this PR does / why we need it**: We inject the downstream accumulator into the downstreamer instead of constructing it on the first arrival of the first result. Since we know the query type before executing the first query we can pass the correct accumulator. This will allow us to define special `topk` or `sum by` accumulators in the future. **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]( |
2 years ago |
|
|
406b10c675
|
accidentally merged this from ##11333 (#11788)
**What this PR does / why we need it**: I did not intend to merge this change, reverting to what it was before merging #11333 |
2 years ago |
|
|
a064f5d670
|
feat: add release please config (#11333)
**What this PR does / why we need it**: The new release process is being developed in another repo for now as it enables much faster feedback loops. We are at the stage where we are pulling the Loki repo and building images, so it's time to move the `release-please` config into Loki, and configure it for the various packages we will be releasing. This PR adds the two basic configs that `release-please` requires. This PR does not change anything about the release process, it just enables us to keep iterating out of band until we're ready to move over. **Which issue(s) this PR fixes**: Re #11332 |
2 years ago |
|
|
e7b782b186
|
Query-frontend: use the same query split interval for generated cache keys (#11679)
**What this PR does / why we need it**: Follow up from #11535 (specifically from [this thread](https://github.com/grafana/loki/pull/11535#issuecomment-1887151515)), this PR modifies the results cache implementation to use the same interval for generating cache keys. |
2 years ago |
|
|
51899b521b
|
feat(metadata cache): adds max_metadata_cache_freshness (#11682)
**What this PR does / why we need it**: Adds `max_metadata_cache_freshness` to limit the metadata requests that get cached. When configured, only metadata requests with end time before `now - max_metadata_cache_freshness` are cacheable. _reason for setting the default to 24h?_ metric results cache can [extract samples for the desired time range from an extent]( |
2 years ago |
|
|
bcd03150c9
|
Query-frontend: customisable query splitting for queries overlapping `query_ingester_within` window (#11535)
**What this PR does / why we need it**: The config option `query_ingesters_within` defines the window during which logs _could_ be present on ingesters, and as such queriers will send queries to ingesters instead. `split_queries_by_interval` is defined to split queries into subqueries for increased parallelism. Aggressive query splitting within the `query_ingesters_within` window can result in overloading ingesters with unnecessarily large numbers of subqueries, which perversely can impact writes. `query_ingesters_within` is set to 3h by default. In Grafana Cloud Logs we set `split_queries_by_interval` as low as 15m (defaults to 1h), which would result in result in 3*60/15=12 requests. Every querier queries every ingester during this window, so that's 12 requests _per ingester per query_ which has the `query_ingesters_within` window in its time range _(i.e. a query from now to now-7d would include the `query_ingesters_within` window as well, now-3h to now-7d would not)_. However, we _do_ want to split queries so an ingester won't have to handle a query for a full `query_ingesters_within` window - this could involve a large amount of data. To account for this, this PR introduces a new option `split_ingester_queries_by_interval` on the query-frontend; this setting is disabled by default.  |
2 years ago |
|
|
e915efc7f8
|
fix(log results cache): compose empty response based on the request (#11657)
**What this PR does / why we need it**: Log results cache when handling a hit composes an empty response based on the cached request. But the limit or direction fields in the cached request need not match with the current request being served. This causes the log results cache to return a response with incorrect limit. This incorrect limit could then get applied when merging responses upstream (split by interval mw for ex.) This pr fixes this by composing the response based on the request being served. I also thought about updating the cache key to include both limit and direction to have a clear separation, but I left it as is for the following reason: if a time range contains no log lines, that result would not change irrespective of a different limit or direction **Which issue(s) this PR fixes**: Fixes #<issue number> **Special notes for your reviewer**: **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]( |
2 years ago |
|
|
627e09365b
|
Restore previous behaviour of no trailing newlines in HTTP error response bodies (#11606)
**What this PR does / why we need it**: #11487 introduced a regression which added trailing newlines to HTTP error response bodies, which may affect client integrations. This regression hasn't made it into the 2.9.x or 2.8.x releases yet so no backporting is necessary. |
2 years ago |
|
|
852becf227
|
results cache: add new stat `query_length_served` to measure cache effectiveness (#11589)
**What this PR does / why we need it**: cache hit rate that is currently being measured using metrics and stats does not account for the fact that a cache hit could return partial results. When we query the cache for a key, we get back a list of extents and these need no cover the entire (split) range of the cache key. This pr adds a new cache stat called `query_length_served` to better measure the cache effectiveness. ``` query_length - sum(length of downstream queries) ``` **Which issue(s) this PR fixes**: Fixes #<issue number> **Special notes for your reviewer**: **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 - [ ] 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]( |
2 years ago |
|
|
6c4699d8f7
|
Remove call to set default resolver (#11580)
**What this PR does / why we need it**: **Which issue(s) this PR fixes**: Fixes #<issue number> **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 - [ ] 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]( |
2 years ago |
|
|
ce574485cf
|
feat(caching): Support caching `/series` and `/labels` query results (#11539)
**What this PR does / why we need it**: Add support for caching metadata queries (both series and labels). caching happens after splitting similar to other types of queries. This pr adds the following configs to enable them. ``` cache_series_results: true|false (default false) cache_label_results: true|false (default false) ``` And the cache backend for them can be configured using `series_results_cache` and `label_results_cache` blocks under the `query_range` section. Currently the split interval for metadata queries is fixed and defaults to 24h, this pr makes it configurable by introducing `split_metadata_queries_by_interval` **Which issue(s) this PR fixes**: Fixes #<issue number> **Special notes for your reviewer**: **Checklist** - [x] Reviewed the [`CONTRIBUTING.md`](https://github.com/grafana/loki/blob/main/CONTRIBUTING.md) guide (**required**) - [x] 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]( |
2 years ago |
|
|
8d01cbf0c5
|
Merge quantile sketches as they arrive (#11544)
|
2 years ago |
|
|
18ea38883f
|
Do not reflect label names in request metrics' "route" label (#11551)
**Which issue(s) this PR fixes**: Fixes #11549 |
2 years ago |
|
|
afe146c884
|
Benchmark and improve sketch join (#11534)
**What this PR does / why we need it**:
We saw that `JoinQuantileSketchVector` was using too much memory. This
is a small step to improve the allocated memory.
```
pkg: github.com/grafana/loki/pkg/logql
│ main.log │ pool.log │
│ sec/op │ sec/op vs base │
JoinQuantileSketchVector-10 3.603µ ± 4% 2.631µ ± 0% -26.99% (p=0.002 n=6)
│ main.log │ pool.log │
│ B/op │ B/op vs base │
JoinQuantileSketchVector-10 8.344Ki ± 0% 2.539Ki ± 0% -69.57% (p=0.002 n=6)
│ main.log │ pool.log │
│ allocs/op │ allocs/op vs base │
JoinQuantileSketchVector-10 109.0 ± 0% 104.0 ± 0% -4.59% (p=0.002 n=6)
```
**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](
|
2 years ago |
|
|
0e5da205a6
|
structured metadata: track usage of structured metadata in queries (#11505)
**What this PR does / why we need it**: Adds support for tracking queries referencing structured metadata. It tracks the following kinds of references: * Fields in structured metadata used as label filters, `drop`/`keep` stages etc. in the query. * Fields in structured metadata used in metric queries like `uwrap` and `by` or `without` clauses in aggregations. **Checklist** - [x] Tests updated |
2 years ago |
|
|
62176339c4
|
Bloom querying: Propagate line filters from querier to bloom filter (#11492)
In order to query the bloom filters with the search strings from the user query, we need to propagate the line filters through the different implementations of the store, namely through the GetChunks function. In order to avoid converting data structures, the line filter from the syntax tree is used as custom protobuf type, because it is passed from querier to index gateway and from index gateway to bloom gateway. So far, the line filters request have not been tokenized to n-grams. This PR adds the ability to read the n-gram length from the block schema at query time and tokenizes the line filters from the input just ahead of searching the block. Signed-off-by: Christian Haudum <christian.haudum@gmail.com> |
2 years ago |
|
|
9aae25008d
|
Optimize series response format by using repeated fileds. (#11498)
**What this PR does / why we need it**:
The Protobuf map type is encodied as a repeated field of map entries.
Decoding them to a slice is much faster than decoding them into a map.
Since Loki is not using the fast key check for a map we can use the
slice decoding.
This change also allows us to decode the JSON directly into the right
protobuf struct. This doulbes the JSON decoding speed and reduces the
memory pressure by ~40%.
```
› go test -bench=. -run=^$ -count=10 ./pkg/querier/queryrange > before.log
› go test -bench=. -run=^$ -count=10 ./pkg/querier/queryrange > after.log
› benchstat before.log after.log
goos: darwin
goarch: arm64
pkg: github.com/grafana/loki/pkg/querier/queryrange
│ before.log │ after.log │
│ sec/op │ sec/op vs base │
ResponseMerge/mergeStreams_unlimited-10 32.36m ± 0% 32.63m ± 2% ~ (p=0.393 n=10)
ResponseMerge/mergeOrderedNonOverlappingStreams_unlimited-10 1.050m ± 1% 1.080m ± 3% +2.84% (p=0.005 n=10)
ResponseMerge/mergeStreams_limited-10 33.02m ± 0% 32.60m ± 1% -1.29% (p=0.004 n=10)
ResponseMerge/mergeOrderedNonOverlappingStreams_limited-10 15.11m ± 0% 15.07m ± 0% ~ (p=0.075 n=10)
_CodecDecodeLogs-10 4.395m ± 1% 4.364m ± 0% -0.72% (p=0.005 n=10)
_CodecDecodeSamples-10 16.97m ± 0% 16.84m ± 2% -0.77% (p=0.023 n=10)
_CodecDecodeSeries/application/vnd.google.protobuf-10 745.8µ ± 8% 736.8µ ± 12% ~ (p=0.739 n=10)
_CodecDecodeSeries/application/json;_charset=utf-8-10 15.37m ± 1% 10.60m ± 0% -31.03% (p=0.000 n=10)
_MergeResponses-10 1186.9m ± 2% 149.8m ± 1% -87.38% (p=0.000 n=10)
_UnwrapSeries-10 9.399m ± 1% 4.049m ± 0% -56.92% (p=0.000 n=10)
_DecodeMergeEncodeCycle-10 666.0m ± 3% 194.6m ± 0% -70.79% (p=0.000 n=10)
geomean 18.87m 12.51m -33.70%
│ before.log │ after.log │
│ B/op │ B/op vs base │
_CodecDecodeLogs-10 3.649Mi ± 0% 3.649Mi ± 0% ~ (p=0.364 n=10)
_CodecDecodeSamples-10 18.12Mi ± 0% 18.12Mi ± 0% ~ (p=0.926 n=10)
_CodecDecodeSeries/application/vnd.google.protobuf-10 7.647Mi ± 0% 7.647Mi ± 0% ~ (p=0.587 n=10)
_CodecDecodeSeries/application/json;_charset=utf-8-10 27.94Mi ± 0% 16.99Mi ± 0% -39.18% (p=0.000 n=10)
_MergeResponses-10 2.362Mi ± 0% 2.408Mi ± 0% +1.98% (p=0.000 n=10)
_UnwrapSeries-10 19.495Mi ± 0% 8.595Mi ± 0% -55.91% (p=0.000 n=10)
_DecodeMergeEncodeCycle-10 772.3Mi ± 0% 772.3Mi ± 0% ~ (p=0.912 n=10)
geomean 17.50Mi 14.54Mi -16.91%
│ before.log │ after.log │
│ allocs/op │ allocs/op vs base │
_CodecDecodeLogs-10 41.10k ± 0% 41.10k ± 0% ~ (p=1.000 n=10) ¹
_CodecDecodeSamples-10 411.9k ± 0% 411.9k ± 0% ~ (p=1.000 n=10)
_CodecDecodeSeries/application/vnd.google.protobuf-10 32.00 ± 0% 32.00 ± 0% ~ (p=1.000 n=10) ¹
_CodecDecodeSeries/application/json;_charset=utf-8-10 304.2k ± 0% 298.1k ± 0% -2.01% (p=0.000 n=10)
_MergeResponses-10 100.1k ± 0% 100.1k ± 0% -0.00% (p=0.002 n=10)
_UnwrapSeries-10 201.1k ± 0% 198.0k ± 0% -1.54% (p=0.000 n=10)
_DecodeMergeEncodeCycle-10 203.1k ± 0% 203.1k ± 0% ~ (p=0.621 n=10)
geomean 48.95k 48.70k -0.51%
¹ all samples are equal
```
**Checklist**
- [x] 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](
|
2 years ago |
|
|
be71a80b15
|
Implement hooks to instrument query pipelines (#11493)
This PR implements interfaces to inject new pipelines/extractors into the query path of queriers and ingesters. |
2 years ago |
|
|
a91f3f11b3
|
frontend: Use `net.JoinHostPort` to support IPv6 addresses (#10650)
Signed-off-by: Matthew Penner <me@matthewp.io> Co-authored-by: Periklis Tsirakidis <periklis@redhat.com> Co-authored-by: J Stickler <julie.stickler@grafana.com> |
2 years ago |
|
|
b18078827e
|
Map rpc Status back to user error (#11449)
**What this PR does / why we need it**: Errors forwarded from the querier to the frontend would be reported with the wrong error code and message. This change fixes this. **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]( |
2 years ago |
|
|
8dde7b9d49
|
Support tail requests with protobuf encoding. (#11426)
**What this PR does / why we need it**: The `TailRequest` would use `bytes plan` instead of `Plan plan`. The former is not well supported in gogoprotobuf. **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]( |
3 years ago |
|
|
f67fff3eb2
|
Approximate `quantile_over_time` (#10417)
**What this PR does / why we need it**:
This change shards `quantile_over_time` queries using t-digest or
DDSketch approximations. It can be enabled with `querier.shard_aggregations=quantile_over_time`.
Outstanding
- [x] Replace generic return type of `StepEvaluator` with interface
`StepResult`.
- [x] Send mapped query with quantile sketch expression from frontend to
querier over the wire.
- [x] Serialize sketches. See
https://github.com/influxdata/tdigest/issues/34
- [x] Add feature flag.
**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
- [x] 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](
|
3 years ago |
|
|
51567addc9
|
Wrap VolumeResponse. (#11402)
**What this PR does / why we need it**: This fixes a regression in `frontend.encoding=protobuf`: ``` body rpc error: code = Internal desc = invalid response format, got (*queryrange.VolumeResponse) ``` **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]( |
3 years ago |
|
|
5b8d0e666d
|
Remove querier wait time metric. (#11233)
**What this PR does / why we need it**: We would like to know how long a querier worker is idle to understand if workstealing would have an impact. The original metric was too noisy and its cardinality was too high. Instead, we are going to log the wait time. **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]( |
3 years ago |
|
|
489ac8d529
|
Extract results cache into new pkg (#11343)
**What this PR does / why we need it**: This extracts the results cache from `queryrangebase` into its own pkg so we can reuse it in other components such as the bloom-gateway without having to import `queryrangebase`. - Most of the logic inside `pkg/querier/queryrange/queryrangebase/results_cache.go` now lives in `pkg/storage/chunk/cache/results_cache/cache.go`. - Some of the tests in `pkg/querier/queryrange/queryrangebase/results_cache.go` are moved into pkg/storage/chunk/cache/results_cache/cache_test.go. - Note that here we don't have access to the types we use in `queryrangebase` so we created a new set of mock request/response types to test with. |
3 years ago |
|
|
b05544a939
|
Remove obsolete empty test in middleware. (#11304)
**What this PR does / why we need it**: A check for `len(queryRangeMiddleware) > 0` is always true so we can remove it. **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]( |
3 years ago |
|
|
10210b884c
|
Categorized Labels: Return empty JSON object if no parsed nor structured metadata labels (#11325)
This is a followup PR for https://github.com/grafana/loki/pull/10419 wrt this comment https://github.com/grafana/loki/pull/10419#discussion_r1406285386. If there is no parsed nor structured-metadata labels in a given entry, and the categorize-labels header is set, add an empty object to the entry array. For example, we currently return: ```json { "data": { "encodingFlags": [ "categorize-labels" ], "result": [ { "stream": { "agent": "promtail", "filename": "/var/log/nginx/json_access.log", "host": "appfelstrudel", "job": "nginx_access_log" }, "values": [ [ "1701096036028751750", "example line" ] ] } ] } } ``` But we want: ```json { "data": { "encodingFlags": [ "categorize-labels" ], "result": [ { "stream": { "agent": "promtail", "filename": "/var/log/nginx/json_access.log", "host": "appfelstrudel", "job": "nginx_access_log" }, "values": [ [ "1701096036028751750", "example line", {} <<<--- WE WANT THIS ] ] } ] } } ``` |
3 years ago |
|
|
d62d4e37d1
|
Bloom Gateway: Implement chunk filtering using workers that multiplex requests (#11181)
This change adds an internal request queue to the bloom gateway. Instead of executing every single request individually, which involves resolving bloom blocks, downloading them if needed and executing the chunk filtering, requests are now enqueued to the internal, per-tenant queue. The queue implements the same shuffle sharding mechanism as the queue in the query scheduler component. Workers then dequeue a batch of requests for a single tenant and multiplex them into a single processing task for each day. This has the big advantage that the chunks of multiple requests can be processed in a single sequential scan through a set a bloom blocks, without needing to skip back and forth within the binary stream of the block. --------- Signed-off-by: Christian Haudum <christian.haudum@gmail.com> |
3 years ago |
|
|
e6940691c9
|
Set query plan when copying LokiRequest (#11291)
**What this PR does / why we need it**: The recent change https://github.com/grafana/loki/pull/11246 requires that `LokiRequest.Plan` is always set. **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]( |
3 years ago |
|
|
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]( |
3 years ago |
|
|
8d34f857bc
|
Propagate trace ID with HTTP gRPC request. (#11251)
The changes in https://github.com/grafana/loki/pull/10688 did not propage the trace ID from the context. `Frontend.RoundTripGRPC` would inject the trace ID into the request. That's not done in `Frontend.Do`. This changes extends the `codec.EncodeRequest` to inject the trace ID there. This is more inline with other metadata. |
3 years ago |
|
|
30d0030bf9
|
inflight-logging: Add extra metadata to inflight requests logging (#11243)
**What this PR does / why we need it**:
logging: Add extra metadata to inflight requests
This adds extra metadata (similar to what we have in `metrics.go`) but
for queries in in-flight (both started and retrying)
Changes:
Adds following data
1. Query Hash
2. Start and End time
3. Start and End delta
4. Length of the query
5. Moved the helper util to `queryutil` package because of cyclic
dependencies with `logql` package.
**Which issue(s) this PR fixes**:
Fixes #<issue number>
**Special notes for your reviewer**:
Find the screenshots of log entries looks like (both in `retry.go` and
`roundtrip.go`)


**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](
|
3 years ago |
|
|
258a8b3108
|
Update nix configuration (#8452)
Fix nix configuration (mainly failing test), and break up various binaries (ie. logcli, promtail, loki, etc.) into their own pakcages. --------- Co-authored-by: Trevor Whitney <trevorjwhitney@gmail.com> |
3 years ago |
|
|
265018b729
|
populate empty resonse for IndexStatsResponse and VolumeResponse (#11209)
Fixes a panic when the underlying response struct is accessed but not populated after an out-of-bounds request is short-circuited via `NewEmptyResponse` [here](https://github.com/grafana/loki/blob/main/pkg/querier/queryrange/limits.go#L155-L164). This PR ensures the embedded types are not nil in accordance with the other variants in this function. |
3 years ago |
|
|
05c4b77ed0
|
Define QueryResponse and QueryRequest protobufs. (#10956)
**What this PR does / why we need it**:
This will be a follow up to https://github.com/grafana/loki/pull/10688
finally switching over to protos. Hang on tight!
Everything is behind the feature flag `-frontend.encoding=protobuf` which will disable the transcoding to HTTP and HTTPgRPC.
**Checklist**
- [ ] 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](
|
3 years ago |
|
|
979530b6b9
|
Propagate query metrics and cache num information. (#11176)
**What this PR does / why we need it**: https://github.com/grafana/loki/pull/10858 removed the extraction of the query time header on the querier side and the generation of the cache number. This change adds them back and uses the headers of the response format. **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]( |
3 years ago |
|
|
b1f9be5171
|
always align volume range timestamp to end of step (#11136)
**What this PR does / why we need it**: We had originally assumed that it would be weird for a user to get back a timeseries response from `volume_range` that didn't include a datapoint with a timestamp at the start of their requested range. This was a bad assumption. The `volume_range` endpoint is inherently doing aggregations. For each step, a datapoint is calculated representing the percent of chunk volumes that the selector appeared in. It therefore stands to reason that the steps volume was not that value until the end of the step time range, as we are to assume volume is monotonically increasing. The fact that we were using the start of the range made it difficult to turn this data into a per-second rate, which this PR aims to fix. **Which issue(s) this PR fixes**: Fixes #11134 |
3 years ago |