This is an automated email from the ASF dual-hosted git repository. asorokoumov pushed a commit to branch add-missing-configs in repository https://gitbox.apache.org/repos/asf/otava.git
commit 2036132ce324ecac98cb87748fb8c45c1e9b58cb Author: Alex Sorokoumov <[email protected]> AuthorDate: Sun Sep 14 21:02:25 2025 -0700 Add missing config files in examples --- examples/csv/config/otava.yaml | 27 ++++++++++ examples/graphite/config/otava.yaml | 48 ++++++++++++++++++ examples/postgresql/config/otava.yaml | 94 +++++++++++++++++++++++++++++++++++ 3 files changed, 169 insertions(+) diff --git a/examples/csv/config/otava.yaml b/examples/csv/config/otava.yaml new file mode 100644 index 0000000..d91f4ea --- /dev/null +++ b/examples/csv/config/otava.yaml @@ -0,0 +1,27 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +tests: + local.sample: + type: csv + file: /data/local_sample.csv + time_column: time + attributes: [commit] + metrics: [metric1, metric2] + csv_options: + delimiter: "," + quotechar: "'" diff --git a/examples/graphite/config/otava.yaml b/examples/graphite/config/otava.yaml new file mode 100644 index 0000000..09e07f9 --- /dev/null +++ b/examples/graphite/config/otava.yaml @@ -0,0 +1,48 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# External systems connectors configuration: +graphite: + url: ${GRAPHITE_ADDRESS} + +grafana: + url: ${GRAFANA_ADDRESS} + user: ${GRAFANA_USER} + password: ${GRAFANA_PASSWORD} + +# Define your tests here: +tests: + my-product.test: + type: graphite + prefix: performance-tests.daily.my-product + tags: [perf-test, daily, my-product] + metrics: + throughput: + suffix: client.throughput + direction: 1 # higher is better + scale: 1 + response_time: + suffix: client.p50 + direction: -1 # lower is better + scale: 1 + cpu_usage: + suffix: server.cpu + direction: -1 # lower is better + scale: 1 + + + diff --git a/examples/postgresql/config/otava.yaml b/examples/postgresql/config/otava.yaml new file mode 100644 index 0000000..bb52c15 --- /dev/null +++ b/examples/postgresql/config/otava.yaml @@ -0,0 +1,94 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# External systems connectors configuration: +postgres: + hostname: ${POSTGRES_HOSTNAME} + port: ${POSTGRES_PORT} + username: ${POSTGRES_USERNAME} + password: ${POSTGRES_PASSWORD} + database: ${POSTGRES_DATABASE} + +# Templates define common bits shared between test definitions: +templates: + common: + type: postgres + time_column: commit_ts + attributes: [experiment_id, commit, config_id] + # required for --update-postgres to work + update_statement: | + UPDATE results + SET {metric}_rel_forward_change=%s, + {metric}_rel_backward_change=%s, + {metric}_p_value=%s + WHERE experiment_id = '{experiment_id}' AND config_id = {config_id} + metrics: + process_cumulative_rate_mean: + direction: 1 + scale: 1 + process_cumulative_rate_stderr: + direction: -1 + scale: 1 + process_cumulative_rate_diff: + direction: -1 + scale: 1 + +# Define your tests here: +tests: + aggregate_mem: + inherit: [ common ] # avoids repeating metrics definitions and postgres-related config + query: | + SELECT e.commit, + e.commit_ts, + r.process_cumulative_rate_mean, + r.process_cumulative_rate_stderr, + r.process_cumulative_rate_diff, + r.experiment_id, + r.config_id + FROM results r + INNER JOIN configs c ON r.config_id = c.id + INNER JOIN experiments e ON r.experiment_id = e.id + WHERE e.exclude_from_analysis = false AND + e.branch = '${BRANCH}' AND + e.username = 'ci' AND + c.store = 'MEM' AND + c.cache = true AND + c.benchmark = 'aggregate' AND + c.instance_type = 'ec2i3.large' + ORDER BY e.commit_ts ASC; + + aggregate_time_rocks: + inherit: [ common ] + query: | + SELECT e.commit, + e.commit_ts, + r.process_cumulative_rate_mean, + r.process_cumulative_rate_stderr, + r.process_cumulative_rate_diff, + r.experiment_id, + r.config_id + FROM results r + INNER JOIN configs c ON r.config_id = c.id + INNER JOIN experiments e ON r.experiment_id = e.id + WHERE e.exclude_from_analysis = false AND + e.branch = '${BRANCH}' AND + e.username = 'ci' AND + c.store = 'TIME_ROCKS' AND + c.cache = true AND + c.benchmark = 'aggregate' AND + c.instance_type = 'ec2i3.large' + ORDER BY e.commit_ts ASC; \ No newline at end of file
