Tag:
Branch:
Tree:
bwplotka-patch-1
a2-scr-bak34
add-body-size-limit-global
add-chunkiterator-interface
alexg-content-negotiation
alexg-content-negotiation-2
alexg-content-negotiation-dont-advertise
alexg-remove-HEAD-1
alexg/fix-fallback-scrape
alexg/settable-user-agent
allow-swappable-engine
appenderv2-otlp
arct2
arthurctmeta
beorn7/lookback
beorn7/polymorphism
binop-fill-modifier
bp/append-docs
bwplotka-patch-1
bwplotka-patch-2
bwplotka-patch-3
bwplotka-patch-4
bwplotka-patch-5
bwplotka-patch-6
bwplotka/2_0_cmp
bwplotka/2_18_cmp
bwplotka/a2-remote
bwplotka/appenderv2
bwplotka/config-watch
bwplotka/debug17659
bwplotka/nhcb-wal-wbl
bwplotka/prw-initial
callum-filter-benchmark
callum-live-segment-test
callum-opportunistic-labels-cleanup
callum-remote-proto-2
callum-rw-e2e-dashboard-1
callum-rw-intern-unique
callum-rw-intern-v3
callum-rw-min-format
callum-rw-split-intern
callum-simplify-ts-filtering
callum-track-series-segment
callum-vt20
callum-watcher-poll-backoff
callum/data-in-calc
catch-sighup-early
cedwards/add-monotonicity-label
cedwards/add-otel-type-label
cedwards/add-temporality-label
cedwards/ooo-native-histograms-promql-tests
cedwards/temporality-label
cedwards/type-unit-annotations
chunkenc-bench
codesome/16781-poc
codesome/headlabels
codesome/issue-16704
codesome/query-rewrite
codesome/scrape-during-wal-replay
codesome/stale-series-compaction
combined-appender
csmarchbanks/arrow-native-histograms
csmarchbanks/arrow-responses
csmarchbanks/native-histogram-compact-format
csmarchbanks/native-histogram-json-format
csmarchbanks/native-histogram-verbose-format
csmarchbanks/optmize-arrow-responses
ct-storage-read2
ctwal
cut-2.54.2
debug832
default-hide-alert-annotations
delayed-name-removal-series-merge
dependabot/go_modules/github.com/hashicorp/consul/api-1.33.0
dependabot/go_modules/k8s-io-08aaead50f
exemplar-storage-separate-mvp
expand
extra-scrape-metrics
f17-test
faster-exemplars
feature/new-prom-ui
feature/shutdownscrape
fionaliao-function-bracketless
fionaliao-patch-1
fionaliao/3.0-migration-guide-fixes
fionaliao/delta-rate
fix-2.21-iter-latency
fix-2.21-latency
fix-sym-7373
fix-sym-7373-2
fix-sym-7373-3
fix/binop-output-labels
fix15538
for-cortex-1-4-1
histogram-charts
histogram-json-experiment
imprct
integrate-react
join
jvp/enable-otlp-endpoint-by-default
jvp/metadata-poc
jvp/range-duration-with-open-intervals
jvp/refactor-append-to-have-hints
jvp/refactor-append-to-have-hints-and-single-appendcall
jvp/refactor-append-to-have-hints-as-value
krajo/clarify-metadata
krajo/durations-api
krajo/engine-immutable-histograms
krajo/fix-commit-order
krajo/fix-flaky-nhcb-test
krajo/fix-nhcb-quantile-bug
krajo/mem-optimize-nhcb
krajo/nh-interpolate-below-zero
krajo/otlp-to-appender
krajo/prombench-base
krajo/prombench-pr
krajo/prombench-pr2
krajo/prombench-pr3
krajo/prombench-pr4
lazy-unsymbolize
lbl-optimize
main
manik1
manik2
mantine-ui-uplot
measure-alerts-filtering
mem/fix_8551
merge-main
multi-err-cause
native-histogram-charts
nav-settings
nexucis/sd-optimisation
nexucis/sofisticat-query
njpm/metadata-remote-write-wiring-2-update
njpm/rw2-main-sync-conflicts
njpm/rw2-sync-main-conflicts
njpm/tsdb-utf8-mixed-querying
om-complex
ooo-nh-fix
otel-3
otlp-to-appender-no-custom-labels
owilliams/no-suffixes
owilliams/st-wal
owilliams/utf8
owilliams/utf8-02-mimir
owilliams/utf8-03-reads
parenExprEnd
partial-response
pipe-promql
post-processing
pre-ooo
prom-common-update-0.43
prombenchtest
promselect
proposalprocess
protoopt-cache
protoparseopt
protoparseopt-v2
prw-shard-test
prw2ctpersample
react-travis-test-branch
redesign-parser-interface
release-0.16
release-0.18
release-0.20
release-1.1
release-1.2
release-1.3
release-1.4
release-1.5
release-1.6
release-1.7
release-1.8
release-1.8.2
release-2.0
release-2.1
release-2.10
release-2.11
release-2.12
release-2.13
release-2.14
release-2.15
release-2.16
release-2.17
release-2.18
release-2.19
release-2.2
release-2.20
release-2.21
release-2.22
release-2.23
release-2.24
release-2.25
release-2.26
release-2.27
release-2.28
release-2.29
release-2.3
release-2.30
release-2.30-merge
release-2.31
release-2.32
release-2.33
release-2.34
release-2.35
release-2.36
release-2.37
release-2.38
release-2.39
release-2.4
release-2.40
release-2.41
release-2.42
release-2.43
release-2.43+stringlabels
release-2.44
release-2.45
release-2.46
release-2.47
release-2.48
release-2.49
release-2.5
release-2.50
release-2.51
release-2.51+dedupelabels
release-2.52
release-2.53
release-2.54
release-2.54+dedupelabels
release-2.55
release-2.6
release-2.7
release-2.8
release-2.9
release-3.0
release-3.1
release-3.2
release-3.3
release-3.4
release-3.5
release-3.6
release-3.7
release-3.8
release-3.9
release-docs-formatting-fix
release-v2.50
remote-write-2.0
remote-write-checkpoint
remove-alertmanager
remove-circleci-windows-tests
removesds-buildtags
rename-kubecon
reprotest-meta
resharding
revert-10878-jvp/replay-wait-for-idle-dont-always-sleep
revert-13498-alexg-content-negotiation-2
revert-14513-fix-histogram-overlap-compaction-bug
revert-14809-patch-mem-issue
revert-37-17065
revert-8489-append
richih/examples
richih/remove_indirect_deps
rmremote_storage
rr
rr-proto
rule-page-followups
rw20-config
rw20-gen
rw20-helpers-gen
rw20-nhcb
scrape-bytes-scraped
scrapeAndReportbench
segfault-chunk-iter
series-hint
shutdown-select-bug
st-tsdbchunk1
superq/betteralign_promql
superq/drop_vendor
superq/fieldalignment
superq/help_link
superq/more_react
superq/test
superq/v2
test-rw-compression
testdata
textparsebench-manik1
tsdb-import
tsdb-import-csv
type_and_unit
type_and_unit_series
update-2.53-to-correct-place
v2.54.0+dedupelabels
vtproto-test
wal-version
watcher-opt
wip-play-prombench
write-req-content-size
write-v3
0.1.0
0.10.0
0.11.0
0.11.1
0.12.0
0.13.0
0.13.0rc2
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
0.14.0rc1
0.14.0rc2
0.14.0rc3
0.15.0
0.15.0rc1
0.15.0rc2
0.15.0rc3
0.15.1
0.16.0
0.16.0rc1
0.16.0rc2
0.16.1
0.16.2
0.17.0
0.17.0rc1
0.17.0rc2
0.18.0
0.18.0rc1
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.20.0
0.3.0
0.4.0
0.5.0
0.6.0
0.7.0
0.8.0
0.9.0
0.9.0rc1
0.9.0rc2
0.9.0rc3
0.9.0rc4
0.9.0rc5
all-tests-pass
checkout
dev
discovery-handle-discoverer-updates
v0.300.0
v0.300.0-beta.0
v0.300.0-beta.1
v0.300.0-rc.0
v0.300.0-rc.1
v0.300.1
v0.301.0
v0.301.0-rc.0
v0.301.0-rc.1
v0.302.0
v0.302.0-rc.0
v0.302.0-rc.1
v0.302.1
v0.303.0
v0.303.0-rc.0
v0.303.0-rc.1
v0.303.1
v0.304.0
v0.304.0-rc.0
v0.304.1
v0.304.2
v0.305.0
v0.306.0
v0.306.0-rc.0
v0.306.0-rc.1
v0.307.0
v0.307.0-rc.0
v0.307.1
v0.307.2
v0.307.3
v0.308.0
v0.308.0-rc.0
v0.308.0-rc.1
v0.308.1
v0.35.0
v0.35.0-rc1
v0.36.0
v0.36.0-rc0
v0.36.1
v0.36.2
v0.37.0
v0.37.0-rc.0
v0.37.0-rc.1
v0.37.1
v0.37.2
v0.37.3
v0.37.4
v0.37.5
v0.37.6
v0.37.7
v0.37.8
v0.37.9
v0.38.0
v0.38.0-rc.0
v0.39.0
v0.39.1
v0.39.2
v0.40.0
v0.40.0-rc.0
v0.40.1
v0.40.2
v0.40.3
v0.40.4
v0.40.5
v0.40.6
v0.40.7
v0.41.0
v0.41.0-rc.0
v0.42.0
v0.43.0
v0.43.0-rc.0
v0.43.0-rc.1
v0.43.1
v0.44.0
v0.44.0-rc.0
v0.44.0-rc.1
v0.44.0-rc.2
v0.45.0
v0.45.0-rc.0
v0.45.0-rc.1
v0.45.1
v0.45.2
v0.45.3
v0.45.4
v0.45.5
v0.45.6
v0.46.0
v0.46.0-rc.0
v0.47.0
v0.47.0-rc.0
v0.47.1
v0.47.2
v0.48.0
v0.48.0-rc.0
v0.48.0-rc.1
v0.48.0-rc.2
v0.48.1
v0.49.0
v0.49.0-rc.0
v0.49.0-rc.1
v0.49.0-rc.2
v0.49.1
v0.50.0
v0.50.0-rc.0
v0.50.0-rc.1
v0.50.1
v0.51.0
v0.51.1
v0.51.2
v0.52.0
v0.52.0-rc.0
v0.52.0-rc.1
v0.52.1
v0.53.0
v0.53.0-rc.0
v0.53.0-rc.1
v0.53.1
v0.53.2
v0.53.3
v0.53.4
v0.54.0
v0.54.0-rc.0
v0.54.1
v0.55.0
v0.55.1
v1.0.0
v1.0.0-rc.0
v1.0.1
v1.0.2
v1.1.0
v1.1.1
v1.1.2
v1.1.3
v1.2.0
v1.2.1
v1.2.2
v1.2.3
v1.3.0
v1.3.0-beta.0
v1.3.1
v1.4.0
v1.4.1
v1.5.0
v1.5.1
v1.5.2
v1.5.3
v1.6.0
v1.6.1
v1.6.2
v1.6.3
v1.7.0
v1.7.1
v1.7.2
v1.8.0
v1.8.1
v1.8.2
v1.99.0
v1.99.0-retract
v2.0.0
v2.0.0-alpha.0
v2.0.0-alpha.1
v2.0.0-alpha.2
v2.0.0-alpha.3
v2.0.0-beta.0
v2.0.0-beta.1
v2.0.0-beta.2
v2.0.0-beta.3
v2.0.0-beta.4
v2.0.0-beta.5
v2.0.0-rc.0
v2.0.0-rc.1
v2.0.0-rc.2
v2.0.0-rc.3
v2.1.0
v2.10.0
v2.10.0-rc.0
v2.11.0
v2.11.0-rc.0
v2.11.1
v2.11.2
v2.12.0
v2.12.0-rc.0
v2.13.0
v2.13.0-rc.0
v2.13.1
v2.14.0
v2.14.0-rc.0
v2.15.0
v2.15.0-rc.0
v2.15.1
v2.15.2
v2.16.0
v2.16.0-rc.0
v2.16.0-rc.1
v2.17.0
v2.17.0-rc.0
v2.17.0-rc.1
v2.17.0-rc.2
v2.17.0-rc.3
v2.17.0-rc.4
v2.17.1
v2.17.2
v2.18.0
v2.18.0-rc.0
v2.18.0-rc.1
v2.18.1
v2.18.2
v2.19.0
v2.19.0-rc.0
v2.19.1
v2.19.2
v2.19.3
v2.2.0
v2.2.0-rc.0
v2.2.0-rc.1
v2.2.1
v2.20.0
v2.20.0-rc.0
v2.20.0-rc.1
v2.20.1
v2.21.0
v2.21.0-rc.0
v2.21.0-rc.1
v2.22.0
v2.22.0-rc.0
v2.22.1
v2.22.2
v2.23.0
v2.23.0-rc.0
v2.24.0
v2.24.0-rc.0
v2.24.1
v2.25.0
v2.25.0-rc.0
v2.25.1
v2.25.2
v2.26.0
v2.26.0-rc.0
v2.26.1
v2.27.0
v2.27.0-rc.0
v2.27.1
v2.28.0
v2.28.0-rc.0
v2.28.1
v2.29.0
v2.29.0-rc.0
v2.29.0-rc.1
v2.29.0-rc.2
v2.29.1
v2.29.2
v2.3.0
v2.3.1
v2.3.2
v2.30.0
v2.30.0-rc.0
v2.30.1
v2.30.2
v2.30.3
v2.30.4
v2.31.0
v2.31.0-rc.0
v2.31.0-rc.1
v2.31.1
v2.31.2
v2.32.0
v2.32.0-beta.0
v2.32.0-rc.0
v2.32.0-rc.1
v2.32.1
v2.33.0
v2.33.0-rc.0
v2.33.0-rc.1
v2.33.1
v2.33.2
v2.33.3
v2.33.4
v2.33.5
v2.34.0
v2.34.0-rc.0
v2.34.0-rc.1
v2.34.0-rc.2
v2.35.0
v2.35.0-rc0
v2.35.0-rc1
v2.35.0-retract
v2.36.0
v2.36.0-rc0
v2.36.1
v2.36.2
v2.37.0
v2.37.0-rc.0
v2.37.0-rc.1
v2.37.1
v2.37.2
v2.37.3
v2.37.4
v2.37.5
v2.37.6
v2.37.7
v2.37.8
v2.37.9
v2.38.0
v2.38.0-rc.0
v2.39.0
v2.39.0-rc.0
v2.39.1
v2.39.2
v2.4.0
v2.4.0-rc.0
v2.4.1
v2.4.2
v2.4.3
v2.40.0
v2.40.0-rc.0
v2.40.1
v2.40.2
v2.40.3
v2.40.4
v2.40.5
v2.40.6
v2.40.7
v2.41.0
v2.41.0-rc.0
v2.42.0
v2.42.0-rc.0
v2.43.0
v2.43.0+stringlabels
v2.43.0-rc.0
v2.43.0-rc.1
v2.43.0-rc.1+stringlabels
v2.43.1
v2.43.1+stringlabels
v2.44.0
v2.44.0-rc.0
v2.44.0-rc.1
v2.44.0-rc.2
v2.45.0
v2.45.0-rc.0
v2.45.0-rc.1
v2.45.1
v2.45.2
v2.45.3
v2.45.4
v2.45.5
v2.45.6
v2.46.0
v2.46.0-rc.0
v2.47.0
v2.47.0-rc.0
v2.47.1
v2.47.2
v2.48.0
v2.48.0-rc.0
v2.48.0-rc.1
v2.48.0-rc.2
v2.48.1
v2.49.0
v2.49.0-rc.0
v2.49.0-rc.1
v2.49.0-rc.2
v2.49.1
v2.5.0
v2.5.0-rc.0
v2.5.0-rc.1
v2.5.0-rc.2
v2.50.0
v2.50.0-rc.0
v2.50.0-rc.1
v2.50.1
v2.51.0
v2.51.0+dedupelabels
v2.51.0-rc.0
v2.51.0-rc.0+dedupelabels
v2.51.1
v2.51.2
v2.52.0
v2.52.0-rc.0
v2.52.0-rc.1
v2.53.0
v2.53.0-rc.0
v2.53.0-rc.1
v2.53.1
v2.53.2
v2.53.3
v2.53.4
v2.53.5
v2.54.0
v2.54.0+dedupelabels
v2.54.0-rc.0
v2.54.0-rc.0+dedupelabels
v2.54.0-rc.1
v2.54.1
v2.55.0
v2.55.0-rc.0
v2.55.0-rc.1
v2.55.1
v2.6.0
v2.6.0-rc.0
v2.6.0-rc.1
v2.6.1
v2.7.0
v2.7.0-rc.0
v2.7.0-rc.1
v2.7.0-rc.2
v2.7.1
v2.7.2
v2.8.0
v2.8.0-rc.0
v2.8.1
v2.9.0
v2.9.0-rc.0
v2.9.1
v2.9.2
v3.0.0
v3.0.0-beta.0
v3.0.0-beta.1
v3.0.0-rc.0
v3.0.0-rc.1
v3.0.1
v3.1.0
v3.1.0-rc.0
v3.1.0-rc.1
v3.2.0
v3.2.0-rc.0
v3.2.0-rc.1
v3.2.1
v3.3.0
v3.3.0-rc.0
v3.3.0-rc.1
v3.3.1
v3.4.0
v3.4.0-rc.0
v3.4.1
v3.4.2
v3.5.0
v3.5.0-rc.0
v3.5.0-rc.1
v3.6.0
v3.6.0-rc.0
v3.6.0-rc.1
v3.7.0
v3.7.0-rc.0
v3.7.1
v3.7.2
v3.7.3
v3.8.0
v3.8.0-rc.0
v3.8.0-rc.1
v3.8.1
v3.9.0-rc.0
${ noResults }
13 Commits (bwplotka-patch-1)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
3e24e84172 |
fix!: stop unbounded memory usage from query log
Resolves: #15433 When I converted prometheus to use slog in #14906, I update both the `QueryLogger` interface, as well as how the log calls to the `QueryLogger` were built up in `promql.Engine.exec()`. The backing logger for the `QueryLogger` in the engine is a `util/logging.JSONFileLogger`, and it's implementation of the `With()` method updates the logger the logger in place with the new keyvals added onto the underlying slog.Logger, which means they get inherited onto everything after. All subsequent calls to `With()`, even in later queries, would continue to then append on more and more keyvals for the various params and fields built up in the logger. In turn, this causes unbounded growth of the logger, leading to increased memory usage, and in at least one report was the likely cause of an OOM kill. More information can be found in the issue and the linked slack thread. This commit does a few things: - It was referenced in feedback in #14906 that it would've been better to not change the `QueryLogger` interface if possible, this PR proposes changes that bring it closer to alignment with the pre-3.0 `QueryLogger` interface contract - reverts `promql.Engine.exec()`'s usage of the query logger to the pattern of building up an array of args to pass at once to the end log call. Avoiding the repetitious calls to `.With()` are what resolve the issue with the logger growth/memory usage. - updates the scrape failure logger to use the update `QueryLogger` methods in the contract. - updates tests accordingly - cleans up unused methods Builds and passes tests successfully. Tested locally and confirmed I could no longer reproduce the issue/it resolved the issue. Signed-off-by: TJ Hoplock <t.hoplock@gmail.com> |
1 year ago |
|
|
16a4354b48 |
chore(deduper): add compile check that slog.Handler int is satisfied
Signed-off-by: TJ Hoplock <t.hoplock@gmail.com> |
1 year ago |
|
|
5c05c89b8b |
Update prometheus/common
Signed-off-by: Julien <roidelapluie@o11y.eu> |
1 year ago |
|
|
28f22b4d80 |
Update prometheus/common
Signed-off-by: Julien <roidelapluie@o11y.eu> |
1 year ago |
|
|
4f9e4dc016 |
ref: remove unused deduper log wrapper methods
I used these wrapper methods during initial development of the custom handler that the deduper now implements. Since the deduper implements slog.Handler and can be used directly as a logger, these wrapper methods are no longer needed. Signed-off-by: TJ Hoplock <t.hoplock@gmail.com> |
1 year ago |
|
|
b602393473 |
fix: avoid data race in log deduper
This change should have been included in the initial prometheus slog
conversion, but I must've lost track of it in all the rebases involved
in that PR.
This changes the dedupe logger so that the only method that needs to use
the lock is the `Handle()` method that actually interacts with the
deduplication map.
Ex:
```
==================
WARNING: DATA RACE
Write at 0x00c000518bc0 by goroutine 29481:
github.com/prometheus/prometheus/util/logging.(*Deduper).WithAttrs()
/home/tjhop/go/src/github.com/prometheus/prometheus/util/logging/dedupe.go:89 +0xef
log/slog.(*Logger).With()
/home/tjhop/.asdf/installs/golang/1.23.1/go/src/log/slog/logger.go:132 +0x106
github.com/prometheus/prometheus/storage/remote.NewQueueManager()
/home/tjhop/go/src/github.com/prometheus/prometheus/storage/remote/queue_manager.go:483 +0x7a9
github.com/prometheus/prometheus/storage/remote.(*WriteStorage).ApplyConfig()
/home/tjhop/go/src/github.com/prometheus/prometheus/storage/remote/write.go:201 +0x102c
github.com/prometheus/prometheus/storage/remote.(*Storage).ApplyConfig()
/home/tjhop/go/src/github.com/prometheus/prometheus/storage/remote/storage.go:92 +0xfd
github.com/prometheus/prometheus/storage/remote.TestWriteStorageApplyConfigsDuringCommit.func1()
/home/tjhop/go/src/github.com/prometheus/prometheus/storage/remote/storage_test.go:172 +0x3e4
github.com/prometheus/prometheus/storage/remote.TestWriteStorageApplyConfigsDuringCommit.gowrap1()
/home/tjhop/go/src/github.com/prometheus/prometheus/storage/remote/storage_test.go:174 +0x41
Previous read at 0x00c000518bc0 by goroutine 31261:
github.com/prometheus/prometheus/util/logging.(*Deduper).Handle()
/home/tjhop/go/src/github.com/prometheus/prometheus/util/logging/dedupe.go:82 +0x2b1
log/slog.(*Logger).log()
/home/tjhop/.asdf/installs/golang/1.23.1/go/src/log/slog/logger.go:257 +0x228
log/slog.(*Logger).Error()
/home/tjhop/.asdf/installs/golang/1.23.1/go/src/log/slog/logger.go:230 +0x3d4
github.com/prometheus/prometheus/tsdb/wlog.(*Watcher).loop()
/home/tjhop/go/src/github.com/prometheus/prometheus/tsdb/wlog/watcher.go:254 +0x2db
github.com/prometheus/prometheus/tsdb/wlog.(*Watcher).Start.gowrap1()
/home/tjhop/go/src/github.com/prometheus/prometheus/tsdb/wlog/watcher.go:227 +0x33
Goroutine 29481 (running) created at:
github.com/prometheus/prometheus/storage/remote.TestWriteStorageApplyConfigsDuringCommit()
/home/tjhop/go/src/github.com/prometheus/prometheus/storage/remote/storage_test.go:164 +0xe4
testing.tRunner()
/home/tjhop/.asdf/installs/golang/1.23.1/go/src/testing/testing.go:1690 +0x226
testing.(*T).Run.gowrap1()
/home/tjhop/.asdf/installs/golang/1.23.1/go/src/testing/testing.go:1743 +0x44
Goroutine 31261 (running) created at:
github.com/prometheus/prometheus/tsdb/wlog.(*Watcher).Start()
/home/tjhop/go/src/github.com/prometheus/prometheus/tsdb/wlog/watcher.go:227 +0x177
github.com/prometheus/prometheus/storage/remote.(*QueueManager).Start()
/home/tjhop/go/src/github.com/prometheus/prometheus/storage/remote/queue_manager.go:934 +0x304
github.com/prometheus/prometheus/storage/remote.(*WriteStorage).ApplyConfig()
/home/tjhop/go/src/github.com/prometheus/prometheus/storage/remote/write.go:232 +0x151b
github.com/prometheus/prometheus/storage/remote.(*Storage).ApplyConfig()
/home/tjhop/go/src/github.com/prometheus/prometheus/storage/remote/storage.go:92 +0xfd
github.com/prometheus/prometheus/storage/remote.TestWriteStorageApplyConfigsDuringCommit.func1()
/home/tjhop/go/src/github.com/prometheus/prometheus/storage/remote/storage_test.go:172 +0x3e4
github.com/prometheus/prometheus/storage/remote.TestWriteStorageApplyConfigsDuringCommit.gowrap1()
/home/tjhop/go/src/github.com/prometheus/prometheus/storage/remote/storage_test.go:174 +0x41
==================
--- FAIL: TestWriteStorageApplyConfigsDuringCommit (2.26s)
testing.go:1399: race detected during execution of test
FAIL
FAIL github.com/prometheus/prometheus/storage/remote 68.321s
```
Signed-off-by: TJ Hoplock <t.hoplock@gmail.com>
|
1 year ago |
|
|
6ebfbd2d54 |
chore!: adopt log/slog, remove go-kit/log
For: #14355 This commit updates Prometheus to adopt stdlib's log/slog package in favor of go-kit/log. As part of converting to use slog, several other related changes are required to get prometheus working, including: - removed unused logging util func `RateLimit()` - forward ported the util/logging/Deduper logging by implementing a small custom slog.Handler that does the deduping before chaining log calls to the underlying real slog.Logger - move some of the json file logging functionality to use prom/common package functionality - refactored some of the new json file logging for scraping - changes to promql.QueryLogger interface to swap out logging methods for relevant slog sugar wrappers - updated lots of tests that used/replicated custom logging functionality, attempting to keep the logical goal of the tests consistent after the transition - added a healthy amount of `if logger == nil { $makeLogger }` type conditional checks amongst various functions where none were provided -- old code that used the go-kit/log.Logger interface had several places where there were nil references when trying to use functions like `With()` to add keyvals on the new *slog.Logger type Signed-off-by: TJ Hoplock <t.hoplock@gmail.com> |
1 year ago |
|
|
c3c7d44d84 |
lint: Adjust to the lint warnings raised by current versions of golint-ci
We haven't updated golint-ci in our CI yet, but this commit prepares for that. There are a lot of new warnings, and it is mostly because the "revive" linter got updated. I agree with most of the new warnings, mostly around not naming unused function parameters (although it is justified in some cases for documentation purposes – while things like mocks are a good example where not naming the parameter is clearer). I'm pretty upset about the "empty block" warning to include `for` loops. It's such a common pattern to do something in the head of the `for` loop and then have an empty block. There is still an open issue about this: https://github.com/mgechev/revive/issues/810 I have disabled "revive" altogether in files where empty blocks are used excessively, and I have made the effort to add individual `// nolint:revive` where empty blocks are used just once or twice. It's borderline noisy, though, but let's go with it for now. I should mention that none of the "empty block" warnings for `for` loop bodies were legitimate. Signed-off-by: beorn7 <beorn@grafana.com> |
3 years ago |
|
|
6375417324
|
refactor (util): move from github.com/pkg/errors to 'errors' and 'fmt' (#10877)
Signed-off-by: Matthieu MOREL <mmorel-35@users.noreply.github.com> Co-authored-by: Matthieu MOREL <mmorel-35@users.noreply.github.com> |
4 years ago |
|
|
e2ede285a2
|
refactor: move from io/ioutil to io and os packages (#10528)
* refactor: move from io/ioutil to io and os packages * use fs.DirEntry instead of os.FileInfo after os.ReadDir Signed-off-by: MOREL Matthieu <matthieu.morel@cnp.fr> |
4 years ago |
|
|
9a2e93228e
|
Switch to grafana/regexp everywhere (#10268)
Let's have a consistent library for regexp. Signed-off-by: Julien Pivotto <roidelapluie@inuits.eu> |
4 years ago |
|
|
c954cd9d1d |
Move packages out of deprecated pkg directory
This creates a new `model` directory and moves all data-model related packages over there: exemplar labels relabel rulefmt textparse timestamp value All the others are more or less utilities and have been moved to `util`: gate logging modetimevfs pool runtime Signed-off-by: beorn7 <beorn@grafana.com> |
4 years ago |