grafana-dashboards/prometheus/apache-http-mixin/dashboards/apache-exporter-full.libsonnet
Vitaly Zhuravlev 6df0b6aafd Change host:port to instance and replace apache up/down panel to state timeline
Due to possible relabelling rules instances may not contain port at all. Keeping it as single value instance makes it more universal.
2022-05-11 15:25:46 +04:00

649 lines
16 KiB
Plaintext

local grafana = import 'github.com/grafana/grafonnet-lib/grafonnet/grafana.libsonnet';
local dashboard = grafana.dashboard;
local row = grafana.row;
local prometheus = grafana.prometheus;
local graphPanel = grafana.graphPanel;
{
grafanaDashboards+:: {
'apache-http.json':
dashboard.new(
'Apache Dashboard',
time_from='%s' % $._config.dashboardPeriod,
editable=false,
tags=($._config.dashboardTags),
timezone='%s' % $._config.dashboardTimezone,
refresh='%s' % $._config.dashboardRefresh,
graphTooltip='shared_crosshair',
).addTemplates(
[
{
current: {
text: 'default',
value: 'default',
},
hide: 0,
label: 'Data Source',
name: 'datasource',
options: [],
query: 'prometheus',
refresh: 1,
regex: '',
type: 'datasource',
},
{
allValue: null,
current: {},
datasource: '${datasource}',
hide: 0,
includeAll: false,
label: 'instance',
multi: false,
name: 'instance',
options: [],
query: 'label_values(apache_up, instance)',
refresh: 2,
sort: 1,
tagValuesQuery: '',
tags: [],
tagsQuery: '',
type: 'query',
useTags: false,
},
]
)
.addPanels([
{
datasource: {
uid: '${datasource}',
},
fieldConfig: {
defaults: {
color: {
mode: 'thresholds',
},
decimals: 1,
mappings: [
{
options: {
match: 'null',
result: {
text: 'N/A',
},
},
type: 'special',
},
],
thresholds: {
mode: 'absolute',
steps: [
{
color: 'green',
value: null,
},
{
color: 'red',
value: 80,
},
],
},
unit: 's',
},
overrides: [],
},
gridPos: {
h: 3,
w: 4,
x: 0,
y: 0,
},
id: 8,
links: [],
maxDataPoints: 100,
options: {
colorMode: 'none',
graphMode: 'none',
justifyMode: 'auto',
orientation: 'horizontal',
reduceOptions: {
calcs: [
'mean',
],
fields: '',
values: false,
},
textMode: 'auto',
},
pluginVersion: '8.4.5',
targets: [
{
expr: 'apache_uptime_seconds_total{instance=~"$instance"}',
format: 'time_series',
intervalFactor: 1,
refId: 'A',
step: 240,
},
],
title: 'Uptime',
type: 'stat',
},
{
id: 5,
gridPos: {
h: 3,
w: 20,
x: 4,
y: 0,
},
type: 'state-timeline',
title: 'Apache Up / Down',
datasource: {
uid: '${datasource}',
type: 'prometheus',
},
pluginVersion: '8.4.5',
links: [],
options: {
mergeValues: false,
showValue: 'never',
alignValue: 'left',
rowHeight: 0.9,
legend: {
displayMode: 'list',
placement: 'right',
},
tooltip: {
mode: 'single',
sort: 'none',
},
},
targets: [
{
expr: 'apache_up{instance=~"$instance"}',
legendFormat: 'Apache up',
interval: '',
exemplar: true,
format: 'time_series',
intervalFactor: 1,
refId: 'A',
step: 240,
datasource: {
type: 'prometheus',
uid: 'grafanacloud-prom',
},
},
],
fieldConfig: {
defaults: {
custom: {
lineWidth: 0,
fillOpacity: 70,
spanNulls: false,
},
color: {
mode: 'continuous-GrYlRd',
},
mappings: [
{
type: 'value',
options: {
'0': {
text: 'Down',
color: 'red',
index: 1,
},
'1': {
text: 'Up',
color: 'green',
index: 0,
},
},
},
],
thresholds: {
mode: 'absolute',
steps: [
{
color: 'green',
value: null,
},
],
},
},
overrides: [],
},
timeFrom: null,
timeShift: null,
},
{
aliasColors: {},
bars: false,
dashLength: 10,
dashes: false,
datasource: {
uid: '${datasource}',
},
decimals: 2,
fill: 1,
fillGradient: 0,
gridPos: {
h: 10,
w: 12,
x: 0,
y: 3,
},
hiddenSeries: false,
id: 3,
legend: {
alignAsTable: true,
avg: true,
current: true,
max: true,
min: true,
show: true,
total: false,
values: true,
},
lines: true,
linewidth: 1,
links: [],
nullPointMode: 'null',
options: {
alertThreshold: true,
},
percentage: false,
pluginVersion: '8.4.5',
pointradius: 5,
points: false,
renderer: 'flot',
seriesOverrides: [],
spaceLength: 10,
stack: false,
steppedLine: false,
targets: [
{
expr: 'rate(apache_sent_kilobytes_total{instance=~"$instance"}[5m])',
format: 'time_series',
intervalFactor: 1,
legendFormat: 'Kilobytes Sent',
refId: 'A',
step: 240,
},
],
thresholds: [],
timeRegions: [],
title: 'Current total kbytes sent',
tooltip: {
shared: true,
sort: 0,
value_type: 'individual',
},
type: 'graph',
xaxis: {
mode: 'time',
show: true,
values: [],
},
yaxes: [
{
format: 'deckbytes',
logBase: 1,
show: true,
},
{
format: 'short',
logBase: 1,
show: false,
},
],
yaxis: {
align: false,
},
},
{
aliasColors: {},
bars: false,
dashLength: 10,
dashes: false,
datasource: {
uid: '${datasource}',
},
decimals: 2,
fill: 1,
fillGradient: 0,
gridPos: {
h: 10,
w: 12,
x: 12,
y: 3,
},
hiddenSeries: false,
id: 1,
legend: {
alignAsTable: true,
avg: true,
current: true,
max: true,
min: true,
show: true,
total: false,
values: true,
},
lines: true,
linewidth: 1,
links: [],
nullPointMode: 'null',
options: {
alertThreshold: true,
},
percentage: false,
pluginVersion: '8.4.5',
pointradius: 5,
points: false,
renderer: 'flot',
seriesOverrides: [],
spaceLength: 10,
stack: false,
steppedLine: false,
targets: [
{
expr: 'rate(apache_accesses_total{instance=~"$instance"}[5m])',
format: 'time_series',
intervalFactor: 1,
legendFormat: 'Accesses',
refId: 'A',
step: 240,
},
],
thresholds: [],
timeRegions: [],
title: 'Current total apache accesses',
tooltip: {
shared: true,
sort: 0,
value_type: 'individual',
},
type: 'graph',
xaxis: {
mode: 'time',
show: true,
values: [],
},
yaxes: [
{
format: 'short',
logBase: 1,
show: true,
},
{
format: 'short',
logBase: 1,
show: false,
},
],
yaxis: {
align: false,
},
},
{
aliasColors: {},
bars: false,
dashLength: 10,
dashes: false,
datasource: {
uid: '${datasource}',
},
decimals: 2,
fill: 1,
fillGradient: 0,
gridPos: {
h: 10,
w: 24,
x: 0,
y: 13,
},
hiddenSeries: false,
id: 2,
legend: {
alignAsTable: true,
avg: true,
current: true,
max: true,
min: true,
rightSide: true,
show: true,
total: false,
values: true,
},
lines: true,
linewidth: 1,
links: [],
nullPointMode: 'null',
options: {
alertThreshold: true,
},
percentage: false,
pluginVersion: '8.4.5',
pointradius: 5,
points: false,
renderer: 'flot',
seriesOverrides: [],
spaceLength: 10,
stack: true,
steppedLine: false,
targets: [
{
expr: 'apache_scoreboard{instance=~"$instance"}',
format: 'time_series',
intervalFactor: 1,
legendFormat: '{{ state }}',
refId: 'A',
step: 240,
},
],
thresholds: [],
timeRegions: [],
title: 'Apache scoreboard statuses',
tooltip: {
shared: true,
sort: 0,
value_type: 'individual',
},
type: 'graph',
xaxis: {
mode: 'time',
show: true,
values: [],
},
yaxes: [
{
format: 'short',
logBase: 1,
show: true,
},
{
format: 'short',
logBase: 1,
show: false,
},
],
yaxis: {
align: false,
},
},
{
aliasColors: {},
bars: false,
dashLength: 10,
dashes: false,
datasource: {
uid: '${datasource}',
},
decimals: 2,
fill: 1,
fillGradient: 0,
gridPos: {
h: 10,
w: 12,
x: 0,
y: 23,
},
hiddenSeries: false,
id: 7,
legend: {
alignAsTable: true,
avg: true,
current: true,
max: true,
min: true,
show: true,
total: false,
values: true,
},
lines: true,
linewidth: 1,
links: [],
nullPointMode: 'null',
options: {
alertThreshold: true,
},
percentage: false,
pluginVersion: '8.4.5',
pointradius: 5,
points: false,
renderer: 'flot',
seriesOverrides: [],
spaceLength: 10,
stack: true,
steppedLine: false,
targets: [
{
expr: 'apache_workers{instance=~"$instance"}\n',
format: 'time_series',
intervalFactor: 1,
legendFormat: '{{ state }}',
refId: 'A',
step: 240,
},
],
thresholds: [],
timeRegions: [],
title: 'Apache worker statuses',
tooltip: {
shared: true,
sort: 0,
value_type: 'individual',
},
type: 'graph',
xaxis: {
mode: 'time',
show: true,
values: [],
},
yaxes: [
{
format: 'short',
logBase: 1,
show: true,
},
{
format: 'short',
logBase: 1,
show: false,
},
],
yaxis: {
align: false,
},
},
{
aliasColors: {},
bars: false,
dashLength: 10,
dashes: false,
datasource: {
uid: '${datasource}',
},
decimals: 2,
fill: 1,
fillGradient: 0,
gridPos: {
h: 10,
w: 12,
x: 12,
y: 23,
},
hiddenSeries: false,
id: 4,
legend: {
alignAsTable: true,
avg: true,
current: true,
max: true,
min: true,
show: true,
total: false,
values: true,
},
lines: true,
linewidth: 1,
links: [],
nullPointMode: 'null',
options: {
alertThreshold: true,
},
percentage: false,
pluginVersion: '8.4.5',
pointradius: 5,
points: false,
renderer: 'flot',
seriesOverrides: [],
spaceLength: 10,
stack: false,
steppedLine: false,
targets: [
{
expr: 'apache_cpuload{instance=~"$instance"}',
format: 'time_series',
intervalFactor: 1,
legendFormat: 'Load',
refId: 'A',
step: 240,
},
],
thresholds: [],
timeRegions: [],
title: 'Apache CPU load',
tooltip: {
shared: true,
sort: 0,
value_type: 'individual',
},
type: 'graph',
xaxis: {
mode: 'time',
show: true,
values: [],
},
yaxes: [
{
format: 'short',
logBase: 1,
min: '0',
show: true,
},
{
format: 'short',
logBase: 1,
show: false,
},
],
yaxis: {
align: false,
},
},
]),
},
}