Skip to content

Commit

Permalink
Merge branch 'dev' (0.4.8-1)
Browse files Browse the repository at this point in the history
  • Loading branch information
carlosabalde committed Feb 4, 2025
2 parents 5c72b5a + 89c86a0 commit d8c4be7
Show file tree
Hide file tree
Showing 13 changed files with 63 additions and 11 deletions.
2 changes: 2 additions & 0 deletions .github/codeql/codeql-config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
paths-ignore:
- assets/static
3 changes: 3 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ jobs:
build-mode: manual
- language: javascript-typescript
build-mode: none
- language: actions
build-mode: none

steps:
- uses: actions/checkout@v4
Expand All @@ -34,6 +36,7 @@ jobs:
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
config-file: ./.github/codeql/codeql-config.yml

- if: matrix.build-mode == 'manual'
shell: bash
Expand Down
30 changes: 30 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,36 @@ jobs:
- uses: actions/checkout@v4

- uses: ./extras/github/build-action
id: attempt1
continue-on-error: true
with:
platform: ${{ matrix.platform }}
architecture: ${{ matrix.architecture }}
go-version: ${{ env.GO_VERSION }}

# XXX: for ARM64 builds, jobs occasionally fail with an error suggesting
# that Docker is not ready. This is a workaround to retry the build once.
# >Run ./extras/github/build-action
# >Run docker/setup-buildx-action@v3
# >Docker info
# >Buildx version
# >Inspecting default docker context
# >Creating a new builder instance
# Error: ERROR: failed to initialize builder builder-7cfe3cdd-acf8-4116-a011-40173ca3d469
# (builder-7cfe3cdd-acf8-4116-a011-40173ca3d4690): Cannot connect to the Docker daemon at
# unix:///var/run/docker.sock. Is the docker daemon running?
- uses: ./extras/github/build-action
if: steps.attempt1.outcome == 'failure'
id: attempt2
continue-on-error: true
with:
platform: ${{ matrix.platform }}
architecture: ${{ matrix.architecture }}
go-version: ${{ env.GO_VERSION }}

# XXX: same as above, but for the second retry.
- uses: ./extras/github/build-action
if: steps.attempt2.outcome == 'failure'
with:
platform: ${{ matrix.platform }}
architecture: ${{ matrix.architecture }}
Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
- 0.4.8-1 (2025-02-04):
+ Fixed the X-axis layout in charts during refresh, adding additional styling.
+ Used a monospace font for cluster names.

- 0.4.7-1 (2025-02-03):
+ Updated dependencies.
* Go 1.23.3 ➙ 1.23.5
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ SHELL := /bin/bash
ROOT := $(abspath $(dir $(lastword $(MAKEFILE_LIST))))
UMASK := 022

VERSION := 0.4.7
VERSION := 0.4.8
ITERATION := 1
REVISION := $(shell cd '$(ROOT)' && git rev-parse --short HEAD)
ENVIRONMENT ?= production
Expand Down
2 changes: 1 addition & 1 deletion assets/static/app.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion assets/templates/index.html.tmpl
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>varnishmon</title><link rel="icon" href="/images/favicon.ico" type="image/x-icon"><script>const varnishmon={{.Config}}</script><script defer="defer" src="/app.js"></script><link href="/styles.css" rel="stylesheet"></head><body class="d-flex flex-column min-vh-100"><nav class="navbar navbar-expand-lg navbar-dark bg-dark sticky-top"><div class="container-fluid"><a class="navbar-brand" href="/">varnishmon</a><div class="d-flex ms-auto"><div class="me-4 align-self-center"><span class="navbar-text font-monospace text-white"><i class="fa-solid fa-computer"></i> {{.Hostname}}</span></div><div class="me-2"><div class="input-group"><span class="input-group-text"><i class="fas fa-calendar-alt"></i></span> <input id="range-from" class="form-control" placeholder="from"></div></div><div class="me-2 align-self-center text-light" id="range"><i class="fa-solid fa-arrow-right"></i></div><div class="me-2"><div class="input-group"><span class="input-group-text"><i class="fas fa-calendar-alt"></i></span> <input id="range-to" class="form-control" placeholder="to"></div></div><div class="me-4 align-self-center align-self-end"><button id="apply-time-range" class="btn btn-primary" title="Apply the selected time range"><i class="fa-solid fa-play"></i></button></div><div class="me-2"><select id="refresh-interval" class="form-select"></select></div><div class="align-self-center align-self-end"><button id="refresh" class="btn btn-primary" title="Trigger refresh now"><i class="fa-solid fa-sync"></i></button></div></div></div></nav><main class="flex-grow-1 d-flex flex-column"><div class="container-fluid py-md-4 flex-grow-1 d-flex flex-column"><div class="row mb-2"><div class="col-md-8"><label for="filter" class="form-label">Filter</label><div class="input-group"><span class="input-group-text"><i class="fa-solid fa-magnifying-glass"></i></span> <input id="filter" class="form-control" placeholder="type here to filter metrics by name"> <button class="btn border-secondary-subtle bg-body-tertiary dropdown-toggle" type="button" id="filterHistoryDropdown" data-bs-toggle="dropdown" aria-expanded="false"></button><ul class="dropdown-menu dropdown-menu-end w-100" aria-labelledby="filterHistoryDropdown" id="filterHistoryList"></ul></div></div><div class="col-md-1"><label for="verbosity" class="form-label">Verbosity</label><div class="input-group"><span class="input-group-text"><i class="fa-regular fa-comments"></i></span> <select id="verbosity" class="form-select"></select></div></div><div class="col-md-1"><label for="columns" class="form-label">Columns</label><div class="input-group"><span class="input-group-text"><i class="fa-solid fa-table-cells-large"></i></span> <select id="columns" class="form-select"></select></div></div><div class="col-md-1"><label for="aggregator" class="form-label">Aggregator</label><div class="input-group"><span class="input-group-text"><i class="fa-solid fa-filter"></i></span> <select id="aggregator" class="form-select"></select></div></div><div class="col-md-1"><label for="step" class="form-label">Step</label><div class="input-group"><span class="input-group-text"><i class="fa-solid fa-arrows-left-right-to-line"></i></span> <input type="number" id="step" class="form-control"></div></div></div><div class="row mb-2"><div class="col align-content-center text-muted" id="filter-stats"></div><div class="col text-end"><a class="btn btn-link" href="/metrics" role="button" title="View internal Prometheus metrics">internal metrics</a> | <button type="button" id="reset" class="btn btn-link" title="Discard saved state & reload">reset</button> | <button type="button" id="collapse-all" class="btn btn-link" title="Collapse all clusters">collapse</button> | <button type="button" id="expand-all" class="btn btn-link" title="Expand all clusters">expand</button></div></div><div id="clusters" class="accordion accordion-flush flex-grow-1 d-flex flex-column"></div></div></main><footer class="text-center mt-4"><i class="fa-solid fa-bolt"></i> Powered by <a href="https://github.com/allenta/varnishmon/">varnishmon</a> v{{.Version}} (<span class="font-monospace">{{.Revision}}</span>)</footer><div id="notifications" class="position-fixed bottom-0 end-0 p-3 d-grid gap-2"></div><template id="spinner-template"><div class="d-flex justify-content-center flex-grow-1 align-items-center"><div class="spinner-border fs-2 opacity-50" role="status"><span class="visually-hidden">Loading...</span></div></div></template><template id="metrics-meditation-template"><div class="d-flex flex-column text-center justify-content-center flex-grow-1"><h2 class="mt-4"><i class="fa-regular fa-face-sad-tear fa-3x"></i></h2><h2 class="mt-2">Metrics Meditation</h2><p class="mt-4 text-muted fs-5 w-25 mx-auto">Oops! Something went wrong while fetching metrics. Please, make sure <span class="font-monospace">varnishmon</span> is up and reachable</p></div></template><template id="cluster-template"><div class="cluster accordion-item"><div class="accordion-header"><button class="cluster-name accordion-button bg-light text-dark fs-5 border-0" type="button"></button></div><div class="accordion-collapse"><div class="charts row g-4 py-4"></div></div></div></template><template id="chart-template"><div class="chart col"><div class="card position-relative"><span class="loading-icon spinner-grow spinner-grow-sm text-secondary position-absolute top-0 m-2 z-1 d-none" role="status"><span class="visually-hidden">Loading...</span> </span><span class="error-icon text-danger position-absolute top-0 end-0 m-2 z-1 d-none"><i class="fas fa-exclamation-circle"></i></span><div class="card-body"><div class="graph" style="height:300px"></div></div><span class="step-factor text-secondary text-opacity-25 position-absolute bottom-0 end-0 me-2 mb-1 z-1 small" title="Effective step factor"></span></div></div></template><template id="notification-template"><div class="toast align-items-center border-0" role="alert" aria-live="assertive" aria-atomic="true"><div class="d-flex"><div class="toast-body"></div><button type="button" class="btn-close me-2 m-auto" data-bs-dismiss="toast" aria-label="Close"></button></div></div></template></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>varnishmon</title><link rel="icon" href="/images/favicon.ico" type="image/x-icon"><script>const varnishmon={{.Config}}</script><script defer="defer" src="/app.js"></script><link href="/styles.css" rel="stylesheet"></head><body class="d-flex flex-column min-vh-100"><nav class="navbar navbar-expand-lg navbar-dark bg-dark sticky-top"><div class="container-fluid"><a class="navbar-brand" href="/">varnishmon</a><div class="d-flex ms-auto"><div class="me-4 align-self-center"><span class="navbar-text font-monospace text-white"><i class="fa-solid fa-computer"></i> {{.Hostname}}</span></div><div class="me-2"><div class="input-group"><span class="input-group-text"><i class="fas fa-calendar-alt"></i></span> <input id="range-from" class="form-control" placeholder="from"></div></div><div class="me-2 align-self-center text-light" id="range"><i class="fa-solid fa-arrow-right"></i></div><div class="me-2"><div class="input-group"><span class="input-group-text"><i class="fas fa-calendar-alt"></i></span> <input id="range-to" class="form-control" placeholder="to"></div></div><div class="me-4 align-self-center align-self-end"><button id="apply-time-range" class="btn btn-primary" title="Apply the selected time range"><i class="fa-solid fa-play"></i></button></div><div class="me-2"><select id="refresh-interval" class="form-select"></select></div><div class="align-self-center align-self-end"><button id="refresh" class="btn btn-primary" title="Trigger refresh now"><i class="fa-solid fa-sync"></i></button></div></div></div></nav><main class="flex-grow-1 d-flex flex-column"><div class="container-fluid py-md-4 flex-grow-1 d-flex flex-column"><div class="row mb-2"><div class="col-md-8"><label for="filter" class="form-label">Filter</label><div class="input-group"><span class="input-group-text"><i class="fa-solid fa-magnifying-glass"></i></span> <input id="filter" class="form-control" placeholder="type here to filter metrics by name"> <button class="btn border-secondary-subtle bg-body-tertiary dropdown-toggle" type="button" id="filterHistoryDropdown" data-bs-toggle="dropdown" aria-expanded="false"></button><ul class="dropdown-menu dropdown-menu-end w-100" aria-labelledby="filterHistoryDropdown" id="filterHistoryList"></ul></div></div><div class="col-md-1"><label for="verbosity" class="form-label">Verbosity</label><div class="input-group"><span class="input-group-text"><i class="fa-regular fa-comments"></i></span> <select id="verbosity" class="form-select"></select></div></div><div class="col-md-1"><label for="columns" class="form-label">Columns</label><div class="input-group"><span class="input-group-text"><i class="fa-solid fa-table-cells-large"></i></span> <select id="columns" class="form-select"></select></div></div><div class="col-md-1"><label for="aggregator" class="form-label">Aggregator</label><div class="input-group"><span class="input-group-text"><i class="fa-solid fa-filter"></i></span> <select id="aggregator" class="form-select"></select></div></div><div class="col-md-1"><label for="step" class="form-label">Step</label><div class="input-group"><span class="input-group-text"><i class="fa-solid fa-arrows-left-right-to-line"></i></span> <input type="number" id="step" class="form-control"></div></div></div><div class="row mb-2"><div class="col align-content-center text-muted" id="filter-stats"></div><div class="col text-end"><a class="btn btn-link" href="/metrics" role="button" title="View internal Prometheus metrics">internal metrics</a> | <button type="button" id="reset" class="btn btn-link" title="Discard saved state & reload">reset</button> | <button type="button" id="collapse-all" class="btn btn-link" title="Collapse all clusters">collapse</button> | <button type="button" id="expand-all" class="btn btn-link" title="Expand all clusters">expand</button></div></div><div id="clusters" class="accordion accordion-flush flex-grow-1 d-flex flex-column"></div></div></main><footer class="text-center mt-4"><i class="fa-solid fa-bolt"></i> Powered by <a href="https://github.com/allenta/varnishmon/">varnishmon</a> v{{.Version}} (<span class="font-monospace">{{.Revision}}</span>)</footer><div id="notifications" class="position-fixed bottom-0 end-0 p-3 d-grid gap-2"></div><template id="spinner-template"><div class="d-flex justify-content-center flex-grow-1 align-items-center"><div class="spinner-border fs-2 opacity-50" role="status"><span class="visually-hidden">Loading...</span></div></div></template><template id="metrics-meditation-template"><div class="d-flex flex-column text-center justify-content-center flex-grow-1"><h2 class="mt-4"><i class="fa-regular fa-face-sad-tear fa-3x"></i></h2><h2 class="mt-2">Metrics Meditation</h2><p class="mt-4 text-muted fs-5 w-25 mx-auto">Oops! Something went wrong while fetching metrics. Please, make sure <span class="font-monospace">varnishmon</span> is up and reachable</p></div></template><template id="cluster-template"><div class="cluster accordion-item"><div class="accordion-header"><button class="cluster-name accordion-button bg-light text-dark fs-5 border-0 font-monospace" type="button"></button></div><div class="accordion-collapse"><div class="charts row g-4 py-4"></div></div></div></template><template id="chart-template"><div class="chart col"><div class="card position-relative"><span class="loading-icon spinner-grow spinner-grow-sm text-secondary position-absolute top-0 m-2 z-1 d-none" role="status"><span class="visually-hidden">Loading...</span> </span><span class="error-icon text-danger position-absolute top-0 end-0 m-2 z-1 d-none"><i class="fas fa-exclamation-circle"></i></span><div class="card-body"><div class="graph" style="height:300px"></div></div><span class="step-factor text-secondary text-opacity-25 position-absolute bottom-0 end-0 me-2 mb-1 z-1 small" title="Effective step factor"></span></div></div></template><template id="notification-template"><div class="toast align-items-center border-0" role="alert" aria-live="assertive" aria-atomic="true"><div class="d-flex"><div class="toast-body"></div><button type="button" class="btn-close me-2 m-auto" data-bs-dismiss="toast" aria-label="Close"></button></div></div></template></body></html>
2 changes: 1 addition & 1 deletion assets/webpack/src/index.html.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@
<template id="cluster-template">
<div class="cluster accordion-item">
<div class="accordion-header">
<button class="cluster-name accordion-button bg-light text-dark fs-5 border-0" type="button">
<button class="cluster-name accordion-button bg-light text-dark fs-5 border-0 font-monospace" type="button">
</button>
</div>
<div class="accordion-collapse">
Expand Down
17 changes: 14 additions & 3 deletions assets/webpack/src/js/chart.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,17 @@ const resizeObserver = new ResizeObserver((entries) => {
});
});

const xaxisLayout = {
fixedrange: false,
griddash: 'dash',
autorange: false,
showspikes: true,
spikemode: 'across',
spikesnap: 'cursor',
spikedash: 'dot',
spikethickness: 1,
};

class Chart {
constructor(container, metric, rangeFactory, refreshInterval, aggregator, step) {
this.container = container;
Expand Down Expand Up @@ -530,11 +541,10 @@ class Chart {
subtitle: { text: this.metric.description },
},
margin: { l: 60, r: 10, b: 40, t: 40, pad: 5 },
hovermode: 'closest',
xaxis: {
fixedrange: false,
griddash: 'dash',
...xaxisLayout,
range: Array.from(range), // Beware the array needs to be cloned.
autorange: false,
},
yaxis: {
fixedrange: true,
Expand Down Expand Up @@ -642,6 +652,7 @@ class Chart {
// Prepare layout for Plotly.
const layout = {
xaxis: {
...xaxisLayout,
range: Array.from(range), // Beware the array needs to be cloned.
},
};
Expand Down
2 changes: 1 addition & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
# # - Go:
# # + go get -u ./... + make mod fmt lint vet test
# # - Node.js:
# # + rm -rf package-lock.json node_modules && npm update && npm audit fix
# # + rm -rf package-lock.json node_modules && npm update --save && npm audit fix
# # + npm outdated && npm install --save-dev <package>@latest
#
# # Fetch profiling data & metrics.
Expand Down
2 changes: 1 addition & 1 deletion extras/packaging/debian/varnishmon.postinst
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ case "$1" in

if [ -x "$(command -v systemctl)" ]; then
systemctl daemon-reload > /dev/null
systemctl try-reload-or-restart varnishmon > /dev/null
systemctl restart varnishmon > /dev/null
fi
fi
;;
Expand Down
2 changes: 1 addition & 1 deletion extras/packaging/redhat/varnishmon.postinst
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,6 @@ elif [ "$1" -gt 1 ]; then

if [ -x "$(command -v systemctl)" ]; then
systemctl daemon-reload > /dev/null
systemctl try-reload-or-restart varnishmon > /dev/null
systemctl restart varnishmon > /dev/null
fi
fi
4 changes: 3 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
module github.com/allenta/varnishmon

go 1.23.5
go 1.23

toolchain go1.23.5

require (
github.com/fasthttp/router v1.5.4
Expand Down

0 comments on commit d8c4be7

Please sign in to comment.