Comments (16)
I have started removing chunks of storage in the ingester code path.
All things that should be addressed as part of this work, but not in a particular PR I have marked with TODO: (remove-chunks)
I think those are the next next tasks I could foresee:
- #510
- #524
- #525
- #526
- #527
- #528 (not strictly related to removing chunks storage support)
- #529
- Update helm chart to avoid setting any chunks-storage fields
from mimir.
@simonswine should the list above include anything about the purger, which I believe is only relevant for chunks?
from mimir.
Beware that purger exposes API for deleting tenants when using blocks storage.
from mimir.
So does that mean the purger can't be removed @pstibrany ?
I was going off of this docs page:
https://cortexmetrics.io/docs/guides/deleting-series/
which says deletion is only supported for chunks and that deletion involves the use of the "purger" service.
from mimir.
Ah I just re-read your comment...
so are you saying that the purger can't be used in blocks storage for targeted deletion of time series, but it can be used to delete an entire tenant?
When you say "delete an entire tenant", I assume you mean all blocks that belong to that tenant?
from mimir.
so are you saying that the purger can't be used in blocks storage for targeted deletion of time series, but it can be used to delete an entire tenant?
Correct.
When you say "delete an entire tenant", I assume you mean all blocks that belong to that tenant?
Correct.
from mimir.
@pstibrany so re: the purger, everything can be removed except https://cortexmetrics.io/docs/api/#tenant-delete-request and https://cortexmetrics.io/docs/api/#tenant-delete-status?
from mimir.
do you intend to keep these endpoints around now that there is the ability to configure per-tenant retention? I see they are still marked as "experimental"
from mimir.
everything can be removed except https://cortexmetrics.io/docs/api/#tenant-delete-request and https://cortexmetrics.io/docs/api/#tenant-delete-status?
I think so.
do you intend to keep these endpoints around now that there is the ability to configure per-tenant retention?
Yes, we do.
from mimir.
Thanks @pracucci . I created #555 and added it to the list.
from mimir.
@simonswine would any of the existing issues under this epic cover removing limits.max_chunks_per_query
? I see this marked as a flag to remove in our spreadsheet with a pointer to this issue. Just want to make sure it doesn't get lost - I can always make another issue if needed.
It seems like if we did this, we would also want to set querier.max-fetched-chunks-per-query': '1500000
, but only for the ruler (not for any other components). Seems like we would leave the default to 0 (i.e. unset), but selectively set this on the ruler. Then again, I'm not even sure how easy that is to do since you'd have to do it with the CLI flag. At minimum, seems like you couldn't do it if you were running as target=all
.
from mimir.
PR to remove chunks purger: #743
from mimir.
PR to remove table manager logic: #744
from mimir.
PR to remove tombstones and cache gen support (used by series deletion supported only by chunks storage): #748
from mimir.
PR to remove chunks storage support from querier: #753
from mimir.
From now on I will keep track of remaining work in this comment, that I will edit over time.
- Remove chunks storage logic (PR)
-store.cardinality-limit
- Remove from flusher
- Move purger package (PR)
- Second storage engine support (PR)
t.Cfg.Querier.SecondStoreEngine
- Remove storage engine config (PR)
storage.StorageEngineChunks
- Remove unused config from flusher (PR)
- Remove unused metrics from
pkg/ingester/metrics.go
(PR) - Remove unused chunk encodings (PR)
- Revisit all config to find more stuff to delete
- Update all CLI flags mentioning "blocks storage" (PR)
- Remove unused event logger (PR)
- Update
-ingester.stream-chunks-when-using-blocks
CLI flag description (PR) - Revisit all packages to find more stuff to delete
- Look for code to remove in: (PR)
-
ingester/locker.go
-
Β wal.proto
-
labelPairs
-
extract.go
-
hash_fp.go
-
SampleStreamIterator
-
matchers.go
-
priority_queue.go
-
sync.go
-
- Remove "TransferChunks" (PR)
- Remove
prom1
package (PR) - Cleanup
ingester_v2.go
- Remove FIFO + Redis + Tiered cache support from query-frontend (PR)
- #794
- Remove final references to "chunks storage" across the whole repo (PR)
- pkg/chunk/encoding (PR)
- #811
- #812
- Remove storage chunks clients #527
- Ensure all limits left are in use
from mimir.
Related Issues (20)
- Querier: panics in QueryResultRequest marshaling HOT 6
- Ingester segfault marshaling a LabelValuesResponse HOT 9
- Rejecting valid exemplars with err-mimir-exemplar-labels-missing HOT 3
- mixin: networking overview renders useless panels for the gateway HOT 1
- helm: Keda prometheus queries are not mimir-specific HOT 3
- Helm: Common volume mount
- [helm] Add support for the remote mode of the ruler in the helm chart
- Helm: missing support for spread-minizing token generation HOT 4
- Improving the Helm chart to integrate external object storage with Mimir. HOT 2
- Suspicious error handlings HOT 2
- Querier "connection termination" to query-frontend with vanilla deployment of mimir-distributed helm chart HOT 4
- To avoid ingester container to be killed due out-of-memory HOT 9
- Flaky TestQuerierWithBlocksStorageRunningInSingleBinaryMode HOT 1
- ingester: include only owned series in active series stats HOT 2
- Flaky TestIngester_Push/should_discard_metadata_when_max_metadata_per_user_exceeded HOT 3
- GCS, S3 timeouts are not retried
- Add an API to fetch information about native histogram active buckets
- Mimir Alertmanager crashes when visiting the UI and ms teams receiver configured HOT 1
- Support encryption in transit on Memcached cache HOT 2
- mimirtool load rules not working with api.prometheus_http_prefix different than /prometheus HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mimir.