Display test graph

This commit is contained in:
Joscha 2023-08-15 00:36:40 +02:00
parent 3c9fc1ce75
commit 476fd84d2d
6 changed files with 53 additions and 14 deletions

View file

@ -1,6 +1,6 @@
{
"db_name": "SQLite",
"query": "WITH measurements AS ( SELECT hash, value, MAX(start) FROM runs JOIN run_measurements USING (id) WHERE name = ? GROUP BY hash ) SELECT value FROM commits LEFT JOIN measurements USING (hash) ORDER BY committer_date ASC, hash ASC ",
"query": "WITH measurements AS ( SELECT hash, value, MAX(start) FROM runs JOIN run_measurements USING (id) WHERE name = ? GROUP BY hash ) SELECT value FROM commits LEFT JOIN measurements USING (hash) ORDER BY unixepoch(committer_date) ASC, hash ASC ",
"describe": {
"columns": [
{
@ -16,5 +16,5 @@
true
]
},
"hash": "4e2f2b25a13b3728db01b7c218e7250441098c60725c081215489bd2ad944fe0"
"hash": "9f70a2d2932837e4fcd927bcc56d9bd72a8341511486d2c0e6612f4eed2b4b95"
}

View file

@ -1,6 +1,6 @@
{
"db_name": "SQLite",
"query": "SELECT hash, committer_date AS \"committer_date: time::OffsetDateTime\" FROM commits ORDER BY committer_date ASC, hash ASC ",
"query": "SELECT hash, committer_date AS \"committer_date: time::OffsetDateTime\" FROM commits ORDER BY unixepoch(committer_date) ASC, hash ASC ",
"describe": {
"columns": [
{
@ -22,5 +22,5 @@
false
]
},
"hash": "039485fead98beb9d088c5bb35679f2ab0409e7e6b51607869ec30ef35240504"
"hash": "ac7a2e727b2ff96ae6d6be2c05e9991a7a27708a69fbf89b43231927fc85519f"
}

View file

@ -27,7 +27,7 @@ CREATE TABLE refs (
) STRICT;
CREATE INDEX idx_commits_committer_date_hash
ON commits (committer_date, hash);
ON commits (unixepoch(committer_date), hash);
CREATE INDEX idx_commit_links_parent_child
ON commit_links (parent, child);

View file

@ -1,7 +1,43 @@
import uPlot from "./uPlot";
import uPlot from "./uPlot.js";
let plot = new uPlot({
width: 300,
height: 200,
series: [],
});
interface GraphData {
hashes: string[];
times: number[];
metrics: { [key: string]: (number | null)[]; };
}
let opts = {
title: "HEHE",
width: 600,
height: 400,
series: [
{},
{
label: "wall-clock/build",
spanGaps: true,
stroke: "blue",
width: 1,
}
],
};
let plot = new uPlot(opts, [], document.body);
fetch("data?metric=wall-clock/build")
.then(r => r.json() as Promise<GraphData>)
.then(data => {
console.log(data);
plot.setData([
data.times,
data.metrics["wall-clock/build"]!,
]);
});
// function display(metrics: string[]) {
// let url = "data" + new URLSearchParams(metrics.map(m => ["metric", m]));
// fetch(url)
// .then(r => r.json() as Promise<GraphData>)
// .then(data => {
// })
// }

View file

@ -11,7 +11,7 @@ use crate::{
server::web::{
base::{Base, Link, Tab},
paths::{PathGraph, PathGraphData},
r#static::GRAPH_JS,
r#static::{GRAPH_JS, UPLOT_CSS},
},
somehow,
};
@ -19,6 +19,7 @@ use crate::{
#[derive(Template)]
#[template(path = "pages/graph.html")]
struct Page {
link_uplot_css: Link,
link_graph_js: Link,
base: Base,
}
@ -29,6 +30,7 @@ pub async fn get_graph(
) -> somehow::Result<impl IntoResponse> {
let base = Base::new(config, Tab::Graph);
Ok(Page {
link_uplot_css: base.link(UPLOT_CSS),
link_graph_js: base.link(GRAPH_JS),
base,
})
@ -60,7 +62,7 @@ pub async fn get_graph_data(
hash, \
committer_date AS \"committer_date: time::OffsetDateTime\" \
FROM commits \
ORDER BY committer_date ASC, hash ASC \
ORDER BY unixepoch(committer_date) ASC, hash ASC \
"
)
.fetch_all(&mut *conn)
@ -88,7 +90,7 @@ pub async fn get_graph_data(
SELECT value \
FROM commits \
LEFT JOIN measurements USING (hash) \
ORDER BY committer_date ASC, hash ASC \
ORDER BY unixepoch(committer_date) ASC, hash ASC \
",
metric,
)

View file

@ -3,6 +3,7 @@
{% block title %}graph{% endblock %}
{% block head %}
<link rel="stylesheet" href="{{ link_uplot_css }}" />
<script type="module" src="{{ link_graph_js }}"></script>
{% endblock %}