feat: use a js template literal for trace name

This commit is contained in:
Jeremy Wall 2024-02-19 19:09:52 -05:00
parent 4a7109f249
commit 18eb50fbbd
4 changed files with 16 additions and 26 deletions

View File

@ -8,10 +8,8 @@
- source: http://heimdall:9001 # Prometheus source uri for this plot - source: http://heimdall:9001 # Prometheus source uri for this plot
query: 'sum by (instance)(irate(node_cpu_seconds_total{job="nodestats"}[5m]))' # The PromQL query for this plot query: 'sum by (instance)(irate(node_cpu_seconds_total{job="nodestats"}[5m]))' # The PromQL query for this plot
meta: # metadata for this plot meta: # metadata for this plot
name_label: instance # Grab a trace name from the query tags name_format: "`${labels.instance}`" # javascript template literal to format the trace name
#d3_tick_format: "~%" # d3 tick format override for this plot's yaxis #d3_tick_format: "~%" # d3 tick format override for this plot's yaxis
#name_prefix: "Prefix" # A prefix for this sublots trace names
#name_suffix: "Suffix" # A suffix for this subplots trace names
#named_axis: "y" # yaxis name to use for this subplots traces #named_axis: "y" # yaxis name to use for this subplots traces
span: # The span for this range query span: # The span for this range query
end: now # Where the span ends. RFC3339 format with special handling for the now keyword end: now # Where the span ends. RFC3339 format with special handling for the now keyword
@ -32,16 +30,14 @@
sum by (instance)(irate(node_cpu_seconds_total{mode="system",job="nodestats"}[5m])) / sum by (instance)(irate(node_cpu_seconds_total{job="nodestats"}[5m])) sum by (instance)(irate(node_cpu_seconds_total{mode="system",job="nodestats"}[5m])) / sum by (instance)(irate(node_cpu_seconds_total{job="nodestats"}[5m]))
meta: meta:
d3_tick_format: "~%" d3_tick_format: "~%"
name_label: instance name_format: "`${labels.instance} system`"
name_prefix: "System"
named_axis: "y" named_axis: "y"
- source: http://heimdall:9001 - source: http://heimdall:9001
query: | query: |
sum by (instance)(irate(node_cpu_seconds_total{mode="user",job="nodestats"}[5m])) / sum by (instance)(irate(node_cpu_seconds_total{job="nodestats"}[5m])) sum by (instance)(irate(node_cpu_seconds_total{mode="user",job="nodestats"}[5m])) / sum by (instance)(irate(node_cpu_seconds_total{job="nodestats"}[5m]))
meta: meta:
d3_tick_format: "~%" d3_tick_format: "~%"
name_label: instance name_format: "`${labels.instance} user`"
name_suffix: "User"
named_axis: "y" named_axis: "y"
- title: Node memory - title: Node memory
query_type: Scalar query_type: Scalar
@ -49,4 +45,4 @@
- source: http://heimdall:9001 - source: http://heimdall:9001
query: 'node_memory_MemFree_bytes{job="nodestats"}' query: 'node_memory_MemFree_bytes{job="nodestats"}'
meta: meta:
name_label: instance name_format: "`${labels.instance}`"

View File

@ -63,9 +63,7 @@
sum by (instance)(irate(node_cpu_seconds_total{job="nodestats"}[5m])) sum by (instance)(irate(node_cpu_seconds_total{job="nodestats"}[5m]))
''; '';
meta = { meta = {
name_label = "instance"; name_function = "`\${labels.instance}`";
name_prefix = "trace name prefix";
name_suffix = "trace name suffix";
named_axis = "y"; named_axis = "y";
# yaxis formatting for this subplot # yaxis formatting for this subplot
d3_tick_format = "~s"; d3_tick_format = "~s";

View File

@ -117,9 +117,7 @@ pub struct DataPoint {
#[derive(Serialize, Deserialize, Debug, Clone)] #[derive(Serialize, Deserialize, Debug, Clone)]
pub struct PlotMeta { pub struct PlotMeta {
name_prefix: Option<String>, name_format: Option<String>,
name_suffix: Option<String>,
name_label: Option<String>,
named_axis: Option<String>, named_axis: Option<String>,
d3_tick_format: Option<String>, d3_tick_format: Option<String>,
} }

View File

@ -160,19 +160,17 @@ class TimeseriesGraph extends HTMLElement {
yaxis: yaxis, yaxis: yaxis,
yhoverformat: meta["d3_tick_format"], yhoverformat: meta["d3_tick_format"],
}; };
const namePrefix = meta["name_prefix"];
const nameSuffix = meta["name_suffix"];
const nameLabel = meta["name_label"];
var name = ""; var name = "";
if (namePrefix) { const formatter = meta.name_format
name = namePrefix + "-"; if (formatter) {
}; name = eval(formatter);
if (nameLabel && labels[nameLabel]) { } else {
name = name + labels[nameLabel]; var names = [];
}; for (const value of labels) {
if (nameSuffix) { names.push(value);
name = name + " - " + nameSuffix; }
}; name = names.join(" ");
}
if (name) { trace.name = name; } if (name) { trace.name = name; }
for (const point of series) { for (const point of series) {
trace.x.push(new Date(point.timestamp * 1000)); trace.x.push(new Date(point.timestamp * 1000));