Title here
Summary here
The ThanosReceive CRD manages Thanos Receive hashrings for the ingestion of metrics via Prometheus Remote Write protocol.
It deploys Receiver in split mode and configures both router and ingester components to handle metric ingestion at scale, and has the ability to specify multiple hashrings.
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Prometheus │ │ Prometheus │ │ Prometheus │
│ Instance 1 │ │ Instance 2 │ │ Instance N │
└─────────┬───────┘ └─────────┬───────┘ └─────────┬───────┘
│ │ │
└──────────────────────┼──────────────────────┘
│ Remote Write
▼
┌─────────────────────┐
│ ThanosReceive │
│ Router │
│ (route RW requests)│
└─────────┬───────────┘
│
┌───────────────┼───────────────┐
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ ThanosReceive │ │ ThanosReceive │ │ ThanosReceive │
│ Ingester 1 │ │ Ingester 2 │ │ Ingester 3 │
│ (Hashring A) │ │ (Hashring A) │ │ (Hashring B) │
└─────────┬───────┘ └─────────┬───────┘ └─────────┬───────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────────┐
│ Object Storage (S3, GCS, etc.) │
└─────────────────────────────────────────────────────────┘
apiVersion: monitoring.thanos.io/v1alpha1
kind: ThanosReceive
metadata:
name: example-receive
spec:
ingesterSpec:
defaultObjectStorageConfig:
name: thanos-object-storage
key: thanos.yaml
hashrings:
- name: blue
storage:
size: "100Mi"
tsdbConfig:
retention: 2h
tenancyConfig:
tenantMatcherType: exact
replicas: 1
externalLabels:
replica: $(POD_NAME)
- name: green
storage:
size: "100Mi"
tsdbConfig:
retention: 2h
tenancyConfig:
tenantMatcherType: exact
replicas: 1
externalLabels:
replica: $(POD_NAME)
routerSpec:
logFormat: logfmt
imagePullPolicy: IfNotPresent
externalLabels:
receive: "true"
replicas: 1
replicationFactor: 1Found a typo, inconsistency or missing information in our docs? Help us to improve Thanos Operator documentation by proposing a fix on GitHub here ❤️