# HG changeset patch # User drewp@bigasterisk.com # Date 2023-06-08 22:05:59 # Node ID 623836db99afa79d4ea4a57baaaa88e472080f76 # Parent 9d47c44d4ae4fbdd7543a3f73ce13b2dcecc86d1 fix ts warning diff --git a/light9/web/lib/parse-prometheus-text-format.d.ts b/light9/web/lib/parse-prometheus-text-format.d.ts new file mode 100644 --- /dev/null +++ b/light9/web/lib/parse-prometheus-text-format.d.ts @@ -0,0 +1,4 @@ +declare module "parse-prometheus-text-format" { + function parsePrometheusTextFormat(s: string): any; + export default parsePrometheusTextFormat; +} diff --git a/light9/web/metrics/StatsLine.ts b/light9/web/metrics/StatsLine.ts --- a/light9/web/metrics/StatsLine.ts +++ b/light9/web/metrics/StatsLine.ts @@ -48,7 +48,7 @@ export class StatsLine extends LitElemen changedProperties.forEach((oldValue: any, propName: string) => { if (propName == "name") { const reload = () => { - fetch("/service/"+this.name + "/metrics").then((resp) => { + fetch("/service/" + this.name + "/metrics").then((resp) => { if (resp.ok) { resp .text() @@ -58,7 +58,7 @@ export class StatsLine extends LitElemen setTimeout(reload, 1000); }) .catch((err) => { - log(`${this.name} failing`, err) + log(`${this.name} failing`, err); setTimeout(reload, 1000); }); } else { @@ -195,7 +195,6 @@ export class StatsLine extends LitElemen return html`[NEW ${JSON.stringify(d)} ${path}]`; } - valueDisplay(m: Metric, v: Value): TemplateResult { if (m.type == "GAUGE") { return html`${v.value}`; @@ -249,22 +248,18 @@ export class StatsLine extends LitElemen } tightLabel(labs: { [key: string]: string }): string { - const d: { [key: string]: string } = {} + const d: { [key: string]: string } = {}; for (let k in labs) { - if (k == 'app_name') continue; - if (k == 'output') continue; - if (k=='status_code'&&labs[k]=="200") continue; - d[k] = labs[k] + if (k == "app_name") continue; + if (k == "output") continue; + if (k == "status_code" && labs[k] == "200") continue; + d[k] = labs[k]; } - const ret = JSON.stringify(d) - return ret == "{}" ? "" : ret + const ret = JSON.stringify(d); + return ret == "{}" ? "" : ret; } tightMetric(name: string): string { - return name - .replace('starlette', '⭐') - .replace("_request" ,"_req") - .replace("_duration" ,"_dur") - .replace('_seconds', '_s') + return name.replace("starlette", "⭐").replace("_request", "_req").replace("_duration", "_dur").replace("_seconds", "_s"); } render() { const now = Date.now() / 1000; @@ -274,31 +269,31 @@ export class StatsLine extends LitElemen
${displayedStats.map( - (row, rowNum) => html` + (row, rowNum) => html` ${rowNum == 0 - ? html` + ? html` ` - : ""} + : ""} ` - )} + )}
${this.tightMetric(row.name)} ${row.metrics.map( - (v) => html` + (v) => html` ` - )} + )}
${this.tightLabel(v.labels)} ${this.valueDisplay(row, v)}
`;