Analytics
Configuration of analytics backend to be used for storing and retrieving test metrics. This plays a major part in optimising performance and mitigating flakiness.
Disable analytics
By default, no analytics backend is expected which means that each test will be treated as a completely new test.
InfluxDB v2
Assuming you've done the setup for InfluxDB v2 you need to provide:
- url
- token - Token for authentication
- organization - Organization is the name of the organization you wish to write/read from
- bucket - Destination bucket to write/read from
- retention policy
Bucket is quite useful in case you have multiple configurations of tests/devices and you don't want metrics from one configuration to affect the other one, e.g. regular and end-to-end tests.
- Marathonfile
- Kotlin DSL
analyticsConfiguration:
type: "influxdb2"
url: "http://influx2.svc.cluster.local:8086"
token: "my-super-secret-token"
organization: "starlabs"
bucket: "marathon"
retentionPolicyConfiguration:
everySeconds: 604800 # Duration in seconds for how long data will be kept in the database. 0 means infinite. minimum: 0
shardGroupDurationSeconds: 0 # Shard duration measured in seconds
marathon {
analytics {
influx {
url = "http://influx2.svc.cluster.local:8086"
token = "my-super-secret-token"
organization = "starlabs"
bucket = "marathon"
}
}
}
InfluxDB
Assuming you've done the setup for InfluxDB you need to provide:
- url
- username
- password
- database name
- retention policy
Database name is quite useful in case you have multiple configurations of tests/devices and you don't want metrics from one configuration to affect the other one, e.g. regular and end-to-end tests.
- Marathonfile
- Kotlin DSL
- Groovy DSL
analyticsConfiguration:
type: "influxdb"
url: "http://influx.svc.cluster.local:8086"
user: "root"
password: "root"
dbName: "marathon"
retentionPolicyConfiguration:
name: "rpMarathonTest"
duration: "90d"
shardDuration: "1h"
replicationFactor: 5
isDefault: false
marathon {
analytics {
influx {
url = "http://influx.svc.cluster.local:8086"
user = "root"
password = "root"
dbName = "marathon"
}
}
}
marathon {
analytics {
influx {
url = "http://influx.svc.cluster.local:8086"
user = "root"
password = "root"
dbName = "marathon"
}
}
}
Graphite
Graphite can be used as an alternative to InfluxDB. It uses the following parameters:
- host
- port (optional) - the default is 2003
- prefix (optional) - no metrics prefix will be used if not specified
- Marathonfile
- Kotlin DSL
- Groovy DSL
analyticsConfiguration:
type: "graphite"
host: "influx.svc.cluster.local"
port: "8080"
prefix: "prf"
marathon {
analytics {
graphite {
host = "influx.svc.cluster.local"
port = "8080"
prefix = "prf"
}
}
}
marathon {
analytics {
graphite {
host = "influx.svc.cluster.local"
port = "8080"
prefix = "prf"
}
}
}