global: thanos: enabled: true # For Thanos Installs, Allow Higher Concurrency from Cost-Model # Still may require tweaking for some installs, but the thanos-query-frontend # will greatly assist in reduction memory bloat in query. kubecostModel: maxQueryConcurrency: 5 # This configuration is applied to thanos only. Expresses the resolution to # use for longer query ranges. Options: raw, 5m, 1h - Default: raw maxSourceResolution: 5m prometheus: server: extraArgs: storage.tsdb.min-block-duration: 2h storage.tsdb.max-block-duration: 2h storage.tsdb.retention: 2w # these were previously being set by default. # securityContext: # runAsNonRoot: true # runAsUser: 1001 extraVolumes: - name: object-store-volume secret: # Ensure this secret name matches thanos.storeSecretName secretName: kubecost-thanos enableAdminApi: true sidecarContainers: - name: thanos-sidecar image: thanosio/thanos:v0.32.5 # these were previously being set by default. # securityContext: # allowPrivilegeEscalation: false # readOnlyRootFilesystem: true # capabilities: # drop: # - ALL args: - sidecar - --log.level=debug - --tsdb.path=/data/ - --prometheus.url=http://127.0.0.1:9090 - --objstore.config-file=/etc/config/object-store.yaml # Start of time range limit to serve. Thanos sidecar will serve only metrics, which happened # later than this value. Option can be a constant time in RFC3339 format or time duration # relative to current time, such as -1d or 2h45m. Valid duration units are ms, s, m, h, d, w, y. - --min-time=-3h env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name ports: - name: http containerPort: 10902 - name: grpc containerPort: 10901 - name: cluster containerPort: 10900 volumeMounts: - name: config-volume mountPath: /etc/prometheus - name: storage-volume mountPath: /data subPath: "" - name: object-store-volume mountPath: /etc/config thanos: store: enabled: true grpcSeriesMaxConcurrency: 20 blockSyncConcurrency: 20 extraEnv: - name: GOGC value: "100" - name: GODEBUG value: "madvdontneed=1" resources: requests: memory: "2.5Gi" query: enabled: true timeout: 3m # Maximum number of queries processed concurrently by query node. maxConcurrent: 8 # Maximum number of select requests made concurrently per a query. maxConcurrentSelect: 2 resources: requests: memory: "2.5Gi" autoDownsampling: false extraEnv: - name: GOGC value: "100" - name: GODEBUG value: "madvdontneed=1" # Thanos Query Frontend queryFrontend: enabled: true compressResponses: true # Downstream Tripper Configuration downstreamTripper: enabled: true idleConnectionTimeout: 90s responseHeaderTimeout: 2m tlsHandshakeTimeout: 10s expectContinueTimeout: 1s maxIdleConnections: 200 maxIdleConnectionsPerHost: 100 maxConnectionsPerHost: 0 # Response Cache Configuration # Configure either a max size constraint or max items. responseCache: enabled: true # Maximum memory size of the cache in bytes. A unit suffix (KB, MB, GB) may be applied. maxSize: 1.25GB # Maximum number of entries in the cache. maxSizeItems: 0 # The expiry duration for the cache. validity: 2m extraEnv: - name: GOGC value: "100" - name: GODEBUG value: "madvdontneed=1" resources: requests: memory: "1.5Gi" # Thanos Sidecar Service Discovery # Disabling removes the prometheus sidecar from querier store discovery. This ensures # that all clusters read from the same data in remote store. sidecar: enabled: true bucket: enabled: false compact: enabled: true dataVolume: persistentVolumeClaim: claimName: compact-data-volume storage: 100Gi # This secret name should match the sidecar configured secret name volume # in the prometheus.server.extraVolumes entry storeSecretName: kubecost-thanos