Skip to content

Instantly share code, notes, and snippets.

@hagen1778
Created August 30, 2022 14:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hagen1778/a0824cde3903d6506e1b18eff7fd8b40 to your computer and use it in GitHub Desktop.
Save hagen1778/a0824cde3903d6506e1b18eff7fd8b40 to your computer and use it in GitHub Desktop.
# vmtag is a docker image tag for VictoriaMetrics components,
# which run inside the prometheus-benchmark - e.g. vmagent, vmalert, vmsingle.
vmtag: "v1.80.0"
nodeSelector:
app: rw-benchmark
# targetsCount defines the number of nodeexporter instances to scrape.
# This option allows to configure the number of active time series to push
# to remoteStorages.
# Every nodeexporter exposes around 815 unique metrics, so when targetsCount
# is set to 1000, then the benchmark generates around 815*100=815K active time series.
targetsCount: 6000
# scrapeInterval defines how frequently to scrape nodeexporter targets.
# This option allows to configure data ingestion rate per every remoteStorages.
# For example, if the benchmark generates 815K active time series and scrapeInterval
# is set to 10s, then the data ingestion rate equals to 815K/10s = 81.5K samples/sec.
scrapeInterval: 15s
# queryInterval is how often to send queries from files/alerts.yaml to remoteStorages.readURL
# This option can be used for tuning read load at remoteStorages.
# It is a good rule of thumb to keep it in sync with scrapeInterval.
queryInterval: 15s
# scrapeConfigUpdatePercent is the percent of nodeexporter targets
# which are updated with unique label on every scrape config update
# (see scrapeConfigUpdateInterval).
# This option allows tuning time series churn rate.
# For example, if scrapeConfigUpdatePercent is set to 1 for targetsCount=1000,
# then around 10 targets gets updated labels on every scrape config update.
# This generates around 815*10=8150 new time series every scrapeConfigUpdateInterval.
scrapeConfigUpdatePercent: 1
# scrapeConfigUpdateInterval specifies how frequently to update labels
# across scrapeConfigUpdatePercent nodeexporter targets.
# This option allows tuning time series churn rate.
# For example, if scrapeConfigUpdateInterval is set to 10m for targetsCount=1000
# and scrapeConfigUpdatePercent=1, then around 10 targets gets updated labels every 10 minutes.
# This generates around 815*10=8150 new time series every 10 minutes.
scrapeConfigUpdateInterval: 10m
# writeConcurrency is the number of concurrent tcp connections to use
# for sending the data to the tested remoteStorages.
# Increase this value if there is a high network latency between prometheus-benchmark
# components and the tested remoteStorages.
writeConcurrency: 16
# replicas defines how many pods of writers to deploy.
# each replica will scrape targetsCount targets and will have
# its own extra label `replica` attached to written time series.
# this option is useful for scaling the writers horizontally.
writeReplicas: 1
# remoteStorages contains a named list of Prometheus-compatible systems to test.
# These systems must support data ingestion via Prometheus remote_write protocol.
# These systems must also support Prometheus querying API if query performance
# needs to be measured additionally to data ingestion performance.
remoteStorages:
# the name of the remote storage to test.
# The name is added to remote_storage_name label at collected metrics
mimir:
writeURL: "http://mimir-distributed-nginx.mimir-benchmark.svc.cluster.local/api/v1/push"
readURL: "http://mimir-distributed-nginx.mimir-benchmark.svc.cluster.local/prometheus"
writeHeaders: "X-Scope-OrgID:tenant-1"
readHeaders: "X-Scope-OrgID:tenant-1"
victoriametrics:
writeURL: "http://victoria-metrics-cluster-vminsert.mimir-benchmark.svc.cluster.local:8480/insert/0/prometheus/"
readURL: "http://victoria-metrics-cluster-vmselect.mimir-benchmark.svc.cluster.local:8481/select/0/prometheus/"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment