You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@otava.apache.org by gi...@apache.org on 2026/07/21 01:43:35 UTC
(otava-website) branch asf-site updated: deploy: 3bf1960a2e6208850f689dc30b0233093c10b8c8
This is an automated email from the ASF dual-hosted git repository.
github-actions[bot] pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/otava-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new d03a2ad deploy: 3bf1960a2e6208850f689dc30b0233093c10b8c8
d03a2ad is described below
commit d03a2ad4b352cd6c5bd3797055f056ea111c7ee8
Author: Gerrrr <Ge...@users.noreply.github.com>
AuthorDate: Tue Jul 21 01:43:30 2026 +0000
deploy: 3bf1960a2e6208850f689dc30b0233093c10b8c8
---
404.html | 10 ++---
.../{styles.e5691cae.css => styles.ce980333.css} | 2 +-
.../{087d9111.0f5afba2.js => 087d9111.2b45a932.js} | 2 +-
assets/js/17896441.693a8ecd.js | 1 -
assets/js/17896441.bab69b53.js | 1 +
.../{1db64337.b2807eb1.js => 1db64337.d9ba8ebd.js} | 2 +-
.../{1df93b7f.378da286.js => 1df93b7f.2af393dd.js} | 2 +-
.../{2b266655.a7e89407.js => 2b266655.b3c55c93.js} | 2 +-
assets/js/2f6b0a54.6e427b25.js | 1 +
assets/js/2f6b0a54.9e245443.js | 1 -
assets/js/324.d57d404b.js | 1 -
assets/js/3cdfca8f.29dc279d.js | 1 -
assets/js/3cdfca8f.70611494.js | 1 +
assets/js/{645.30a9a3fc.js => 482.362a3d4c.js} | 2 +-
.../{4ba7e5a3.28b62819.js => 4ba7e5a3.f45219cd.js} | 2 +-
assets/js/577.d4346040.js | 1 +
assets/js/5e29e159.173b6af8.js | 1 -
assets/js/5e29e159.498ed2ce.js | 1 +
assets/js/5e95c892.728ae03b.js | 1 +
assets/js/5e95c892.b4b94178.js | 1 -
.../{5ef0e9d6.0c0b4350.js => 5ef0e9d6.b55da4a2.js} | 2 +-
.../{6683fb4a.fb211e15.js => 6683fb4a.25f41d95.js} | 2 +-
assets/js/{786.77492ad4.js => 786.e3aef81e.js} | 2 +-
assets/js/82ab324d.1edce976.js | 1 +
assets/js/82ab324d.f8b678ef.js | 1 -
.../{a6aa9e1f.a1d1bf14.js => a6aa9e1f.c7636419.js} | 2 +-
.../{a7bd4aaa.8ac12ad0.js => a7bd4aaa.ef42cc45.js} | 2 +-
assets/js/a94703ab.801cbae2.js | 1 -
assets/js/a94703ab.89b5c361.js | 1 +
.../{c4de80f8.73c2b4da.js => c4de80f8.822510da.js} | 2 +-
assets/js/d589d3a7.68c822b3.js | 1 +
assets/js/d589d3a7.7c4b881d.js | 1 -
assets/js/f9e23376.2e17ae14.js | 1 +
assets/js/f9e23376.6db60ff8.js | 1 -
assets/js/main.663c53c1.js | 2 -
assets/js/main.9e655e3e.js | 2 +
...js.LICENSE.txt => main.9e655e3e.js.LICENSE.txt} | 0
...e~main.cbf2ad78.js => runtime~main.0f49da90.js} | 2 +-
blog/index.html | 10 ++---
docs/basics/index.html | 52 +++++++++++-----------
docs/big-query/index.html | 18 ++++----
docs/community/index.html | 24 +++++-----
docs/contribute/index.html | 26 +++++------
docs/csv/index.html | 22 ++++-----
docs/download/index.html | 36 +++++++--------
docs/getting-started/index.html | 48 ++++++++++----------
docs/grafana/index.html | 24 +++++-----
docs/graphite/index.html | 36 +++++++--------
docs/install/index.html | 18 ++++----
docs/math/index.html | 30 ++++++-------
docs/overview/index.html | 16 +++----
docs/postgresql/index.html | 38 ++++++++--------
index.html | 12 ++---
53 files changed, 236 insertions(+), 236 deletions(-)
diff --git a/404.html b/404.html
index fed8e66..a63b1f1 100644
--- a/404.html
+++ b/404.html
@@ -2,17 +2,17 @@
<html lang="en" dir="ltr" class="plugin-native plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
-<meta name="generator" content="Docusaurus v3.10.1">
+<meta name="generator" content="Docusaurus v3.10.2">
<title data-rh="true">Page Not Found | Apache Otava</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://otava.apache.org/404.html"><met [...]
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.e5691cae.css">
-<script src="/assets/js/runtime~main.cbf2ad78.js" defer="defer"></script>
-<script src="/assets/js/main.663c53c1.js" defer="defer"></script>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.ce980333.css">
+<script src="/assets/js/runtime~main.0f49da90.js" defer="defer"></script>
+<script src="/assets/js/main.9e655e3e.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
<p>
Apache Otava (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indica [...]
</p>
diff --git a/assets/css/styles.e5691cae.css b/assets/css/styles.ce980333.css
similarity index 84%
rename from assets/css/styles.e5691cae.css
rename to assets/css/styles.ce980333.css
index 16fdf88..7b7d997 100644
--- a/assets/css/styles.e5691cae.css
+++ b/assets/css/styles.ce980333.css
@@ -1 +1 @@
-.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middl [...]
\ No newline at end of file
+.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middl [...]
\ No newline at end of file
diff --git a/assets/js/087d9111.0f5afba2.js b/assets/js/087d9111.2b45a932.js
similarity index 95%
rename from assets/js/087d9111.0f5afba2.js
rename to assets/js/087d9111.2b45a932.js
index 56edd8a..aed78b5 100644
--- a/assets/js/087d9111.0f5afba2.js
+++ b/assets/js/087d9111.2b45a932.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[190],{2460(e,t,a){a.r(t),a.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"csv","title":"CSV","description":"\x3c!--","source":"@site/docs/csv.md","sourceDirName":".","slug":"/csv","permalink":"/docs/csv","draft":false,"unlisted":false,"editUrl":"https://github.com/apache/otava-website/tree/maste [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[190],{2209(e,t,a){a.r(t),a.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"csv","title":"CSV","description":"\x3c!--","source":"@site/docs/csv.md","sourceDirName":".","slug":"/csv","permalink":"/docs/csv","draft":false,"unlisted":false,"editUrl":"https://github.com/apache/otava-website/tree/maste [...]
\ No newline at end of file
diff --git a/assets/js/17896441.693a8ecd.js b/assets/js/17896441.693a8ecd.js
deleted file mode 100644
index 7581870..0000000
--- a/assets/js/17896441.693a8ecd.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[401],{1025(e,n,t){t.r(n),t.d(n,{default:()=>ye});var s=t(2888),i=t(9653),a=t(787),r=t(1684);const o=s.createContext(null);function l({children:e,content:n}){const t=function(e){return(0,s.useMemo)(()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc}),[e])}(n);return(0,r.jsx)(o.Provider,{value:t,children:e})}function [...]
\ No newline at end of file
diff --git a/assets/js/17896441.bab69b53.js b/assets/js/17896441.bab69b53.js
new file mode 100644
index 0000000..912f8e9
--- /dev/null
+++ b/assets/js/17896441.bab69b53.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[401],{8275(e,n,t){t.r(n),t.d(n,{default:()=>ye});var s=t(2888),i=t(7300),a=t(8644),r=t(1684);const o=s.createContext(null);function l({children:e,content:n}){const t=function(e){return(0,s.useMemo)(()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc}),[e])}(n);return(0,r.jsx)(o.Provider,{value:t,children:e})}function [...]
\ No newline at end of file
diff --git a/assets/js/1db64337.b2807eb1.js b/assets/js/1db64337.d9ba8ebd.js
similarity index 95%
rename from assets/js/1db64337.b2807eb1.js
rename to assets/js/1db64337.d9ba8ebd.js
index e8a99f8..824343d 100644
--- a/assets/js/1db64337.b2807eb1.js
+++ b/assets/js/1db64337.d9ba8ebd.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[413],{9260(e,t,n){n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>c,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>l});const r=JSON.parse('{"id":"overview","title":"Overview","description":"\x3c!--","source":"@site/docs/overview.md","sourceDirName":".","slug":"/overview","permalink":"/docs/overview","draft":false,"unlisted":false,"editUrl":"https://github.com/apache [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[413],{6666(e,t,n){n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>c,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>l});const r=JSON.parse('{"id":"overview","title":"Overview","description":"\x3c!--","source":"@site/docs/overview.md","sourceDirName":".","slug":"/overview","permalink":"/docs/overview","draft":false,"unlisted":false,"editUrl":"https://github.com/apache [...]
\ No newline at end of file
diff --git a/assets/js/1df93b7f.378da286.js b/assets/js/1df93b7f.2af393dd.js
similarity index 98%
rename from assets/js/1df93b7f.378da286.js
rename to assets/js/1df93b7f.2af393dd.js
index c9b9d55..ced3b2d 100644
--- a/assets/js/1df93b7f.378da286.js
+++ b/assets/js/1df93b7f.2af393dd.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[583],{8086(e,t,s){s.r(t),s.d(t,{default:()=>rt});var i=s(3526),a=s(2718);const n="heroBanner_qdFl",r="heroSubtitle_jFu1",c="features_t9lD",o="title_iMVk",l="description_ynef",d="buttons_wjNP",x="demoGrid_ooNy";var h=s(2888),m=s(3140),p=s(3891),y=s(562),u=s(8723);const g="demo_fx2I",j="title_NBKi",f="tagBad_uuHO",N="tagGood_pWxa",_="svg_ccVW",v="axis_iK5k",b="line_gRkF", [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[583],{2729(e,t,s){s.r(t),s.d(t,{default:()=>rt});var i=s(3526),a=s(1953);const n="heroBanner_qdFl",r="heroSubtitle_jFu1",c="features_t9lD",o="title_iMVk",l="description_ynef",d="buttons_wjNP",x="demoGrid_ooNy";var h=s(2888),m=s(3140),p=s(3891),y=s(562),u=s(8723);const g="demo_fx2I",j="title_NBKi",f="tagBad_uuHO",N="tagGood_pWxa",_="svg_ccVW",v="axis_iK5k",b="line_gRkF", [...]
\ No newline at end of file
diff --git a/assets/js/2b266655.a7e89407.js b/assets/js/2b266655.b3c55c93.js
similarity index 99%
rename from assets/js/2b266655.a7e89407.js
rename to assets/js/2b266655.b3c55c93.js
index 0d055bd..eca680c 100644
--- a/assets/js/2b266655.a7e89407.js
+++ b/assets/js/2b266655.b3c55c93.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[801],{4180(s,e,a){a.r(e),a.d(e,{assets:()=>c,contentTitle:()=>t,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>r});const l=JSON.parse('{"id":"math","title":"Change Point Detection","description":"\x3c!--","source":"@site/docs/math.md","sourceDirName":".","slug":"/math","permalink":"/docs/math","draft":false,"unlisted":false,"editUrl":"https://github.com/apache/o [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[801],{5556(s,e,a){a.r(e),a.d(e,{assets:()=>c,contentTitle:()=>t,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>r});const l=JSON.parse('{"id":"math","title":"Change Point Detection","description":"\x3c!--","source":"@site/docs/math.md","sourceDirName":".","slug":"/math","permalink":"/docs/math","draft":false,"unlisted":false,"editUrl":"https://github.com/apache/o [...]
\ No newline at end of file
diff --git a/assets/js/2f6b0a54.6e427b25.js b/assets/js/2f6b0a54.6e427b25.js
new file mode 100644
index 0000000..f072e06
--- /dev/null
+++ b/assets/js/2f6b0a54.6e427b25.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[361],{714(e,t,s){s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"big-query","title":"BigQuery","description":"\x3c!--","source":"@site/docs/big-query.md","sourceDirName":".","slug":"/big-query","permalink":"/docs/big-query","draft":false,"unlisted":false,"editUrl":"https://github.com/apa [...]
\ No newline at end of file
diff --git a/assets/js/2f6b0a54.9e245443.js b/assets/js/2f6b0a54.9e245443.js
deleted file mode 100644
index 5d16e96..0000000
--- a/assets/js/2f6b0a54.9e245443.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[361],{1585(e,t,s){s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"big-query","title":"BigQuery","description":"\x3c!--","source":"@site/docs/big-query.md","sourceDirName":".","slug":"/big-query","permalink":"/docs/big-query","draft":false,"unlisted":false,"editUrl":"https://github.com/ap [...]
\ No newline at end of file
diff --git a/assets/js/324.d57d404b.js b/assets/js/324.d57d404b.js
deleted file mode 100644
index 68df939..0000000
--- a/assets/js/324.d57d404b.js
+++ /dev/null
@@ -1 +0,0 @@
-(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[324],{1256(e,t,n){"use strict";n.d(t,{A:()=>M});var s=n(2888),a=n(1684);function r(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=s.Children.toArray(e),n=t.find(e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),r=t.filter(e=>e!==n),c=n?.props.children;return{mdxAdmonitionTitle:c,rest:r.length>0?(0,a.jsx)(a.Fragment,{children:r}):null}}(e.children),r=e.title??t;return [...]
\ No newline at end of file
diff --git a/assets/js/3cdfca8f.29dc279d.js b/assets/js/3cdfca8f.29dc279d.js
deleted file mode 100644
index 6848304..0000000
--- a/assets/js/3cdfca8f.29dc279d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[185],{298(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>a,toc:()=>l});const a=JSON.parse('{"id":"basics","title":"Basics","description":"\x3c!--","source":"@site/docs/basics.md","sourceDirName":".","slug":"/basics","permalink":"/docs/basics","draft":false,"unlisted":false,"editUrl":"https://github.com/apache/otava-webs [...]
\ No newline at end of file
diff --git a/assets/js/3cdfca8f.70611494.js b/assets/js/3cdfca8f.70611494.js
new file mode 100644
index 0000000..ef84e7d
--- /dev/null
+++ b/assets/js/3cdfca8f.70611494.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[185],{2441(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>a,toc:()=>l});const a=JSON.parse('{"id":"basics","title":"Basics","description":"\x3c!--","source":"@site/docs/basics.md","sourceDirName":".","slug":"/basics","permalink":"/docs/basics","draft":false,"unlisted":false,"editUrl":"https://github.com/apache/otava-web [...]
\ No newline at end of file
diff --git a/assets/js/645.30a9a3fc.js b/assets/js/482.362a3d4c.js
similarity index 68%
rename from assets/js/645.30a9a3fc.js
rename to assets/js/482.362a3d4c.js
index 47feb90..853c8c0 100644
--- a/assets/js/645.30a9a3fc.js
+++ b/assets/js/482.362a3d4c.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[645],{6475(e,t,i){i.d(t,{A:()=>h});i(2888);var a=i(3526),n=i(2871),o=i(8952),s=i(1684);function h({className:e}){return(0,s.jsx)("main",{className:(0,a.A)("container margin-vert--xl",e),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(o.A,{as:"h1",className:"hero__title",children:(0,s.jsx)(n.A, [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[482],{1356(e,t,i){i.d(t,{A:()=>h});i(2888);var a=i(3526),n=i(6303),o=i(2741),s=i(1684);function h({className:e}){return(0,s.jsx)("main",{className:(0,a.A)("container margin-vert--xl",e),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(o.A,{as:"h1",className:"hero__title",children:(0,s.jsx)(n.A, [...]
\ No newline at end of file
diff --git a/assets/js/4ba7e5a3.28b62819.js b/assets/js/4ba7e5a3.f45219cd.js
similarity index 95%
rename from assets/js/4ba7e5a3.28b62819.js
rename to assets/js/4ba7e5a3.f45219cd.js
index f5c1f6c..03ec021 100644
--- a/assets/js/4ba7e5a3.28b62819.js
+++ b/assets/js/4ba7e5a3.f45219cd.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[591],{8200(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>l});const r=JSON.parse('{"id":"contribute","title":"Contribute","description":"\x3c!--","source":"@site/docs/contribute.md","sourceDirName":".","slug":"/contribute","permalink":"/docs/contribute","draft":false,"unlisted":false,"editUrl":"https://github. [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[591],{9656(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>l});const r=JSON.parse('{"id":"contribute","title":"Contribute","description":"\x3c!--","source":"@site/docs/contribute.md","sourceDirName":".","slug":"/contribute","permalink":"/docs/contribute","draft":false,"unlisted":false,"editUrl":"https://github. [...]
\ No newline at end of file
diff --git a/assets/js/577.d4346040.js b/assets/js/577.d4346040.js
new file mode 100644
index 0000000..e205462
--- /dev/null
+++ b/assets/js/577.d4346040.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[577],{4683(e,t,n){"use strict";n.d(t,{A:()=>M});var s=n(2888),a=n(1684);function r(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=s.Children.toArray(e),n=t.find(e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),r=t.filter(e=>e!==n),c=n?.props.children;return{mdxAdmonitionTitle:c,rest:r.length>0?(0,a.jsx)(a.Fragment,{children:r}):null}}(e.children),r=e.title??t;return [...]
\ No newline at end of file
diff --git a/assets/js/5e29e159.173b6af8.js b/assets/js/5e29e159.173b6af8.js
deleted file mode 100644
index 91f23f6..0000000
--- a/assets/js/5e29e159.173b6af8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[642],{2039(e,n,t){t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>l});const a=JSON.parse('{"id":"graphite","title":"Graphite","description":"\x3c!--","source":"@site/docs/graphite.md","sourceDirName":".","slug":"/graphite","permalink":"/docs/graphite","draft":false,"unlisted":false,"editUrl":"https://github.com/apache [...]
\ No newline at end of file
diff --git a/assets/js/5e29e159.498ed2ce.js b/assets/js/5e29e159.498ed2ce.js
new file mode 100644
index 0000000..117e94a
--- /dev/null
+++ b/assets/js/5e29e159.498ed2ce.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[642],{665(e,n,t){t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>l});const a=JSON.parse('{"id":"graphite","title":"Graphite","description":"\x3c!--","source":"@site/docs/graphite.md","sourceDirName":".","slug":"/graphite","permalink":"/docs/graphite","draft":false,"unlisted":false,"editUrl":"https://github.com/apache/ [...]
\ No newline at end of file
diff --git a/assets/js/5e95c892.728ae03b.js b/assets/js/5e95c892.728ae03b.js
new file mode 100644
index 0000000..c4f74ab
--- /dev/null
+++ b/assets/js/5e95c892.728ae03b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[647],{3338(e,a,s){s.r(a),s.d(a,{default:()=>u});s(2888);var t=s(3526),r=s(9583),c=s(7300),l=s(8849),h=s(1953),p=s(1684);function u(e){return(0,p.jsx)(c.e3,{className:(0,t.A)(r.G.wrapper.docsPages),children:(0,p.jsx)(h.A,{children:(0,l.v)(e.route.routes)})})}}}]);
\ No newline at end of file
diff --git a/assets/js/5e95c892.b4b94178.js b/assets/js/5e95c892.b4b94178.js
deleted file mode 100644
index 8606ffb..0000000
--- a/assets/js/5e95c892.b4b94178.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[647],{2585(e,a,s){s.r(a),s.d(a,{default:()=>u});s(2888);var t=s(3526),r=s(6218),c=s(9653),l=s(8849),h=s(2718),p=s(1684);function u(e){return(0,p.jsx)(c.e3,{className:(0,t.A)(r.G.wrapper.docsPages),children:(0,p.jsx)(h.A,{children:(0,l.v)(e.route.routes)})})}}}]);
\ No newline at end of file
diff --git a/assets/js/5ef0e9d6.0c0b4350.js b/assets/js/5ef0e9d6.b55da4a2.js
similarity index 96%
rename from assets/js/5ef0e9d6.0c0b4350.js
rename to assets/js/5ef0e9d6.b55da4a2.js
index 209a609..c85c799 100644
--- a/assets/js/5ef0e9d6.0c0b4350.js
+++ b/assets/js/5ef0e9d6.b55da4a2.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[911],{5319(e,t,n){n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"community","title":"Community","description":"\x3c!--","source":"@site/docs/community.md","sourceDirName":".","slug":"/community","permalink":"/docs/community","draft":false,"unlisted":false,"editUrl":"https://github.com/a [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[911],{4370(e,t,n){n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"community","title":"Community","description":"\x3c!--","source":"@site/docs/community.md","sourceDirName":".","slug":"/community","permalink":"/docs/community","draft":false,"unlisted":false,"editUrl":"https://github.com/a [...]
\ No newline at end of file
diff --git a/assets/js/6683fb4a.fb211e15.js b/assets/js/6683fb4a.25f41d95.js
similarity index 98%
rename from assets/js/6683fb4a.fb211e15.js
rename to assets/js/6683fb4a.25f41d95.js
index 7f7da2f..5880412 100644
--- a/assets/js/6683fb4a.fb211e15.js
+++ b/assets/js/6683fb4a.25f41d95.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[761],{2495(e,n,s){s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>i,default:()=>m,frontMatter:()=>c,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"postgresql","title":"PostgreSQL","description":"\x3c!--","source":"@site/docs/postgresql.md","sourceDirName":".","slug":"/postgresql","permalink":"/docs/postgresql","draft":false,"unlisted":false,"editUrl":"https://github. [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[761],{1576(e,n,s){s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>i,default:()=>m,frontMatter:()=>c,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"postgresql","title":"PostgreSQL","description":"\x3c!--","source":"@site/docs/postgresql.md","sourceDirName":".","slug":"/postgresql","permalink":"/docs/postgresql","draft":false,"unlisted":false,"editUrl":"https://github. [...]
\ No newline at end of file
diff --git a/assets/js/786.77492ad4.js b/assets/js/786.e3aef81e.js
similarity index 99%
rename from assets/js/786.77492ad4.js
rename to assets/js/786.e3aef81e.js
index 3fb4e42..03bb9a5 100644
--- a/assets/js/786.77492ad4.js
+++ b/assets/js/786.e3aef81e.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[786],{8723(t,e,n){n.d(e,{N:()=>w});var i=n(1684),s=n(2888),o=n(4135),r=n(4707),a=n(4959),l=n(6953),u=n(5129),c=n(4696);function h(t,e){if("function"==typeof t)return t(e);null!=t&&(t.current=e)}function d(...t){return s.useCallback(function(...t){return e=>{let n=!1;const i=t.map(t=>{const i=h(t,e);return n||"function"!=typeof i||(n=!0),i});if(n)return()=>{for(let e=0;e [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[786],{8723(t,e,n){n.d(e,{N:()=>w});var i=n(1684),s=n(2888),o=n(4135),r=n(4707),a=n(4959),l=n(6953),u=n(5129),c=n(4696);function h(t,e){if("function"==typeof t)return t(e);null!=t&&(t.current=e)}function d(...t){return s.useCallback(function(...t){return e=>{let n=!1;const i=t.map(t=>{const i=h(t,e);return n||"function"!=typeof i||(n=!0),i});if(n)return()=>{for(let e=0;e [...]
\ No newline at end of file
diff --git a/assets/js/82ab324d.1edce976.js b/assets/js/82ab324d.1edce976.js
new file mode 100644
index 0000000..bce58b1
--- /dev/null
+++ b/assets/js/82ab324d.1edce976.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[203],{561(e,n,a){a.r(n),a.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"grafana","title":"Grafana Integration","description":"\x3c!--","source":"@site/docs/grafana.md","sourceDirName":".","slug":"/grafana","permalink":"/docs/grafana","draft":false,"unlisted":false,"editUrl":"https://github.com/ [...]
\ No newline at end of file
diff --git a/assets/js/82ab324d.f8b678ef.js b/assets/js/82ab324d.f8b678ef.js
deleted file mode 100644
index ce6cc3c..0000000
--- a/assets/js/82ab324d.f8b678ef.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[203],{5110(e,n,a){a.r(n),a.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"grafana","title":"Grafana Integration","description":"\x3c!--","source":"@site/docs/grafana.md","sourceDirName":".","slug":"/grafana","permalink":"/docs/grafana","draft":false,"unlisted":false,"editUrl":"https://github.com [...]
\ No newline at end of file
diff --git a/assets/js/a6aa9e1f.a1d1bf14.js b/assets/js/a6aa9e1f.c7636419.js
similarity index 76%
rename from assets/js/a6aa9e1f.a1d1bf14.js
rename to assets/js/a6aa9e1f.c7636419.js
index 2ea80e0..0809abb 100644
--- a/assets/js/a6aa9e1f.a1d1bf14.js
+++ b/assets/js/a6aa9e1f.c7636419.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[643],{3213(e,t,s){s.r(t),s.d(t,{default:()=>Qe});var a=s(2888),n=s(3526),r=s(3279),i=s(9653),l=s(6218),o=s(2718),c=s(6932),m=s(2871),d=s(787),h=(s(5920),s(1684));const u=a.createContext(null);function g({children:e,content:t,isBlogPostPage:s=!1}){const n=function({content:e,isBlogPostPage:t}){return(0,a.useMemo)(()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[643],{5081(e,t,s){s.r(t),s.d(t,{default:()=>Ke});var a=s(2888),n=s(3526),r=s(8353),i=s(7300),l=s(9583),o=s(1953),c=s(349),m=s(6303),d=s(8644),h=(s(2554),s(1684));const u=a.createContext(null);function g({children:e,content:t,isBlogPostPage:s=!1}){const n=function({content:e,isBlogPostPage:t}){return(0,a.useMemo)(()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets [...]
\ No newline at end of file
diff --git a/assets/js/a7bd4aaa.8ac12ad0.js b/assets/js/a7bd4aaa.ef42cc45.js
similarity index 58%
rename from assets/js/a7bd4aaa.8ac12ad0.js
rename to assets/js/a7bd4aaa.ef42cc45.js
index 3630b5b..41babcb 100644
--- a/assets/js/a7bd4aaa.8ac12ad0.js
+++ b/assets/js/a7bd4aaa.ef42cc45.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[98],{8594(e,n,s){s.r(n),s.d(n,{default:()=>h});s(2888);var r=s(9653);function t(e,n){return`docs-${e}-${n}`}var o=s(6024),a=s(8849),i=s(4911),c=s(1684);function l(e){const{version:n}=e;return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i.A,{version:n.version,tag:t(n.pluginId,n.version)}),(0,c.jsx)(r.be,{children:n.noIndex&&(0,c.jsx)("meta",{name:"robots",content:"noindex, [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[98],{1727(e,n,s){s.r(n),s.d(n,{default:()=>h});s(2888);var r=s(7300);function t(e,n){return`docs-${e}-${n}`}var o=s(8659),a=s(8849),i=s(2260),c=s(1684);function l(e){const{version:n}=e;return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i.A,{version:n.version,tag:t(n.pluginId,n.version)}),(0,c.jsx)(r.be,{children:n.noIndex&&(0,c.jsx)("meta",{name:"robots",content:"noindex, [...]
\ No newline at end of file
diff --git a/assets/js/a94703ab.801cbae2.js b/assets/js/a94703ab.801cbae2.js
deleted file mode 100644
index 6c905f5..0000000
--- a/assets/js/a94703ab.801cbae2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[48],{2848(e,t,n){n.r(t),n.d(t,{default:()=>Ne});var a=n(2888),i=n(3526),s=n(9653),o=n(6218),l=n(6925),r=n(4488),c=n(2871),d=n(3785),u=n(2583);const m="backToTopButton_KtL5",b="backToTopButtonShow_wosf";var h=n(1684);function p(){const{shown:e,scrollToTop:t}=function({threshold:e}){const[t,n]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:o}=(0,d.gk)() [...]
\ No newline at end of file
diff --git a/assets/js/a94703ab.89b5c361.js b/assets/js/a94703ab.89b5c361.js
new file mode 100644
index 0000000..dd4613b
--- /dev/null
+++ b/assets/js/a94703ab.89b5c361.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[48],{2346(e,t,n){n.r(t),n.d(t,{default:()=>Se});var a=n(2888),i=n(3526),s=n(7300),o=n(9583),l=n(566),r=n(8443),c=n(6303),d=n(1320),u=n(3022);const m="backToTopButton_VHyU",h="backToTopButtonShow_TiR7";var b=n(1684);function p(){const{shown:e,scrollToTop:t}=function({threshold:e}){const[t,n]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:o}=(0,d.gk)(); [...]
\ No newline at end of file
diff --git a/assets/js/c4de80f8.73c2b4da.js b/assets/js/c4de80f8.822510da.js
similarity index 92%
rename from assets/js/c4de80f8.73c2b4da.js
rename to assets/js/c4de80f8.822510da.js
index a800ee8..a079b0d 100644
--- a/assets/js/c4de80f8.73c2b4da.js
+++ b/assets/js/c4de80f8.822510da.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[777],{6604(e,t,n){n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>a,toc:()=>c});const a=JSON.parse('{"id":"install","title":"Installation","description":"\x3c!--","source":"@site/docs/install.md","sourceDirName":".","slug":"/install","permalink":"/docs/install","draft":false,"unlisted":false,"editUrl":"https://github.com/apache [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[777],{4847(e,t,n){n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>a,toc:()=>c});const a=JSON.parse('{"id":"install","title":"Installation","description":"\x3c!--","source":"@site/docs/install.md","sourceDirName":".","slug":"/install","permalink":"/docs/install","draft":false,"unlisted":false,"editUrl":"https://github.com/apache [...]
\ No newline at end of file
diff --git a/assets/js/d589d3a7.68c822b3.js b/assets/js/d589d3a7.68c822b3.js
new file mode 100644
index 0000000..210c3a1
--- /dev/null
+++ b/assets/js/d589d3a7.68c822b3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[924],{9078(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"getting-started","title":"Getting Started","description":"\x3c!--","source":"@site/docs/getting-started.md","sourceDirName":".","slug":"/getting-started","permalink":"/docs/getting-started","draft":false,"unlisted":false," [...]
\ No newline at end of file
diff --git a/assets/js/d589d3a7.7c4b881d.js b/assets/js/d589d3a7.7c4b881d.js
deleted file mode 100644
index a560aa7..0000000
--- a/assets/js/d589d3a7.7c4b881d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[924],{911(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"getting-started","title":"Getting Started","description":"\x3c!--","source":"@site/docs/getting-started.md","sourceDirName":".","slug":"/getting-started","permalink":"/docs/getting-started","draft":false,"unlisted":false,"e [...]
\ No newline at end of file
diff --git a/assets/js/f9e23376.2e17ae14.js b/assets/js/f9e23376.2e17ae14.js
new file mode 100644
index 0000000..aa2d70c
--- /dev/null
+++ b/assets/js/f9e23376.2e17ae14.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[840],{7648(e,a,t){t.r(a),t.d(a,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>n,toc:()=>o});const n=JSON.parse('{"id":"download","title":"Download","description":"\x3c!--","source":"@site/docs/download.md","sourceDirName":".","slug":"/download","permalink":"/docs/download","draft":false,"unlisted":false,"editUrl":"https://github.com/apache [...]
\ No newline at end of file
diff --git a/assets/js/f9e23376.6db60ff8.js b/assets/js/f9e23376.6db60ff8.js
deleted file mode 100644
index 2de72d7..0000000
--- a/assets/js/f9e23376.6db60ff8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[840],{33(e,a,t){t.r(a),t.d(a,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>n,toc:()=>o});const n=JSON.parse('{"id":"download","title":"Download","description":"\x3c!--","source":"@site/docs/download.md","sourceDirName":".","slug":"/download","permalink":"/docs/download","draft":false,"unlisted":false,"editUrl":"https://github.com/apache/o [...]
\ No newline at end of file
diff --git a/assets/js/main.663c53c1.js b/assets/js/main.663c53c1.js
deleted file mode 100644
index 0a3107b..0000000
--- a/assets/js/main.663c53c1.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see main.663c53c1.js.LICENSE.txt */
-(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[792],{8227(e,t,n){const r={"./":6962};function a(e){const t=o(e);return n(t)}function o(e){if(!n.o(r,e)){const t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=8227},9304(e,t,n){"use strict";n.d(t,{mg:()=>J,vd:()=>G});var r=n(2888),a=n(2736),o=n.n(a),i=n(4072),l=n.n(i),s=n(95 [...]
\ No newline at end of file
diff --git a/assets/js/main.9e655e3e.js b/assets/js/main.9e655e3e.js
new file mode 100644
index 0000000..3ac6c2c
--- /dev/null
+++ b/assets/js/main.9e655e3e.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.9e655e3e.js.LICENSE.txt */
+(globalThis.webpackChunkapache_website_template=globalThis.webpackChunkapache_website_template||[]).push([[792],{628(e,t,n){const r={"./":6962};function a(e){const t=o(e);return n(t)}function o(e){if(!n.o(r,e)){const t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=628},9304(e,t,n){"use strict";n.d(t,{mg:()=>J,vd:()=>G});var r=n(2888),a=n(2736),o=n.n(a),i=n(4072),l=n.n(i),s=n(9597 [...]
\ No newline at end of file
diff --git a/assets/js/main.663c53c1.js.LICENSE.txt b/assets/js/main.9e655e3e.js.LICENSE.txt
similarity index 100%
rename from assets/js/main.663c53c1.js.LICENSE.txt
rename to assets/js/main.9e655e3e.js.LICENSE.txt
diff --git a/assets/js/runtime~main.cbf2ad78.js b/assets/js/runtime~main.0f49da90.js
similarity index 63%
rename from assets/js/runtime~main.cbf2ad78.js
rename to assets/js/runtime~main.0f49da90.js
index 834b936..c499e50 100644
--- a/assets/js/runtime~main.cbf2ad78.js
+++ b/assets/js/runtime~main.0f49da90.js
@@ -1 +1 @@
-(()=>{"use strict";var e={};const t={};function a(r){const o=t[r];if(void 0!==o)return o.exports;const n=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(n.exports,n,n.exports,a),n.loaded=!0,n.exports}a.m=e,a.c=t,(()=>{const e=[];a.O=(t,r,o,n)=>{if(r){n=n||0;for(var c=e.length;c>0&&e[c-1][2]>n;c--)e[c]=e[c-1];return void(e[c]=[r,o,n])}let f=1/0;for(c=0;c<e.length;c++){let[r,o,n]=e[c],i=!0;for(var d=0;d<r.length;d++)(!1&n||f>=n)&&Object.keys(a.O).every(e=>a.O[e](r[d]))?r.splice(d--,1):(i [...]
\ No newline at end of file
+(()=>{"use strict";var e={};const t={};function a(r){const o=t[r];if(void 0!==o)return o.exports;const n=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(n.exports,n,n.exports,a),n.loaded=!0,n.exports}a.m=e,a.c=t,(()=>{const e=[];a.O=(t,r,o,n)=>{if(r){n=n||0;for(var c=e.length;c>0&&e[c-1][2]>n;c--)e[c]=e[c-1];return void(e[c]=[r,o,n])}let d=1/0;for(c=0;c<e.length;c++){let[r,o,n]=e[c],i=!0;for(var f=0;f<r.length;f++)(!1&n||d>=n)&&Object.keys(a.O).every(e=>a.O[e](r[f]))?r.splice(f--,1):(i [...]
\ No newline at end of file
diff --git a/blog/index.html b/blog/index.html
index f3940ea..41fa019 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -2,17 +2,17 @@
<html lang="en" dir="ltr" class="blog-wrapper blog-list-page plugin-blog plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
-<meta name="generator" content="Docusaurus v3.10.1">
+<meta name="generator" content="Docusaurus v3.10.2">
<title data-rh="true">Blog | Apache Otava</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://otava.apache.org/blog"><meta data-rh="tru [...]
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.e5691cae.css">
-<script src="/assets/js/runtime~main.cbf2ad78.js" defer="defer"></script>
-<script src="/assets/js/main.663c53c1.js" defer="defer"></script>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.ce980333.css">
+<script src="/assets/js/runtime~main.0f49da90.js" defer="defer"></script>
+<script src="/assets/js/main.9e655e3e.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
<p>
Apache Otava (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indica [...]
</p>
diff --git a/docs/basics/index.html b/docs/basics/index.html
index f973027..e40cfcb 100644
--- a/docs/basics/index.html
+++ b/docs/basics/index.html
@@ -2,30 +2,30 @@
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-basics" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
-<meta name="generator" content="Docusaurus v3.10.1">
+<meta name="generator" content="Docusaurus v3.10.2">
<title data-rh="true">Basics | Apache Otava</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://otava.apache.org/docs/basics"><meta dat [...]
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.e5691cae.css">
-<script src="/assets/js/runtime~main.cbf2ad78.js" defer="defer"></script>
-<script src="/assets/js/main.663c53c1.js" defer="defer"></script>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.ce980333.css">
+<script src="/assets/js/runtime~main.0f49da90.js" defer="defer"></script>
+<script src="/assets/js/main.9e655e3e.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="listing-available-tests">Listing Available Tests<a href="#listing-available-tests" class="hash-link" aria-label="Direct link to Listing Available Tests" title="Direct link to Listing Available Tests" translate="no"></a></h2>
-<div class="language-text codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-text codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">otava list-groups</span><br></div></code></pre></div></div>
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="listing-available-tests">Listing Available Tests<a href="#listing-available-tests" class="hash-link" aria-label="Direct link to Listing Available Tests" title="Direct link to Listing Available Tests" translate="no"></a></h2>
+<div class="language-text codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-text codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">otava list-groups</span><br></div></code></pre></div></div>
<p>Lists all available test groups - high-level categories of tests.</p>
-<div class="language-text codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-text codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">otava list-tests [group name]</span><br></div></code></pre></div></div>
+<div class="language-text codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-text codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">otava list-tests [group name]</span><br></div></code></pre></div></div>
<p>Lists all tests or the tests within a given group, if the group name is provided.</p>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="listing-available-metrics-for-tests">Listing Available Metrics for Tests<a href="#listing-available-metrics-for-tests" class="hash-link" aria-label="Direct link to Listing Available Metrics for Tests" title="Direct link to Listing Available Metrics for Tests" translate="no"></a></h2>
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="listing-available-metrics-for-tests">Listing Available Metrics for Tests<a href="#listing-available-metrics-for-tests" class="hash-link" aria-label="Direct link to Listing Available Metrics for Tests" title="Direct link to Listing Available Metrics for Tests" translate="no"></a></h2>
<p>To list all available metrics defined for the test:</p>
-<div class="language-text codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-text codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">otava list-metrics <test></span><br></div></code></pre></div></div>
-<h3 class="anchor anchorTargetStickyNavbar_WKy1" id="example">Example<a href="#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h3>
-<div class="theme-admonition theme-admonition-tip admonition_xPY5 alert alert--success"><div class="admonitionHeading_CHqH"><span class="admonitionIcon_T4xL"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
-<div class="language-text codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-text codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">$ otava list-metrics local.sample</span><br></div><div class="token-line" style="color:#393A [...]
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="finding-change-points">Finding Change Points<a href="#finding-change-points" class="hash-link" aria-label="Direct link to Finding Change Points" title="Direct link to Finding Change Points" translate="no"></a></h2>
-<div class="language-text codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-text codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">otava analyze <test>...</span><br></div><div class="token-line" style="color:#393A34"> [...]
+<div class="language-text codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-text codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">otava list-metrics <test></span><br></div></code></pre></div></div>
+<h3 class="anchor anchorTargetStickyNavbar_gcg8" id="example">Example<a href="#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h3>
+<div class="theme-admonition theme-admonition-tip admonition_pKXU alert alert--success"><div class="admonitionHeading_xMuP"><span class="admonitionIcon_LzAK"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
+<div class="language-text codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-text codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">$ otava list-metrics local.sample</span><br></div><div class="token-line" style="color:#393A [...]
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="finding-change-points">Finding Change Points<a href="#finding-change-points" class="hash-link" aria-label="Direct link to Finding Change Points" title="Direct link to Finding Change Points" translate="no"></a></h2>
+<div class="language-text codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-text codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">otava analyze <test>...</span><br></div><div class="token-line" style="color:#393A34"> [...]
<p>This command prints interesting results of all
runs of the test and a list of change-points.
A change-point is a moment when a metric value starts to differ significantly
@@ -41,46 +41,46 @@ However, it will eventually identify the specific commit that caused the regress
as it analyzes the history of changes rather than just the HEAD of a branch.</p>
<p>The <code>analyze</code> command accepts multiple tests or test groups.
The results are simply concatenated.</p>
-<h3 class="anchor anchorTargetStickyNavbar_WKy1" id="example-1">Example<a href="#example-1" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h3>
-<div class="theme-admonition theme-admonition-tip admonition_xPY5 alert alert--success"><div class="admonitionHeading_CHqH"><span class="admonitionIcon_T4xL"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
+<h3 class="anchor anchorTargetStickyNavbar_gcg8" id="example-1">Example<a href="#example-1" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h3>
+<div class="theme-admonition theme-admonition-tip admonition_pKXU alert alert--success"><div class="admonitionHeading_xMuP"><span class="admonitionIcon_LzAK"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
example configuration and <a href="https://github.com/apache/otava/tree/master/examples/csv/data/local_samples.csv" target="_blank" rel="noopener noreferrer" class="">local_samples.csv</a>
for the data.</p></div></div>
-<div class="language-text codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-text codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">$ otava analyze local.sample --since=2024-01-01</span><br></div><div class="token-line" styl [...]
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="avoiding-test-definition-duplication">Avoiding test definition duplication<a href="#avoiding-test-definition-duplication" class="hash-link" aria-label="Direct link to Avoiding test definition duplication" title="Direct link to Avoiding test definition duplication" translate="no"></a></h2>
+<div class="language-text codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-text codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">$ otava analyze local.sample --since=2024-01-01</span><br></div><div class="token-line" styl [...]
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="avoiding-test-definition-duplication">Avoiding test definition duplication<a href="#avoiding-test-definition-duplication" class="hash-link" aria-label="Direct link to Avoiding test definition duplication" title="Direct link to Avoiding test definition duplication" translate="no"></a></h2>
<p>You may find that your test definitions are very similar to each other, e.g. they all have the same metrics. Instead
of copy-pasting the definitions you can use templating capability built-in otava to define the common bits of configs
separately.</p>
<p>First, extract the common pieces to the <code>templates</code> section:</p>
-<div class="language-yaml codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-yaml codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">templates</span><span class="token punctuation" style="color:#393 [...]
+<div class="language-yaml codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-yaml codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">templates</span><span class="token punctuation" style="color:#393 [...]
<p>Next you can recall a template in the <code>inherit</code> property of the test:</p>
-<div class="language-yaml codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-yaml codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">my-product.test-1</span><span class="token punctuation" style="co [...]
+<div class="language-yaml codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-yaml codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">my-product.test-1</span><span class="token punctuation" style="co [...]
<p>You can inherit more than one template.</p>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="validating-performance-of-a-feature-branch">Validating Performance of a Feature Branch<a href="#validating-performance-of-a-feature-branch" class="hash-link" aria-label="Direct link to Validating Performance of a Feature Branch" title="Direct link to Validating Performance of a Feature Branch" translate="no"></a></h2>
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="validating-performance-of-a-feature-branch">Validating Performance of a Feature Branch<a href="#validating-performance-of-a-feature-branch" class="hash-link" aria-label="Direct link to Validating Performance of a Feature Branch" title="Direct link to Validating Performance of a Feature Branch" translate="no"></a></h2>
<p>The <code>otava regressions</code> command can work with feature branches.</p>
<p>First you need to tell Otava how to fetch the data of the tests run against a feature branch.
The <code>prefix</code> property of the graphite test definition accepts <code>%{BRANCH}</code> variable,
which is substituted at the data import time by the branch name passed to <code>--branch</code>
command argument. Alternatively, if the prefix for the main branch of your product is different
from the prefix used for feature branches, you can define an additional <code>branch_prefix</code> property.</p>
-<div class="language-yaml codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-yaml codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">my-product.test-1</span><span class="token punctuation" style="co [...]
+<div class="language-yaml codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-yaml codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">my-product.test-1</span><span class="token punctuation" style="co [...]
<p>Now you can verify if correct data are imported by running
<code>otava analyze <test> --branch <branch></code>.</p>
<p>The <code>--branch</code> argument also works with <code>otava regressions</code>. In this case a comparison will be made
between the tail of the specified branch and the tail of the main branch (or a point of the
main branch specified by one of the <code>--since</code> selectors).</p>
-<div class="language-text codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-text codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">$ otava regressions <test or group> --branch <branch></span><br></div><div class [...]
+<div class="language-text codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-text codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">$ otava regressions <test or group> --branch <branch></span><br></div><div class [...]
<p>When comparing two branches, you generally want to compare the tails of both test histories, and
specifically a stable sequence from the end that doesn't contain any changes in itself.
To ignore the older test results, and compare
only the last few points on the branch with the tail of the main branch,
use the <code>--last <n></code> selector. E.g. to check regressions on the last run of the tests
on the feature branch:</p>
-<div class="language-text codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-text codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">$ otava regressions <test or group> --branch <branch> --last 1</span><br></div>< [...]
+<div class="language-text codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-text codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">$ otava regressions <test or group> --branch <branch> --last 1</span><br></div>< [...]
<p>Please beware that performance validation based on a single data point is quite weak
and Otava might miss a regression if the point is not too much different from
the baseline. However, accuracy improves as more data points accumulate, and it is
a normal way of using Otava to just merge a feature and then revert if it is
-flagged later.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_AJKP"><a href="https://github.com/apache/otava-website/tree/master/docs/basics.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_6H3h" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l [...]
+flagged later.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_Wgkb"><a href="https://github.com/apache/otava-website/tree/master/docs/basics.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Df7L" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l [...]
<p>
Apache Otava (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indica [...]
</p>
diff --git a/docs/big-query/index.html b/docs/big-query/index.html
index c642689..a3fcbf6 100644
--- a/docs/big-query/index.html
+++ b/docs/big-query/index.html
@@ -2,26 +2,26 @@
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-big-query" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
-<meta name="generator" content="Docusaurus v3.10.1">
+<meta name="generator" content="Docusaurus v3.10.2">
<title data-rh="true">BigQuery | Apache Otava</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://otava.apache.org/docs/big-query"><met [...]
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.e5691cae.css">
-<script src="/assets/js/runtime~main.cbf2ad78.js" defer="defer"></script>
-<script src="/assets/js/main.663c53c1.js" defer="defer"></script>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.ce980333.css">
+<script src="/assets/js/runtime~main.0f49da90.js" defer="defer"></script>
+<script src="/assets/js/main.9e655e3e.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="schema">Schema<a href="#schema" class="hash-link" aria-label="Direct link to Schema" title="Direct link to Schema" translate="no"></a></h2>
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="schema">Schema<a href="#schema" class="hash-link" aria-label="Direct link to Schema" title="Direct link to Schema" translate="no"></a></h2>
<p>See <a href="https://github.com/apache/otava/tree/master/examples/bigquery/schema.sql" target="_blank" rel="noopener noreferrer" class="">schema.sql</a> for the example schema.</p>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="usage">Usage<a href="#usage" class="hash-link" aria-label="Direct link to Usage" title="Direct link to Usage" translate="no"></a></h2>
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="usage">Usage<a href="#usage" class="hash-link" aria-label="Direct link to Usage" title="Direct link to Usage" translate="no"></a></h2>
<p>Define BigQuery connection details via environment variables:</p>
-<div class="language-bash codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-bash codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">export BIGQUERY_PROJECT_ID=...</span><br></div><div class="token-line" style="color:#393A34" [...]
+<div class="language-bash codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-bash codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">export BIGQUERY_PROJECT_ID=...</span><br></div><div class="token-line" style="color:#393A34" [...]
<p>or in <code>otava.yaml</code>.</p>
<p>Also configure the credentials. See <a href="https://github.com/apache/otava/tree/master/examples/bigquery/config_credentials.sh" target="_blank" rel="noopener noreferrer" class="">config_credentials.sh</a> for an example.</p>
<p>The following command shows results for a single test <code>aggregate_mem</code> and updates the database with newly found change points:</p>
-<div class="language-bash codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-bash codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">$ BRANCH=trunk OTAVA_CONFIG=otava.yaml otava analyze aggregate_mem --update-bigquery</span>< [...]
+<div class="language-bash codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-bash codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">$ BRANCH=trunk OTAVA_CONFIG=otava.yaml otava analyze aggregate_mem --update-bigquery</span>< [...]
<p>
Apache Otava (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indica [...]
</p>
diff --git a/docs/community/index.html b/docs/community/index.html
index e389c70..5e2e86e 100644
--- a/docs/community/index.html
+++ b/docs/community/index.html
@@ -2,19 +2,19 @@
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-community" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
-<meta name="generator" content="Docusaurus v3.10.1">
+<meta name="generator" content="Docusaurus v3.10.2">
<title data-rh="true">Community | Apache Otava</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://otava.apache.org/docs/community"><me [...]
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.e5691cae.css">
-<script src="/assets/js/runtime~main.cbf2ad78.js" defer="defer"></script>
-<script src="/assets/js/main.663c53c1.js" defer="defer"></script>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.ce980333.css">
+<script src="/assets/js/runtime~main.0f49da90.js" defer="defer"></script>
+<script src="/assets/js/main.9e655e3e.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
<p>Apache Otava is an open source community and we welcome anyone who wants to participate and contribute to the project.</p>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="get-involved">Get Involved<a href="#get-involved" class="hash-link" aria-label="Direct link to Get Involved" title="Direct link to Get Involved" translate="no"></a></h2>
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="get-involved">Get Involved<a href="#get-involved" class="hash-link" aria-label="Direct link to Get Involved" title="Direct link to Get Involved" translate="no"></a></h2>
<p>There are several ways to get involved:</p>
<ul>
<li class="">Join the discussion on our mailing list</li>
@@ -22,7 +22,7 @@
<li class="">Contribute code or documentation</li>
<li class="">Help other users</li>
</ul>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="mailing-list">Mailing List<a href="#mailing-list" class="hash-link" aria-label="Direct link to Mailing List" title="Direct link to Mailing List" translate="no"></a></h2>
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="mailing-list">Mailing List<a href="#mailing-list" class="hash-link" aria-label="Direct link to Mailing List" title="Direct link to Mailing List" translate="no"></a></h2>
<p><strong>Dev/User List</strong>: <a href="mailto:dev@otava.apache.org" target="_blank" rel="noopener noreferrer" class="">dev@otava.apache.org</a>. This is a single mailing list for both general user questions and
development discussions.</p>
<ul>
@@ -38,15 +38,15 @@ development discussions.</p>
<a href="mailto:commits-unsubscribe@otava.apache.org" target="_blank" rel="noopener noreferrer" class="">commits-unsubscribe@otava.apache.org</a></li>
<li class="">Archives: <a href="https://lists.apache.org/list.html?commits@otava.apache.org" target="_blank" rel="noopener noreferrer" class="">https://lists.apache.org/list.html?commits@otava.apache.org</a></li>
</ul>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="report-issues">Report Issues<a href="#report-issues" class="hash-link" aria-label="Direct link to Report Issues" title="Direct link to Report Issues" translate="no"></a></h2>
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="report-issues">Report Issues<a href="#report-issues" class="hash-link" aria-label="Direct link to Report Issues" title="Direct link to Report Issues" translate="no"></a></h2>
<p>Found a bug? Missing a feature? Let us know by creating an issue in our <a href="https://github.com/apache/otava/issues" target="_blank" rel="noopener noreferrer" class="">GitHub repository</a>.</p>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="contribute">Contribute<a href="#contribute" class="hash-link" aria-label="Direct link to Contribute" title="Direct link to Contribute" translate="no"></a></h2>
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="contribute">Contribute<a href="#contribute" class="hash-link" aria-label="Direct link to Contribute" title="Direct link to Contribute" translate="no"></a></h2>
<p>We welcome contributions! Please check our <a class="" href="/docs/contribute">contribution guidelines</a> to get started.</p>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="slack">Slack<a href="#slack" class="hash-link" aria-label="Direct link to Slack" title="Direct link to Slack" translate="no"></a></h2>
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="slack">Slack<a href="#slack" class="hash-link" aria-label="Direct link to Slack" title="Direct link to Slack" translate="no"></a></h2>
<p>You can also join the community on <code>#otava</code> channel in official ASF Slack. <a href="https://s.apache.org/slack-invite" target="_blank" rel="noopener noreferrer" class="">Sign up for an ASF Slack account</a>.</p>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="code-of-conduct">Code of Conduct<a href="#code-of-conduct" class="hash-link" aria-label="Direct link to Code of Conduct" title="Direct link to Code of Conduct" translate="no"></a></h2>
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="code-of-conduct">Code of Conduct<a href="#code-of-conduct" class="hash-link" aria-label="Direct link to Code of Conduct" title="Direct link to Code of Conduct" translate="no"></a></h2>
<p>The Apache Otava community adheres to the <a href="https://www.apache.org/foundation/policies/conduct.html" target="_blank" rel="noopener noreferrer" class="">Apache Code of Conduct</a>. We expect all
-participants to follow these guidelines to maintain a welcoming and inclusive environment.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_AJKP"><a href="https://github.com/apache/otava-website/tree/master/docs/community.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_6H3h" aria-hid [...]
+participants to follow these guidelines to maintain a welcoming and inclusive environment.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_Wgkb"><a href="https://github.com/apache/otava-website/tree/master/docs/community.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Df7L" aria-hid [...]
<p>
Apache Otava (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indica [...]
</p>
diff --git a/docs/contribute/index.html b/docs/contribute/index.html
index 32aea95..802aae9 100644
--- a/docs/contribute/index.html
+++ b/docs/contribute/index.html
@@ -2,17 +2,17 @@
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-contribute" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
-<meta name="generator" content="Docusaurus v3.10.1">
+<meta name="generator" content="Docusaurus v3.10.2">
<title data-rh="true">Contribute | Apache Otava</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://otava.apache.org/docs/contribute">< [...]
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.e5691cae.css">
-<script src="/assets/js/runtime~main.cbf2ad78.js" defer="defer"></script>
-<script src="/assets/js/main.663c53c1.js" defer="defer"></script>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.ce980333.css">
+<script src="/assets/js/runtime~main.0f49da90.js" defer="defer"></script>
+<script src="/assets/js/main.9e655e3e.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
<ul>
<li class="">
<p>The project uses <a href="https://docs.astral.sh/uv/" target="_blank" rel="noopener noreferrer" class="">uv</a> for dependency management and <a href="https://tox.wiki" target="_blank" rel="noopener noreferrer" class="">tox</a> for testing environments.</p>
@@ -21,34 +21,34 @@
<p>Install dependencies using uv:</p>
</li>
</ul>
-<div class="language-text codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-text codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">uv sync --all-extras --dev</span><br></div></code></pre></div></div>
+<div class="language-text codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-text codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">uv sync --all-extras --dev</span><br></div></code></pre></div></div>
<ul>
<li class="">Run the development version of otava using uv:</li>
</ul>
-<div class="language-text codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-text codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">uv run otava ...</span><br></div></code></pre></div></div>
+<div class="language-text codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-text codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">uv run otava ...</span><br></div></code></pre></div></div>
<p>See the <a href="https://docs.astral.sh/uv/" target="_blank" rel="noopener noreferrer" class="">uv docs</a> for more.</p>
<h1>Running tests</h1>
-<div class="language-text codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-text codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">uv run pytest</span><br></div></code></pre></div></div>
+<div class="language-text codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-text codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">uv run pytest</span><br></div></code></pre></div></div>
<p>...or using <a href="https://tox.readthedocs.io/" target="_blank" rel="noopener noreferrer" class="">tox</a>:</p>
-<div class="language-text codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-text codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">uv run tox</span><br></div></code></pre></div></div>
+<div class="language-text codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-text codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">uv run tox</span><br></div></code></pre></div></div>
<h1>Linting and formatting</h1>
<p>Code-style is enforced using <a href="https://docs.astral.sh/ruff/" target="_blank" rel="noopener noreferrer" class="">ruff</a> and <a href="https://flake8.pycqa.org/" target="_blank" rel="noopener noreferrer" class="">flake8</a>; import optimisation is handled by <a href="https://pycqa.github.io/isort/" target="_blank" rel="noopener noreferrer" class="">isort</a> and <a href="https://pypi.org/project/autoflake/" target="_blank" rel="noopener noreferrer" class="">autoflake</a>. Linti [...]
-<div class="language-text codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-text codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">uv run tox -e format</span><br></div></code></pre></div></div>
+<div class="language-text codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-text codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">uv run tox -e format</span><br></div></code></pre></div></div>
<h1>Changing the LICENSE header</h1>
<p>To change the license header:</p>
<ol>
<li class="">Add the <code>--remove-header</code> arg to <code>.pre-commit-config.yaml</code></li>
<li class="">Run formatting (this will remove the license header entirely)</li>
</ol>
-<div class="language-text codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-text codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">uv run tox -e format</span><br></div></code></pre></div></div>
+<div class="language-text codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-text codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">uv run tox -e format</span><br></div></code></pre></div></div>
<ol start="3">
<li class="">Remove the <code>--remove-header</code> arg from <code>.pre-commit-config.yaml</code></li>
<li class="">Update <code>ci-tools/license-templates/LICENSE.txt</code></li>
<li class="">Run formatting</li>
</ol>
-<div class="language-text codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-text codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">uv run tox -e format</span><br></div></code></pre></div></div>
+<div class="language-text codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-text codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">uv run tox -e format</span><br></div></code></pre></div></div>
<h1>Build a docker image</h1>
-<div class="language-text codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-text codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">uv run tox -e docker-build</span><br></div></code></pre></div></div></div><footer class="the [...]
+<div class="language-text codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-text codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">uv run tox -e docker-build</span><br></div></code></pre></div></div></div><footer class="the [...]
<p>
Apache Otava (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indica [...]
</p>
diff --git a/docs/csv/index.html b/docs/csv/index.html
index 0c03545..8f4dfc2 100644
--- a/docs/csv/index.html
+++ b/docs/csv/index.html
@@ -2,24 +2,24 @@
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-csv" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
-<meta name="generator" content="Docusaurus v3.10.1">
+<meta name="generator" content="Docusaurus v3.10.2">
<title data-rh="true">CSV | Apache Otava</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://otava.apache.org/docs/csv"><meta data-rh=" [...]
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.e5691cae.css">
-<script src="/assets/js/runtime~main.cbf2ad78.js" defer="defer"></script>
-<script src="/assets/js/main.663c53c1.js" defer="defer"></script>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.ce980333.css">
+<script src="/assets/js/runtime~main.0f49da90.js" defer="defer"></script>
+<script src="/assets/js/main.9e655e3e.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
-<div class="theme-admonition theme-admonition-tip admonition_xPY5 alert alert--success"><div class="admonitionHeading_CHqH"><span class="admonitionIcon_T4xL"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="tests">Tests<a href="#tests" class="hash-link" aria-label="Direct link to Tests" title="Direct link to Tests" translate="no"></a></h2>
-<div class="language-yaml codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-yaml codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">tests</span><span class="token punctuation" style="color:#393A34" [...]
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="example">Example<a href="#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h2>
-<div class="language-bash codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-bash codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">docker-compose -f examples/csv/docker-compose.yaml run --rm otava analyze local.sample</span [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
+<div class="theme-admonition theme-admonition-tip admonition_pKXU alert alert--success"><div class="admonitionHeading_xMuP"><span class="admonitionIcon_LzAK"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="tests">Tests<a href="#tests" class="hash-link" aria-label="Direct link to Tests" title="Direct link to Tests" translate="no"></a></h2>
+<div class="language-yaml codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-yaml codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">tests</span><span class="token punctuation" style="color:#393A34" [...]
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="example">Example<a href="#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h2>
+<div class="language-bash codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-bash codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">docker-compose -f examples/csv/docker-compose.yaml run --rm otava analyze local.sample</span [...]
<p>Expected output:</p>
-<div class="language-bash codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-bash codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">time commit metric1 metric2</span><br></div><div class="token- [...]
+<div class="language-bash codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-bash codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">time commit metric1 metric2</span><br></div><div class="token- [...]
<p>
Apache Otava (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indica [...]
</p>
diff --git a/docs/download/index.html b/docs/download/index.html
index 02fe599..8e0156a 100644
--- a/docs/download/index.html
+++ b/docs/download/index.html
@@ -2,43 +2,43 @@
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-download" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
-<meta name="generator" content="Docusaurus v3.10.1">
+<meta name="generator" content="Docusaurus v3.10.2">
<title data-rh="true">Download | Apache Otava</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://otava.apache.org/docs/download"><meta [...]
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.e5691cae.css">
-<script src="/assets/js/runtime~main.cbf2ad78.js" defer="defer"></script>
-<script src="/assets/js/main.663c53c1.js" defer="defer"></script>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.ce980333.css">
+<script src="/assets/js/runtime~main.0f49da90.js" defer="defer"></script>
+<script src="/assets/js/main.9e655e3e.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
<p>Apache Otava is released as source code tarballs with corresponding binary convenience artifacts. The latest release is available below.</p>
<p>All releases are available under the <a href="https://www.apache.org/licenses/LICENSE-2.0" target="_blank" rel="noopener noreferrer" class="">Apache License, Version 2.0</a>.</p>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="verify-releases">Verify Releases<a href="#verify-releases" class="hash-link" aria-label="Direct link to Verify Releases" title="Direct link to Verify Releases" translate="no"></a></h2>
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="verify-releases">Verify Releases<a href="#verify-releases" class="hash-link" aria-label="Direct link to Verify Releases" title="Direct link to Verify Releases" translate="no"></a></h2>
<p>You can verify releases using the provided signatures and checksums. The <a href="https://downloads.apache.org/incubator/otava/KEYS" target="_blank" rel="noopener noreferrer" class="">KEYS</a> file contains the public PGP keys for signature verification. See <a href="https://www.apache.org/info/verification.html" target="_blank" rel="noopener noreferrer" class="">How to Verify</a> for details.</p>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="latest-release">Latest Release<a href="#latest-release" class="hash-link" aria-label="Direct link to Latest Release" title="Direct link to Latest Release" translate="no"></a></h2>
-<h3 class="anchor anchorTargetStickyNavbar_WKy1" id="080-latest">0.8.0 (Latest)<a href="#080-latest" class="hash-link" aria-label="Direct link to 0.8.0 (Latest)" title="Direct link to 0.8.0 (Latest)" translate="no"></a></h3>
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="latest-release">Latest Release<a href="#latest-release" class="hash-link" aria-label="Direct link to Latest Release" title="Direct link to Latest Release" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_gcg8" id="080-latest">0.8.0 (Latest)<a href="#080-latest" class="hash-link" aria-label="Direct link to 0.8.0 (Latest)" title="Direct link to 0.8.0 (Latest)" translate="no"></a></h3>
<p>Released: May 2026</p>
<table><thead><tr><th>Package</th><th>Download</th><th>Signature</th><th>Checksum</th></tr></thead><tbody><tr><td>Source</td><td><a href="https://www.apache.org/dyn/closer.lua/incubator/otava/0.8.0-incubating/apache-otava-0.8.0-incubating-src.tar.gz" target="_blank" rel="noopener noreferrer" class="">apache-otava-0.8.0-incubating-src.tar.gz</a></td><td><a href="https://downloads.apache.org/incubator/otava/0.8.0-incubating/apache-otava-0.8.0-incubating-src.tar.gz.asc" target="_blank" rel= [...]
<p><a href="https://github.com/apache/otava/releases/tag/0.8.0-incubating" target="_blank" rel="noopener noreferrer" class="">Release Notes</a> | <a class="" href="/docs/getting-started">Documentation</a></p>
<p><strong>Other ways to install:</strong></p>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="install-from-pypi">Install from PyPI<a href="#install-from-pypi" class="hash-link" aria-label="Direct link to Install from PyPI" title="Direct link to Install from PyPI" translate="no"></a></h2>
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="install-from-pypi">Install from PyPI<a href="#install-from-pypi" class="hash-link" aria-label="Direct link to Install from PyPI" title="Direct link to Install from PyPI" translate="no"></a></h2>
<p>The recommended way to install Apache Otava for most users is via PyPI:</p>
-<div class="language-bash codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-bash codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">pip install apache-otava</span><br></div></code></pre></div></div>
+<div class="language-bash codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-bash codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">pip install apache-otava</span><br></div></code></pre></div></div>
<p>For a specific version:</p>
-<div class="language-bash codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-bash codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">pip install apache-otava==0.8.0</span><br></div></code></pre></div></div>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="install-from-docker">Install from Docker<a href="#install-from-docker" class="hash-link" aria-label="Direct link to Install from Docker" title="Direct link to Install from Docker" translate="no"></a></h2>
+<div class="language-bash codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-bash codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">pip install apache-otava==0.8.0</span><br></div></code></pre></div></div>
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="install-from-docker">Install from Docker<a href="#install-from-docker" class="hash-link" aria-label="Direct link to Install from Docker" title="Direct link to Install from Docker" translate="no"></a></h2>
<p>Pull the official Docker image from Docker Hub:</p>
-<div class="language-bash codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-bash codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">docker pull apache/otava</span><br></div></code></pre></div></div>
+<div class="language-bash codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-bash codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">docker pull apache/otava</span><br></div></code></pre></div></div>
<p>For a specific version:</p>
-<div class="language-bash codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-bash codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">docker pull apache/otava:0.7.0</span><br></div></code></pre></div></div>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="build-from-source">Build from Source<a href="#build-from-source" class="hash-link" aria-label="Direct link to Build from Source" title="Direct link to Build from Source" translate="no"></a></h2>
+<div class="language-bash codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-bash codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">docker pull apache/otava:0.7.0</span><br></div></code></pre></div></div>
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="build-from-source">Build from Source<a href="#build-from-source" class="hash-link" aria-label="Direct link to Build from Source" title="Direct link to Build from Source" translate="no"></a></h2>
<p>To build Apache Otava from source, clone the repository and install:</p>
-<div class="language-bash codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-bash codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">git clone https://github.com/apache/otava.git</span><br></div><div class="token-line" style= [...]
+<div class="language-bash codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-bash codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">git clone https://github.com/apache/otava.git</span><br></div><div class="token-line" style= [...]
<p>For more details, see the <a class="" href="/docs/install">Installation Guide</a> and <a class="" href="/docs/getting-started">Getting Started</a> documentation.</p>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="all-releases">All Releases<a href="#all-releases" class="hash-link" aria-label="Direct link to All Releases" title="Direct link to All Releases" translate="no"></a></h2>
-<p>All Apache Otava releases are available from the <a href="https://archive.apache.org/dist/incubator/otava/" target="_blank" rel="noopener noreferrer" class="">Apache Download Archive</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_AJKP"><a href="https://github.com/apache/otava-website/tree/master/docs/download.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page" [...]
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="all-releases">All Releases<a href="#all-releases" class="hash-link" aria-label="Direct link to All Releases" title="Direct link to All Releases" translate="no"></a></h2>
+<p>All Apache Otava releases are available from the <a href="https://archive.apache.org/dist/incubator/otava/" target="_blank" rel="noopener noreferrer" class="">Apache Download Archive</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_Wgkb"><a href="https://github.com/apache/otava-website/tree/master/docs/download.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page" [...]
<p>
Apache Otava (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indica [...]
</p>
diff --git a/docs/getting-started/index.html b/docs/getting-started/index.html
index e7bba00..2bbadac 100644
--- a/docs/getting-started/index.html
+++ b/docs/getting-started/index.html
@@ -2,58 +2,58 @@
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-getting-started" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
-<meta name="generator" content="Docusaurus v3.10.1">
+<meta name="generator" content="Docusaurus v3.10.2">
<title data-rh="true">Getting Started | Apache Otava</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://otava.apache.org/docs/getting- [...]
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.e5691cae.css">
-<script src="/assets/js/runtime~main.cbf2ad78.js" defer="defer"></script>
-<script src="/assets/js/main.663c53c1.js" defer="defer"></script>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.ce980333.css">
+<script src="/assets/js/runtime~main.0f49da90.js" defer="defer"></script>
+<script src="/assets/js/main.9e655e3e.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
-<div class="theme-admonition theme-admonition-tip admonition_xPY5 alert alert--success"><div class="admonitionHeading_CHqH"><span class="admonitionIcon_T4xL"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="installation">Installation<a href="#installation" class="hash-link" aria-label="Direct link to Installation" title="Direct link to Installation" translate="no"></a></h2>
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
+<div class="theme-admonition theme-admonition-tip admonition_pKXU alert alert--success"><div class="admonitionHeading_xMuP"><span class="admonitionIcon_LzAK"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="installation">Installation<a href="#installation" class="hash-link" aria-label="Direct link to Installation" title="Direct link to Installation" translate="no"></a></h2>
<p>Otava requires Python 3.8. If you don't have Python 3.8, use pyenv to install it.</p>
-<div class="language-bash codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-bash codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">pip install apache-otava</span><br></div></code></pre></div></div>
+<div class="language-bash codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-bash codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">pip install apache-otava</span><br></div></code></pre></div></div>
<p>or</p>
-<div class="language-bash codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-bash codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">docker pull apache/otava</span><br></div></code></pre></div></div>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="setup">Setup<a href="#setup" class="hash-link" aria-label="Direct link to Setup" title="Direct link to Setup" translate="no"></a></h2>
+<div class="language-bash codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-bash codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">docker pull apache/otava</span><br></div></code></pre></div></div>
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="setup">Setup<a href="#setup" class="hash-link" aria-label="Direct link to Setup" title="Direct link to Setup" translate="no"></a></h2>
<p>Copy the main configuration file <code>resources/otava.yaml</code> to <code>~/.otava/otava.yaml</code> and adjust data source configuration.</p>
-<div class="theme-admonition theme-admonition-tip admonition_xPY5 alert alert--success"><div class="admonitionHeading_CHqH"><span class="admonitionIcon_T4xL"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
+<div class="theme-admonition theme-admonition-tip admonition_pKXU alert alert--success"><div class="admonitionHeading_xMuP"><span class="admonitionIcon_LzAK"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
<a class="" href="/docs/postgresql">PostgreSQL</a>, or <a class="" href="/docs/big-query">BigQuery</a>.</p></div></div>
<p>Alternatively, it is possible to leave the config file as is, and provide credentials in the environment
by setting appropriate environment variables.
Environment variables are interpolated before interpreting the configuration file.</p>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="defining-tests">Defining tests<a href="#defining-tests" class="hash-link" aria-label="Direct link to Defining tests" title="Direct link to Defining tests" translate="no"></a></h2>
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="defining-tests">Defining tests<a href="#defining-tests" class="hash-link" aria-label="Direct link to Defining tests" title="Direct link to Defining tests" translate="no"></a></h2>
<p>All test configurations are defined in the main configuration file.
Otava supports reading data from and publishing results to a CSV file, <a href="https://graphiteapp.org/" target="_blank" rel="noopener noreferrer" class="">Graphite</a>,
<a href="https://www.postgresql.org/" target="_blank" rel="noopener noreferrer" class="">PostgreSQL</a>, and <a href="https://cloud.google.com/bigquery" target="_blank" rel="noopener noreferrer" class="">BigQuery</a>.</p>
<p>Tests are defined in the <code>tests</code> section. For example, the following definition will import results of the test from a CSV file:</p>
-<div class="language-yaml codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-yaml codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">tests</span><span class="token punctuation" style="color:#393A34" [...]
+<div class="language-yaml codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-yaml codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">tests</span><span class="token punctuation" style="color:#393A34" [...]
<p>The <code>time_column</code> property points to the name of the column storing the timestamp
of each test-run. The data points will be ordered by that column.</p>
<p>The <code>metrics</code> property selects the columns that hold the values to be analyzed. These values must
be numbers convertible to floats. The <code>metrics</code> property can be not only a simple list of column
names, but it can also be a dictionary configuring other properties of each metric,
the column name or direction:</p>
-<div class="language-yaml codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-yaml codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">metrics</span><span class="token punctuation" style="color:#393A3 [...]
+<div class="language-yaml codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-yaml codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">metrics</span><span class="token punctuation" style="color:#393A3 [...]
<p>Direction can be 1 or -1. If direction is set to 1, this means that the higher the metric, the
better the performance is. If it is set to -1, higher values mean worse performance.</p>
<p>The <code>attributes</code> property describes any other columns that should be attached to the final
report. Special attribute <code>version</code> and <code>commit</code> can be used to query for a given time-range.</p>
-<div class="theme-admonition theme-admonition-tip admonition_xPY5 alert alert--success"><div class="admonitionHeading_CHqH"><span class="admonitionIcon_T4xL"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="listing-available-tests">Listing Available Tests<a href="#listing-available-tests" class="hash-link" aria-label="Direct link to Listing Available Tests" title="Direct link to Listing Available Tests" translate="no"></a></h2>
-<div class="language-text codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-text codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">otava list-groups</span><br></div><div class="token-line" style="color:#393A34"><span class= [...]
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="listing-available-metrics-for-tests">Listing Available Metrics for Tests<a href="#listing-available-metrics-for-tests" class="hash-link" aria-label="Direct link to Listing Available Metrics for Tests" title="Direct link to Listing Available Metrics for Tests" translate="no"></a></h2>
+<div class="theme-admonition theme-admonition-tip admonition_pKXU alert alert--success"><div class="admonitionHeading_xMuP"><span class="admonitionIcon_LzAK"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="listing-available-tests">Listing Available Tests<a href="#listing-available-tests" class="hash-link" aria-label="Direct link to Listing Available Tests" title="Direct link to Listing Available Tests" translate="no"></a></h2>
+<div class="language-text codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-text codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">otava list-groups</span><br></div><div class="token-line" style="color:#393A34"><span class= [...]
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="listing-available-metrics-for-tests">Listing Available Metrics for Tests<a href="#listing-available-metrics-for-tests" class="hash-link" aria-label="Direct link to Listing Available Metrics for Tests" title="Direct link to Listing Available Metrics for Tests" translate="no"></a></h2>
<p>To list all available metrics defined for the test:</p>
-<div class="language-text codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-text codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">otava list-metrics <test></span><br></div></code></pre></div></div>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="finding-change-points">Finding Change Points<a href="#finding-change-points" class="hash-link" aria-label="Direct link to Finding Change Points" title="Direct link to Finding Change Points" translate="no"></a></h2>
-<div class="theme-admonition theme-admonition-tip admonition_xPY5 alert alert--success"><div class="admonitionHeading_CHqH"><span class="admonitionIcon_T4xL"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
+<div class="language-text codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-text codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">otava list-metrics <test></span><br></div></code></pre></div></div>
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="finding-change-points">Finding Change Points<a href="#finding-change-points" class="hash-link" aria-label="Direct link to Finding Change Points" title="Direct link to Finding Change Points" translate="no"></a></h2>
+<div class="theme-admonition theme-admonition-tip admonition_pKXU alert alert--success"><div class="admonitionHeading_xMuP"><span class="admonitionIcon_LzAK"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
<a class="" href="/docs/basics#validating-performance-of-a-feature-branch">Validating Performance of a Feature Branch</a>.
For an in-depth explanation of the underlying algorithm, see <a class="" href="/docs/math">Change Point Detection</a>.</p></div></div>
-<div class="language-text codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-text codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">otava analyze <test>...</span><br></div><div class="token-line" style="color:#393A34"> [...]
+<div class="language-text codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-text codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">otava analyze <test>...</span><br></div><div class="token-line" style="color:#393A34"> [...]
<p>This command prints interesting results of all runs of the test and a list of change-points.</p>
<p>A change-point is a moment when a metric value starts to differ significantly from the values of the earlier runs and
when the difference is statistically significant.</p>
@@ -63,8 +63,8 @@ more data points are needed to confirm the change, therefore Otava may not notic
that regressed.</p>
<p>The <code>analyze</code> command accepts multiple tests or test groups.
The results are simply concatenated.</p>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="example">Example<a href="#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h2>
-<div class="language-text codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-text codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">$ otava analyze local.sample</span><br></div><div class="token-line" style="color:#393A34">< [...]
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="example">Example<a href="#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h2>
+<div class="language-text codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-text codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">$ otava analyze local.sample</span><br></div><div class="token-line" style="color:#393A34">< [...]
<p>
Apache Otava (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indica [...]
</p>
diff --git a/docs/grafana/index.html b/docs/grafana/index.html
index 44fcfec..23d7817 100644
--- a/docs/grafana/index.html
+++ b/docs/grafana/index.html
@@ -2,20 +2,20 @@
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-grafana" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
-<meta name="generator" content="Docusaurus v3.10.1">
+<meta name="generator" content="Docusaurus v3.10.2">
<title data-rh="true">Grafana Integration | Apache Otava</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://otava.apache.org/docs/graf [...]
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.e5691cae.css">
-<script src="/assets/js/runtime~main.cbf2ad78.js" defer="defer"></script>
-<script src="/assets/js/main.663c53c1.js" defer="defer"></script>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.ce980333.css">
+<script src="/assets/js/runtime~main.0f49da90.js" defer="defer"></script>
+<script src="/assets/js/main.9e655e3e.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
<p>Change points found by <code>analyze</code> can be exported
as Grafana annotations using the <code>--update-grafana</code> flag:</p>
-<div class="language-text codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-text codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">$ otava analyze <test or group> --update-grafana</span><br></div></code></pre></div></div>
+<div class="language-text codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-text codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">$ otava analyze <test or group> --update-grafana</span><br></div></code></pre></div></div>
<p>The annotations generated by Otava get the following tags:</p>
<ul>
<li class=""><code>otava</code></li>
@@ -38,16 +38,16 @@ and each path component is exported as a separate tag</li>
<li class=""><code>%{GRAPHITE_PREFIX_COMPONENTS}</code> - similar as <code>%{GRAPHITE_PATH_COMPONENTS}</code> but splits the prefix
of the path instead of the path</li>
</ul>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="example">Example<a href="#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h2>
-<div class="theme-admonition theme-admonition-tip admonition_xPY5 alert alert--success"><div class="admonitionHeading_CHqH"><span class="admonitionIcon_T4xL"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="example">Example<a href="#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h2>
+<div class="theme-admonition theme-admonition-tip admonition_pKXU alert alert--success"><div class="admonitionHeading_xMuP"><span class="admonitionIcon_LzAK"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
<p>Start docker-compose with Graphite in one tab:</p>
-<div class="language-bash codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-bash codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">docker-compose -f examples/graphite/docker-compose.yaml up --force-recreate --always-recreat [...]
+<div class="language-bash codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-bash codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">docker-compose -f examples/graphite/docker-compose.yaml up --force-recreate --always-recreat [...]
<p>Run otava in another tab:</p>
-<div class="language-bash codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-bash codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">docker-compose -f examples/graphite/docker-compose.yaml run --rm otava analyze my-product.te [...]
+<div class="language-bash codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-bash codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">docker-compose -f examples/graphite/docker-compose.yaml run --rm otava analyze my-product.te [...]
<p>Expected output:</p>
-<div class="language-bash codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-bash codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">time run branch version commit throughput response_ti [...]
+<div class="language-bash codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-bash codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">time run branch version commit throughput response_ti [...]
<p>Open local <a href="http://localhost:3000" target="_blank" rel="noopener noreferrer" class="">Grafana</a> in your browser (use default <code>admin/admin</code> credentials), open
-<code>Benchmarks</code> dashboard, and see your data points and annotations on both charts.:</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_AJKP"><a href="https://github.com/apache/otava-website/tree/master/docs/grafana.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_6H3h" aria-hid [...]
+<code>Benchmarks</code> dashboard, and see your data points and annotations on both charts.:</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_Wgkb"><a href="https://github.com/apache/otava-website/tree/master/docs/grafana.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Df7L" aria-hid [...]
<p>
Apache Otava (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indica [...]
</p>
diff --git a/docs/graphite/index.html b/docs/graphite/index.html
index 23279b0..dd09b9f 100644
--- a/docs/graphite/index.html
+++ b/docs/graphite/index.html
@@ -2,29 +2,29 @@
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-graphite" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
-<meta name="generator" content="Docusaurus v3.10.1">
+<meta name="generator" content="Docusaurus v3.10.2">
<title data-rh="true">Graphite | Apache Otava</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://otava.apache.org/docs/graphite"><meta [...]
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.e5691cae.css">
-<script src="/assets/js/runtime~main.cbf2ad78.js" defer="defer"></script>
-<script src="/assets/js/main.663c53c1.js" defer="defer"></script>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.ce980333.css">
+<script src="/assets/js/runtime~main.0f49da90.js" defer="defer"></script>
+<script src="/assets/js/main.9e655e3e.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
-<div class="theme-admonition theme-admonition-tip admonition_xPY5 alert alert--success"><div class="admonitionHeading_CHqH"><span class="admonitionIcon_T4xL"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="graphite-and-grafana-connection">Graphite and Grafana Connection<a href="#graphite-and-grafana-connection" class="hash-link" aria-label="Direct link to Graphite and Grafana Connection" title="Direct link to Graphite and Grafana Connection" translate="no"></a></h2>
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
+<div class="theme-admonition theme-admonition-tip admonition_pKXU alert alert--success"><div class="admonitionHeading_xMuP"><span class="admonitionIcon_LzAK"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="graphite-and-grafana-connection">Graphite and Grafana Connection<a href="#graphite-and-grafana-connection" class="hash-link" aria-label="Direct link to Graphite and Grafana Connection" title="Direct link to Graphite and Grafana Connection" translate="no"></a></h2>
<p>The following block contains Graphite and Grafana connection details:</p>
-<div class="language-yaml codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-yaml codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">graphite</span><span class="token punctuation" style="color:#393A [...]
+<div class="language-yaml codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-yaml codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">graphite</span><span class="token punctuation" style="color:#393A [...]
<p>These variables can be specified directly in <code>otava.yaml</code> or passed as environment variables:</p>
-<div class="language-yaml codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-yaml codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">graphite</span><span class="token punctuation" style="color:#393A [...]
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="tests">Tests<a href="#tests" class="hash-link" aria-label="Direct link to Tests" title="Direct link to Tests" translate="no"></a></h2>
-<h3 class="anchor anchorTargetStickyNavbar_WKy1" id="importing-results-from-graphite-1">Importing results from Graphite<a href="#importing-results-from-graphite-1" class="hash-link" aria-label="Direct link to Importing results from Graphite" title="Direct link to Importing results from Graphite" translate="no"></a></h3>
+<div class="language-yaml codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-yaml codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">graphite</span><span class="token punctuation" style="color:#393A [...]
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="tests">Tests<a href="#tests" class="hash-link" aria-label="Direct link to Tests" title="Direct link to Tests" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_gcg8" id="importing-results-from-graphite-1">Importing results from Graphite<a href="#importing-results-from-graphite-1" class="hash-link" aria-label="Direct link to Importing results from Graphite" title="Direct link to Importing results from Graphite" translate="no"></a></h3>
<p>Test configuration contains queries selecting experiment data from Graphite. This is done by specifying the Graphite
path prefix common for all the test's metrics and suffixes for each of the metrics recorded by the test run.</p>
-<div class="language-yaml codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-yaml codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">tests</span><span class="token punctuation" style="color:#393A34" [...]
-<h3 class="anchor anchorTargetStickyNavbar_WKy1" id="tags">Tags<a href="#tags" class="hash-link" aria-label="Direct link to Tags" title="Direct link to Tags" translate="no"></a></h3>
+<div class="language-yaml codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-yaml codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">tests</span><span class="token punctuation" style="color:#393A34" [...]
+<h3 class="anchor anchorTargetStickyNavbar_gcg8" id="tags">Tags<a href="#tags" class="hash-link" aria-label="Direct link to Tags" title="Direct link to Tags" translate="no"></a></h3>
<blockquote>
<p>[!WARNING]
Tags do not work as expected in the current version. See <a href="https://github.com/apache/otava/issues/24" target="_blank" rel="noopener noreferrer" class="">https://github.com/apache/otava/issues/24</a> for more details</p>
@@ -32,16 +32,16 @@ Tags do not work as expected in the current version. See <a href="https://github
<p>The optional <code>tags</code> property contains the tags that are used to query for Graphite events that store
additional test run metadata such as run identifier, commit, branch and product version information.</p>
<p>The following command will post an event with the test run metadata:</p>
-<div class="language-shell codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-shell codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">$ curl -X POST "http://graphite_address/events/" \</span><br></div><div class="t [...]
+<div class="language-shell codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-shell codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">$ curl -X POST "http://graphite_address/events/" \</span><br></div><div class="t [...]
<p>Posting those events is not mandatory, but when they are available, Otava is able to
filter data by commit or version using <code>--since-commit</code> or <code>--since-version</code> selectors.</p>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="example">Example<a href="#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h2>
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="example">Example<a href="#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h2>
<p>Start docker-compose with Graphite in one tab:</p>
-<div class="language-bash codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-bash codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">docker-compose -f examples/graphite/docker-compose.yaml up --force-recreate --always-recreat [...]
+<div class="language-bash codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-bash codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">docker-compose -f examples/graphite/docker-compose.yaml up --force-recreate --always-recreat [...]
<p>Run otava in another tab:</p>
-<div class="language-bash codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-bash codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">docker-compose -f examples/graphite/docker-compose.yaml run --rm otava analyze my-product.te [...]
+<div class="language-bash codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-bash codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">docker-compose -f examples/graphite/docker-compose.yaml run --rm otava analyze my-product.te [...]
<p>Expected output:</p>
-<div class="language-bash codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-bash codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">time run branch version commit throughput response_ti [...]
+<div class="language-bash codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-bash codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">time run branch version commit throughput response_ti [...]
<p>
Apache Otava (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indica [...]
</p>
diff --git a/docs/install/index.html b/docs/install/index.html
index ab8e6b4..0187a6c 100644
--- a/docs/install/index.html
+++ b/docs/install/index.html
@@ -2,23 +2,23 @@
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-install" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
-<meta name="generator" content="Docusaurus v3.10.1">
+<meta name="generator" content="Docusaurus v3.10.2">
<title data-rh="true">Installation | Apache Otava</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://otava.apache.org/docs/install"><m [...]
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.e5691cae.css">
-<script src="/assets/js/runtime~main.cbf2ad78.js" defer="defer"></script>
-<script src="/assets/js/main.663c53c1.js" defer="defer"></script>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.ce980333.css">
+<script src="/assets/js/runtime~main.0f49da90.js" defer="defer"></script>
+<script src="/assets/js/main.9e655e3e.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="install-using-pip">Install using pip<a href="#install-using-pip" class="hash-link" aria-label="Direct link to Install using pip" title="Direct link to Install using pip" translate="no"></a></h2>
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="install-using-pip">Install using pip<a href="#install-using-pip" class="hash-link" aria-label="Direct link to Install using pip" title="Direct link to Install using pip" translate="no"></a></h2>
<p>Otava requires Python 3.8. If you don't have python 3.8, use pyenv to install it.</p>
-<div class="language-bash codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-bash codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">pip install apache-otava</span><br></div></code></pre></div></div>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="install-using-docker">Install using Docker<a href="#install-using-docker" class="hash-link" aria-label="Direct link to Install using Docker" title="Direct link to Install using Docker" translate="no"></a></h2>
+<div class="language-bash codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-bash codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">pip install apache-otava</span><br></div></code></pre></div></div>
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="install-using-docker">Install using Docker<a href="#install-using-docker" class="hash-link" aria-label="Direct link to Install using Docker" title="Direct link to Install using Docker" translate="no"></a></h2>
<p>Pull the official Docker image:</p>
-<div class="language-bash codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-bash codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">docker pull apache/otava</span><br></div></code></pre></div></div></div><footer class="theme [...]
+<div class="language-bash codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-bash codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">docker pull apache/otava</span><br></div></code></pre></div></div></div><footer class="theme [...]
<p>
Apache Otava (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indica [...]
</p>
diff --git a/docs/math/index.html b/docs/math/index.html
index 9e39760..e4322f1 100644
--- a/docs/math/index.html
+++ b/docs/math/index.html
@@ -2,18 +2,18 @@
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-math" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
-<meta name="generator" content="Docusaurus v3.10.1">
+<meta name="generator" content="Docusaurus v3.10.2">
<title data-rh="true">Change Point Detection | Apache Otava</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://otava.apache.org/docs/m [...]
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.e5691cae.css">
-<script src="/assets/js/runtime~main.cbf2ad78.js" defer="defer"></script>
-<script src="/assets/js/main.663c53c1.js" defer="defer"></script>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.ce980333.css">
+<script src="/assets/js/runtime~main.0f49da90.js" defer="defer"></script>
+<script src="/assets/js/main.9e655e3e.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h2>
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h2>
<p>Apache Otava implements a nonparametric change point detection algorithm designed to identify statistically significant distribution changes in time-ordered data. The method is primarily based on the <strong>E-Divisive family of algorithms</strong> for multivariate change point detection, with some practical adaptations.</p>
<p>At a high level, the algorithm:</p>
<ul>
@@ -28,13 +28,13 @@
<li class="">Practical runtime for production workloads</li>
</ul>
<p>A representative example of algorithm application:</p>
-<p><img decoding="async" loading="lazy" alt="Figure 1. Example" src="/assets/images/example-854004087cd460d4b0743b0a705ad241.png" title="Example" width="630" height="470" class="img_TewV"></p>
+<p><img decoding="async" loading="lazy" alt="Figure 1. Example" src="/assets/images/example-854004087cd460d4b0743b0a705ad241.png" title="Example" width="630" height="470" class="img_TmvR"></p>
<p>Figure 1. An example of running <a href="https://github.com/apache/otava/tree/master/otava/analysis.py" target="_blank" rel="noopener noreferrer" class="">compute_change_points</a> function on <a href="https://github.com/apache/otava/tree/master/tests/tigerbeetle_test.py" target="_blank" rel="noopener noreferrer" class="">Tigerbeetle dataset</a>. The parameters for the <code>compute_change_points</code> function are displayed in the bottom right corner. Here the algorithm detected 5 c [...]
<p>With that being said, the difference could be merely a change in the mean, but the algorithm isn't restricted to that and could also detect other kinds of changes, such as a change in variance, skewness, and other shifts in the overall shapes between the distributions even if the mean stays constant. Once potential change points are identified, a statistical test is performed to validate which of the points are in fact change points. That is to say, they are statistically signifi [...]
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="technical-details">Technical Details<a href="#technical-details" class="hash-link" aria-label="Direct link to Technical Details" title="Direct link to Technical Details" translate="no"></a></h2>
-<h3 class="anchor anchorTargetStickyNavbar_WKy1" id="main-idea">Main Idea<a href="#main-idea" class="hash-link" aria-label="Direct link to Main Idea" title="Direct link to Main Idea" translate="no"></a></h3>
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="technical-details">Technical Details<a href="#technical-details" class="hash-link" aria-label="Direct link to Technical Details" title="Direct link to Technical Details" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_gcg8" id="main-idea">Main Idea<a href="#main-idea" class="hash-link" aria-label="Direct link to Main Idea" title="Direct link to Main Idea" translate="no"></a></h3>
<p>The main idea is to use a divergence measure between distributions to identify potential points in time series at which the characteristics of the time series change. Namely, having a time series <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>Z</mi><mo>=</mo><mo stretchy="false">{</mo><msub><mi>Z</mi><mn>0</mn></msub><mo separator="true">,</mo><mo>⋯</mo><mtext> </mtext><mo separator="true">,</mo><msub><mi>Z</mi><mro [...]
-<p><img decoding="async" loading="lazy" alt="Figure 2. Main Idea" src="/assets/images/main_idea-f33c9953d7e1e52fbfe09e12d783b5a0.png" title="Main Idea" width="1004" height="611" class="img_TewV"></p>
+<p><img decoding="async" loading="lazy" alt="Figure 2. Main Idea" src="/assets/images/main_idea-f33c9953d7e1e52fbfe09e12d783b5a0.png" title="Main Idea" width="1004" height="611" class="img_TmvR"></p>
<p>Figure 2. On the <strong>left subfigure</strong>, there is a time-series <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>Z</mi><mo>=</mo><mo stretchy="false">{</mo><msub><mi>Z</mi><mn>0</mn></msub><mo separator="true">,</mo><mo>⋯</mo><msub><mi>Z</mi><mn>21</mn></msub><mo stretchy="false">}</mo></mrow><annotation encoding="application/x-tex">Z=\{ Z_0, \cdots Z_{21}\}</annotation></semantics></math></span><span class=" [...]
<p>There are a couple of additional nuances and notes that we want to mention:</p>
<ul>
@@ -46,9 +46,9 @@
<li class="">In the example in Figure 2 we effectively used distance between means as a distance between the distributions. It's an oversimplification for illustrative purposes, and in reality we actually use a divergence measure between multivariate distributions. See <strong><a href="#original-work" class="">Original Work</a></strong> section for more details.</li>
<li class="">In the example in Figure 2, we compared only two pairs of the values <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mo stretchy="false">(</mo><msub><mover accent="true"><mi>τ</mi><mo>^</mo></mover><mn>1</mn></msub><mo separator="true">,</mo><msub><mover accent="true"><mi>κ</mi><mo>^</mo></mover><mn>1</mn></msub><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">(\hat{\tau}_1, \hat{\kap [...]
</ul>
-<p><img decoding="async" loading="lazy" alt="Figure 3. Tau-Kappa" src="/assets/images/tau_kappa-c4875fc4bc4324d2e319e89eba7ec51a.png" title="Tau Kappa" width="788" height="690" class="img_TewV"></p>
+<p><img decoding="async" loading="lazy" alt="Figure 3. Tau-Kappa" src="/assets/images/tau_kappa-c4875fc4bc4324d2e319e89eba7ec51a.png" title="Tau Kappa" width="788" height="690" class="img_TmvR"></p>
<p>Figure 3. Divergence measure between distributions of <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>X</mi><mi>τ</mi></msub></mrow><annotation encoding="application/x-tex">X_\tau</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em"></span><span class="mord"><span class="mord mathnormal" style="mar [...]
-<h3 class="anchor anchorTargetStickyNavbar_WKy1" id="original-work">Original Work<a href="#original-work" class="hash-link" aria-label="Direct link to Original Work" title="Direct link to Original Work" translate="no"></a></h3>
+<h3 class="anchor anchorTargetStickyNavbar_gcg8" id="original-work">Original Work<a href="#original-work" class="hash-link" aria-label="Direct link to Original Work" title="Direct link to Original Work" translate="no"></a></h3>
<p>The original work was presented in <a href="https://arxiv.org/abs/1306.4933" target="_blank" rel="noopener noreferrer" class=""><em>"A Nonparametric Approach for Multiple Change Point Analysis of Multivariate Data" by Matteson and James</em></a>. The authors provided extensive theoretical reasoning on using the following empirical divergence measure:</p>
<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mover accent="true"><mi mathvariant="script">Q</mi><mo>^</mo></mover><mo stretchy="false">(</mo><msub><mi>X</mi><mi>τ</mi></msub><mo separator="true">,</mo><msub><mi>Y</mi><mi>τ</mi></msub><mo stretchy="false">(</mo><mi>κ</mi><mo stretchy="false">)</mo><mo separator="true">;</mo><mi>α</mi><mo stretchy="false">)</mo><mo>=</mo><mfrac> [...]
<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mover accent="true"><mi mathvariant="script">E</mi><mo>^</mo></mover><mo stretchy="false">(</mo><msub><mi>X</mi><mi>τ</mi></msub><mo separator="true">,</mo><msub><mi>Y</mi><mi>τ</mi></msub><mo stretchy="false">(</mo><mi>κ</mi><mo stretchy="false">)</mo><mo separator="true">;</mo><mi>α</mi><mo stretchy="false">)</mo><mo>=</mo><mfrac> [...]
@@ -56,7 +56,7 @@
<p>The most "dissimilar" subsequences are given by</p>
<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mo stretchy="false">(</mo><mover accent="true"><mi>τ</mi><mo>^</mo></mover><mo separator="true">,</mo><mover accent="true"><mi>κ</mi><mo>^</mo></mover><mo stretchy="false">)</mo><mo>=</mo><mtext>arg</mtext><munder><mrow><mi>max</mi><mo></mo></mrow><mrow><mo stretchy="false">(</mo><mi>τ</mi><mo separator="true">,</mo><mi>κ</mi><mo s [...]
<p>After the subsequences are found, one needs to find the probability that <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>X</mi><mover accent="true"><mi>τ</mi><mo>^</mo></mover></msub></mrow><annotation encoding="application/x-tex">X_{\hat{\tau}}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em"> [...]
-<h3 class="anchor anchorTargetStickyNavbar_WKy1" id="hunter-paper">Hunter Paper<a href="#hunter-paper" class="hash-link" aria-label="Direct link to Hunter Paper" title="Direct link to Hunter Paper" translate="no"></a></h3>
+<h3 class="anchor anchorTargetStickyNavbar_gcg8" id="hunter-paper">Hunter Paper<a href="#hunter-paper" class="hash-link" aria-label="Direct link to Hunter Paper" title="Direct link to Hunter Paper" translate="no"></a></h3>
<p>While the original paper was theoretically sound, there were a few practical issues with the methodology. They were outlined clearly in <a href="https://arxiv.org/abs/2301.03034" target="_blank" rel="noopener noreferrer" class=""><em>Hunter: Using Change Point Detection to Hunt for Performance Regressions by Fleming et al.</em></a>. Here is the short outline, with more details in the linked paper:</p>
<ul>
<li class="">High computational cost due to the permutation significance test.</li>
@@ -69,7 +69,7 @@
<li class=""><strong>Fixed-Sized Windows:</strong> Instead of looking at the whole time series, the algorithm traverses it through an overlapping sliding window approach - <em>This helps catch special pattern-cases described in the paper</em>.</li>
<li class=""><strong>Weak Change Points:</strong> Having two significance thresholds. Algorithm starts with a more relaxed threshold to identify a larger set of candidate change points, called "weak" change points, and then continues by re-evaluating all "weak" change points using stricter threshold to yield the final change points - <em>Using a single threshold could have myopically stopped the algorithm. Allowing it to look for more points and filter out the "w [...]
</ol>
-<h3 class="anchor anchorTargetStickyNavbar_WKy1" id="apache-otava-implementation">Apache Otava Implementation<a href="#apache-otava-implementation" class="hash-link" aria-label="Direct link to Apache Otava Implementation" title="Direct link to Apache Otava Implementation" translate="no"></a></h3>
+<h3 class="anchor anchorTargetStickyNavbar_gcg8" id="apache-otava-implementation">Apache Otava Implementation<a href="#apache-otava-implementation" class="hash-link" aria-label="Direct link to Apache Otava Implementation" title="Direct link to Apache Otava Implementation" translate="no"></a></h3>
<p>The current implementation in Apache Otava is conceptually the one from the Hunter paper with a newly rewritten implementation of the algorithm.</p>
<p>Starting with a zero-indexed time series <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>Z</mi><mo>=</mo><mo stretchy="false">{</mo><msub><mi>Z</mi><mn>0</mn></msub><mo separator="true">,</mo><msub><mi>Z</mi><mn>1</mn></msub><mo separator="true">,</mo><mo>⋯</mo><mtext> </mtext><mo separator="true">,</mo><msub><mi>Z</mi><mrow><mi>T</mi><mo>−</mo><mn>1</mn></mrow></msub><mo stretchy="false">}</mo></mrow><annotation enc [...]
<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>Q</mi><mo stretchy="false">(</mo><mi>s</mi><mo separator="true">,</mo><mi>τ</mi><mo separator="true">,</mo><mi>κ</mi><mo stretchy="false">)</mo><mo>=</mo><msub><mrow><mi mathvariant="script">Q</mi><mo stretchy="false">(</mo><mo stretchy="false">{</mo><msub><mi>Z</mi><mi>s</mi></msub><mo separator="true">,</mo><msub><mi>Z</mi><mro [...]
@@ -84,7 +84,7 @@ Finally, we can use function <span class="katex"><span class="katex-mathml"><mat
<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>B</mi><mo stretchy="false">(</mo><mi>s</mi><mo separator="true">,</mo><mi>τ</mi><mo separator="true">,</mo><mi>κ</mi><mo stretchy="false">)</mo><mo>=</mo><mfrac><mrow><mn>2</mn><mo stretchy="false">(</mo><mi>κ</mi><mo>−</mo><mi>τ</mi><mo stretchy="false">)</mo></mrow><mrow><mo stretchy="false">(</mo><mi>κ</mi><mo>−</mo><mi>s</mi> [...]
<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>C</mi><mo stretchy="false">(</mo><mi>s</mi><mo separator="true">,</mo><mi>τ</mi><mo separator="true">,</mo><mi>κ</mi><mo stretchy="false">)</mo><mo>=</mo><mfrac><mrow><mn>2</mn><mo stretchy="false">(</mo><mi>τ</mi><mo>−</mo><mi>s</mi><mo stretchy="false">)</mo></mrow><mrow><mo stretchy="false">(</mo><mi>κ</mi><mo>−</mo><mi>s</mi> [...]
<p>Note that <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>A</mi><mo stretchy="false">(</mo><mi>s</mi><mo separator="true">,</mo><mi>s</mi><mo separator="true">,</mo><mi>κ</mi><mo stretchy="false">)</mo><mo>=</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">A(s, s, \kappa)=0</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="heig [...]
-<p>These formulas are effectively used in Apache Otava after some NumPy vectorizations. For details see <a href="https://github.com/apache/otava/tree/master/otava/change_point_divisive/calculator.py" target="_blank" rel="noopener noreferrer" class="">change_point_divisive/calculator.py</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_AJKP"><a href="https://github.com/apache/otava-website [...]
+<p>These formulas are effectively used in Apache Otava after some NumPy vectorizations. For details see <a href="https://github.com/apache/otava/tree/master/otava/change_point_divisive/calculator.py" target="_blank" rel="noopener noreferrer" class="">change_point_divisive/calculator.py</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_Wgkb"><a href="https://github.com/apache/otava-website [...]
<p>
Apache Otava (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indica [...]
</p>
diff --git a/docs/overview/index.html b/docs/overview/index.html
index cba9fb9..cccae46 100644
--- a/docs/overview/index.html
+++ b/docs/overview/index.html
@@ -2,18 +2,18 @@
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-overview" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
-<meta name="generator" content="Docusaurus v3.10.1">
+<meta name="generator" content="Docusaurus v3.10.2">
<title data-rh="true">Overview | Apache Otava</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://otava.apache.org/docs/overview"><meta [...]
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.e5691cae.css">
-<script src="/assets/js/runtime~main.cbf2ad78.js" defer="defer"></script>
-<script src="/assets/js/main.663c53c1.js" defer="defer"></script>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.ce980333.css">
+<script src="/assets/js/runtime~main.0f49da90.js" defer="defer"></script>
+<script src="/assets/js/main.9e655e3e.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="getting-started">Getting Started<a href="#getting-started" class="hash-link" aria-label="Direct link to Getting Started" title="Direct link to Getting Started" translate="no"></a></h2>
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="getting-started">Getting Started<a href="#getting-started" class="hash-link" aria-label="Direct link to Getting Started" title="Direct link to Getting Started" translate="no"></a></h2>
<ul>
<li class=""><a class="" href="/docs/install">Installation</a></li>
<li class=""><a class="" href="/docs/getting-started">Getting Started</a></li>
@@ -21,14 +21,14 @@
<li class=""><a class="" href="/docs/basics">Basics</a></li>
<li class=""><a class="" href="/docs/math">Change Point Detection</a></li>
</ul>
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="data-sources">Data Sources<a href="#data-sources" class="hash-link" aria-label="Direct link to Data Sources" title="Direct link to Data Sources" translate="no"></a></h2>
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="data-sources">Data Sources<a href="#data-sources" class="hash-link" aria-label="Direct link to Data Sources" title="Direct link to Data Sources" translate="no"></a></h2>
<ul>
<li class=""><a class="" href="/docs/graphite">Graphite</a></li>
<li class=""><a class="" href="/docs/postgresql">PostgreSQL</a></li>
<li class=""><a class="" href="/docs/big-query">BigQuery</a></li>
<li class=""><a class="" href="/docs/csv">CSV</a></li>
<li class=""><a class="" href="/docs/grafana">Annotating Change Points in Grafana</a></li>
-</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_AJKP"><a href="https://github.com/apache/otava-website/tree/master/docs/overview.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_6H3h" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 [...]
+</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_Wgkb"><a href="https://github.com/apache/otava-website/tree/master/docs/overview.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Df7L" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 [...]
<p>
Apache Otava (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indica [...]
</p>
diff --git a/docs/postgresql/index.html b/docs/postgresql/index.html
index 6b6f96e..3cbd719 100644
--- a/docs/postgresql/index.html
+++ b/docs/postgresql/index.html
@@ -2,35 +2,35 @@
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-postgresql" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
-<meta name="generator" content="Docusaurus v3.10.1">
+<meta name="generator" content="Docusaurus v3.10.2">
<title data-rh="true">PostgreSQL | Apache Otava</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://otava.apache.org/docs/postgresql">< [...]
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.e5691cae.css">
-<script src="/assets/js/runtime~main.cbf2ad78.js" defer="defer"></script>
-<script src="/assets/js/main.663c53c1.js" defer="defer"></script>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.ce980333.css">
+<script src="/assets/js/runtime~main.0f49da90.js" defer="defer"></script>
+<script src="/assets/js/main.9e655e3e.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
-<div class="theme-admonition theme-admonition-tip admonition_xPY5 alert alert--success"><div class="admonitionHeading_CHqH"><span class="admonitionIcon_T4xL"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="postgresql-connection">PostgreSQL Connection<a href="#postgresql-connection" class="hash-link" aria-label="Direct link to PostgreSQL Connection" title="Direct link to PostgreSQL Connection" translate="no"></a></h2>
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
+<div class="theme-admonition theme-admonition-tip admonition_pKXU alert alert--success"><div class="admonitionHeading_xMuP"><span class="admonitionIcon_LzAK"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="postgresql-connection">PostgreSQL Connection<a href="#postgresql-connection" class="hash-link" aria-label="Direct link to PostgreSQL Connection" title="Direct link to PostgreSQL Connection" translate="no"></a></h2>
<p>The following block contains PostgreSQL connection details:</p>
-<div class="language-yaml codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-yaml codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">postgres</span><span class="token punctuation" style="color:#393A [...]
+<div class="language-yaml codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-yaml codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">postgres</span><span class="token punctuation" style="color:#393A [...]
<p>These variables can be specified directly in <code>otava.yaml</code> or passed as environment variables:</p>
-<div class="language-yaml codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-yaml codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">postgres</span><span class="token punctuation" style="color:#393A [...]
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="tests">Tests<a href="#tests" class="hash-link" aria-label="Direct link to Tests" title="Direct link to Tests" translate="no"></a></h2>
+<div class="language-yaml codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-yaml codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">postgres</span><span class="token punctuation" style="color:#393A [...]
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="tests">Tests<a href="#tests" class="hash-link" aria-label="Direct link to Tests" title="Direct link to Tests" translate="no"></a></h2>
<p>Test configuration contains queries selecting experiment data, a time column, and a list of columns to analyze:</p>
-<div class="language-yaml codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-yaml codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">tests</span><span class="token punctuation" style="color:#393A34" [...]
-<h2 class="anchor anchorTargetStickyNavbar_WKy1" id="example">Example<a href="#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h2>
-<h3 class="anchor anchorTargetStickyNavbar_WKy1" id="usage">Usage<a href="#usage" class="hash-link" aria-label="Direct link to Usage" title="Direct link to Usage" translate="no"></a></h3>
+<div class="language-yaml codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-yaml codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">tests</span><span class="token punctuation" style="color:#393A34" [...]
+<h2 class="anchor anchorTargetStickyNavbar_gcg8" id="example">Example<a href="#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_gcg8" id="usage">Usage<a href="#usage" class="hash-link" aria-label="Direct link to Usage" title="Direct link to Usage" translate="no"></a></h3>
<p>Start docker-compose with PostgreSQL in one tab:</p>
-<div class="language-bash codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-bash codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">docker-compose -f examples/postgresql/docker-compose.yaml up --force-recreate --always-recre [...]
+<div class="language-bash codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-bash codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">docker-compose -f examples/postgresql/docker-compose.yaml up --force-recreate --always-recre [...]
<p>Run Otava in the other tab to show results for a single test <code>aggregate_mem</code> and update the database with newly found change points:</p>
-<div class="language-bash codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-bash codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">docker-compose -f examples/postgresql/docker-compose.yaml run --rm otava analyze aggregate_m [...]
+<div class="language-bash codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-bash codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">docker-compose -f examples/postgresql/docker-compose.yaml run --rm otava analyze aggregate_m [...]
<p>Expected output:</p>
-<div class="language-bash codeBlockContainer_xazl theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jnjz"><pre tabindex="0" class="prism-code language-bash codeBlock_kaMy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_xMTX"><div class="token-line" style="color:#393A34"><span class="token plain">time experiment_id commit process_cumulative_rate_mean p [...]
-<h3 class="anchor anchorTargetStickyNavbar_WKy1" id="configuration">Configuration<a href="#configuration" class="hash-link" aria-label="Direct link to Configuration" title="Direct link to Configuration" translate="no"></a></h3>
+<div class="language-bash codeBlockContainer_I_5P theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_pZPo"><pre tabindex="0" class="prism-code language-bash codeBlock_Em61 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_IwHm"><div class="token-line" style="color:#393A34"><span class="token plain">time experiment_id commit process_cumulative_rate_mean p [...]
+<h3 class="anchor anchorTargetStickyNavbar_gcg8" id="configuration">Configuration<a href="#configuration" class="hash-link" aria-label="Direct link to Configuration" title="Direct link to Configuration" translate="no"></a></h3>
<p>See <a href="https://github.com/apache/otava/blob/master/examples/postgresql/otava.yaml" target="_blank" rel="noopener noreferrer" class="">otava.yaml</a> for the example configuration:</p>
<ul>
<li class="">Block <code>postgres</code> contains connection details to the PostgreSQL database.</li>
@@ -44,10 +44,10 @@
<li class=""><code>OTAVA_CONFIG</code> is the path to the configuration file described above.</li>
<li class=""><code>BRANCH</code> variable is used within <code>OTAVA_CONFIG</code> to analyze experiment results only for a specific branch.</li>
</ol>
-<h3 class="anchor anchorTargetStickyNavbar_WKy1" id="cli-arguments">CLI arguments<a href="#cli-arguments" class="hash-link" aria-label="Direct link to CLI arguments" title="Direct link to CLI arguments" translate="no"></a></h3>
+<h3 class="anchor anchorTargetStickyNavbar_gcg8" id="cli-arguments">CLI arguments<a href="#cli-arguments" class="hash-link" aria-label="Direct link to CLI arguments" title="Direct link to CLI arguments" translate="no"></a></h3>
<ul>
<li class=""><code>--update-postgres</code> - updates the database with newly found change points.</li>
-</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_AJKP"><a href="https://github.com/apache/otava-website/tree/master/docs/postgresql.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_6H3h" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0 [...]
+</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_Wgkb"><a href="https://github.com/apache/otava-website/tree/master/docs/postgresql.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Df7L" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0 [...]
<p>
Apache Otava (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indica [...]
</p>
diff --git a/index.html b/index.html
index e0b189f..4212b6d 100644
--- a/index.html
+++ b/index.html
@@ -2,17 +2,17 @@
<html lang="en" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
-<meta name="generator" content="Docusaurus v3.10.1">
-<title data-rh="true">Welcome | Apache Otava</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://otava.apache.org/"><meta data-rh="true [...]
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.e5691cae.css">
-<script src="/assets/js/runtime~main.cbf2ad78.js" defer="defer"></script>
-<script src="/assets/js/main.663c53c1.js" defer="defer"></script>
+<meta name="generator" content="Docusaurus v3.10.2">
+<title data-rh="true">Welcome | Apache Otava</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://otava.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://otava.apache.org/"><meta data-rh="true [...]
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@300..800&family=Space+Grotesk:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=swap"><link rel="stylesheet" href="/assets/css/styles.ce980333.css">
+<script src="/assets/js/runtime~main.0f49da90.js" defer="defer"></script>
+<script src="/assets/js/main.9e655e3e.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.svg"><link rel="preload" as="image" href="/img [...]
<p>
Apache Otava (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indica [...]
</p>