2021-08-19 17:07:52 +00:00
|
|
|
name = "demo_schema"
|
|
|
|
base_seed = "correct horse battery staple"
|
|
|
|
|
|
|
|
# the most basic spec with no auto generating of agents, measurements, tags or fields
|
|
|
|
[[agents]]
|
|
|
|
name = "demo"
|
2021-08-25 21:10:30 +00:00
|
|
|
sampling_interval = "10s"
|
2021-08-19 17:07:52 +00:00
|
|
|
|
|
|
|
[[agents.measurements]]
|
|
|
|
name = "some_measurement"
|
|
|
|
|
|
|
|
[[agents.measurements.tags]]
|
|
|
|
name = "foo"
|
|
|
|
value = "bar"
|
|
|
|
|
|
|
|
[[agents.measurements.fields]]
|
|
|
|
name = "field1"
|
|
|
|
# it's a boolean field, the true means to generate the boolean randomly with equal probability
|
|
|
|
bool = true
|
|
|
|
|
|
|
|
[[agents.measurements.fields]]
|
|
|
|
name = "field2"
|
|
|
|
# it's an i64 field, values will be generated using a pseudo random number generator
|
|
|
|
# with a set seed and values in the range [3, 200). Setting it to [3, 3] or [3, 4] will
|
|
|
|
# make the value always be 3
|
|
|
|
i64_range = [3, 200]
|
|
|
|
|
|
|
|
[[agents.measurements.fields]]
|
|
|
|
name = "field3"
|
|
|
|
# it's an i64 field, values will be generated using a pseudo random number generator
|
|
|
|
# with a set seed and values in the range in the range [1000, 5000)
|
|
|
|
i64_range = [1000, 5000]
|
|
|
|
# The value after each same will be incremented by the next random amount. This is
|
|
|
|
# useful when simulating a counter.
|
|
|
|
increment = true
|
|
|
|
|
|
|
|
[[agents.measurements.fields]]
|
|
|
|
name = "field4"
|
|
|
|
# it's an f64 field, values will be generated using a pseudo random number generator
|
|
|
|
# with a set seed with values in the range [0.0, 100.0). Setting both values to the same
|
|
|
|
# number will make every value that number.
|
|
|
|
f64_range = [0.0, 100.0]
|
|
|
|
|
|
|
|
[[agents.measurements.fields]]
|
|
|
|
name = "field5"
|
|
|
|
# this is a string field. Parts of the string will be replaced. {{agent_name}} will be replaced
|
|
|
|
# with the name of the agent, {{random 200}} will be replaced with a random alphanumeric string
|
|
|
|
# of the length specified. {{format-time "%Y-%m-%d %H:%M"}} will be replaced with the time for
|
|
|
|
# this line in the simulation (that is, the same value that this line will have for its
|
|
|
|
# timestamp) formatted using a strftime specifier. Other patterns will be looked for based on
|
|
|
|
# the keys in replacements.
|
|
|
|
pattern = "{{agent_name}} foo {{level}} {{format-time \"%Y-%m-%d %H:%M\"}} {{random 200}}"
|
|
|
|
# each key in string replacements will be replaced in the pattern with a value randomly
|
|
|
|
# selected from the array of strings. Specify a weight as an integer greater than 1 to change
|
|
|
|
# the probability that a given string will be selected.
|
|
|
|
replacements = [
|
|
|
|
{replace = "color", with = ["red", "blue", "green"]},
|
|
|
|
{replace = "level", with = [
|
|
|
|
["info", 800],
|
|
|
|
["warn", 195],
|
|
|
|
["error", 5]
|
|
|
|
]}
|
|
|
|
]
|
|
|
|
|
|
|
|
[[agents]]
|
|
|
|
name = "some-server-{{agent_id}}"
|
|
|
|
count = 10
|
2021-08-25 21:10:30 +00:00
|
|
|
sampling_interval = "22s"
|
2021-08-19 17:07:52 +00:00
|
|
|
|
|
|
|
# Optional: every measurement (row) this agent produces will include a tag with the agent_id filled
|
|
|
|
# in:
|
|
|
|
# agent_name=some-server-{{agent_id}}
|
|
|
|
name_tag_key = "agent_name"
|
|
|
|
|
|
|
|
# Optional: these values will be rotated through so that each agent that gets created will have one.
|
|
|
|
# e.g: the first agent will always inject region=us-west and secnod will be region=us-east, etc.
|
|
|
|
tags = [
|
|
|
|
{key = "region", values = ["us-west", "us-east", "dublin", "frankfurt"]},
|
|
|
|
{key = "foo", values = ["bar", "asdf"]},
|
|
|
|
]
|
|
|
|
|
|
|
|
[[agents.measurements]]
|
|
|
|
name = "few-tags-measurement-{{measurement_id}}"
|
|
|
|
count = 20
|
|
|
|
[[agents.measurements.tags]]
|
|
|
|
# {{measurement_id}} will be replaced with the id of the measurement this tag is for
|
|
|
|
name = "tag-1-{{measurement_id}}"
|
|
|
|
value = "value-1"
|
|
|
|
|
|
|
|
[[agents.measurements.tags]]
|
|
|
|
name = "tag-2"
|
|
|
|
# {{cardinality}} will be replaced with the cardinality counter
|
|
|
|
value = "value-{{cardinality}}"
|
|
|
|
# Optional: This means each collection on this agent will have 4 rows of this measurement with
|
|
|
|
# unique values for this tag. This could be for things like org_id as a tag or for
|
|
|
|
# something like cpu measurements in Telegraf where you have a separate line for each cpu:
|
|
|
|
# cpu,cpu=cpu-total,host=foo usage_user=23.2,usage_system=33.3
|
|
|
|
# cpu,cpu=cpu-0,host=foo usage_user=22.2,usage_system=34.5
|
|
|
|
# cpu,cpu=cpu-1,host=foo usage_user=11.2,usage_system=56.5
|
|
|
|
cardinality = 4
|
|
|
|
|
|
|
|
[[agents.measurements.tags]]
|
|
|
|
name = "tag-3"
|
|
|
|
# {{counter}} will be replaced with the increment counter
|
|
|
|
value = "value-{{counter}}"
|
|
|
|
# Optional: This means that {{counter}} will increase by 1 after every 10 samples that are
|
|
|
|
# pulled.
|
|
|
|
# This option simulates temporal tag values like process IDs or container IDs in tags
|
|
|
|
increment_every = 10
|
|
|
|
|
|
|
|
[[agents.measurements.tags]]
|
|
|
|
name = "tag-4"
|
|
|
|
# {{counter}} will be replaced with the increment counter and {{cardinality}} will be replaced
|
|
|
|
# with the cardinality counter
|
|
|
|
value = "value-{{counter}}-{{cardinality}}"
|
|
|
|
# Optional: This means that {{counter}} will increment by 1 after every 100 samples that are
|
|
|
|
# pulled.
|
|
|
|
# This option simulates temporal tag values like process IDs or container IDs in tags
|
|
|
|
increment_every = 100
|
|
|
|
# when paired with cardinality, this can simulate having many containers running on a single
|
|
|
|
# host
|
|
|
|
cardinality = 10
|
|
|
|
|
|
|
|
[[agents.measurements.fields]]
|
|
|
|
name = "field-2"
|
|
|
|
bool = true
|
|
|
|
|
|
|
|
# This example shows generating 10 different measurements that each have their own set of
|
|
|
|
# tags (10 of them) and each have their own set of fields (4 of them)
|
|
|
|
[[agents.measurements]]
|
|
|
|
name = "mid-tags-measurement-{{measurement_id}}"
|
|
|
|
count = 10
|
|
|
|
[[agents.measurements.tags]]
|
|
|
|
name = "tag-{{tag_id}}-{{measurement_id}}"
|
|
|
|
count = 10
|
|
|
|
value = "value-{{cardinality}}"
|
|
|
|
cardinality = 3
|
|
|
|
|
|
|
|
[[agents.measurements.fields]]
|
|
|
|
name = "field-1"
|
|
|
|
bool = true
|