Last active
August 19, 2022 13:30
-
-
Save mmgrt/9d5a2955f0bc9cf86eabe7554919a4ef to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apiVersion: influxdata.com/v2alpha1 | |
kind: Label | |
metadata: | |
name: adoring-pasteur-d4d00d | |
spec: | |
color: '#326BBA' | |
name: inputs.net | |
--- | |
apiVersion: influxdata.com/v2alpha1 | |
kind: Label | |
metadata: | |
name: agreeing-goldberg-d4d013 | |
spec: | |
color: '#326BBA' | |
name: inputs.kernel | |
--- | |
apiVersion: influxdata.com/v2alpha1 | |
kind: Label | |
metadata: | |
name: dreamy-heyrovsky-d4d011 | |
spec: | |
color: '#326BBA' | |
name: inputs.disk | |
--- | |
apiVersion: influxdata.com/v2alpha1 | |
kind: Label | |
metadata: | |
name: elastic-morse-d4d001 | |
spec: | |
color: '#326BBA' | |
name: inputs.swap | |
--- | |
apiVersion: influxdata.com/v2alpha1 | |
kind: Label | |
metadata: | |
name: elegant-yonath-d4d015 | |
spec: | |
color: '#326BBA' | |
name: inputs.system | |
--- | |
apiVersion: influxdata.com/v2alpha1 | |
kind: Label | |
metadata: | |
name: gallant-sanderson-d4d003 | |
spec: | |
color: '#326BBA' | |
name: inputs.processes | |
--- | |
apiVersion: influxdata.com/v2alpha1 | |
kind: Label | |
metadata: | |
name: goofy-yalow-d4d005 | |
spec: | |
color: '#326BBA' | |
name: inputs.diskio | |
--- | |
apiVersion: influxdata.com/v2alpha1 | |
kind: Label | |
metadata: | |
name: inspiring-goodall-d4d00b | |
spec: | |
color: '#326BBA' | |
name: inputs.docker | |
--- | |
apiVersion: influxdata.com/v2alpha1 | |
kind: Label | |
metadata: | |
name: nice-kilby-d4d009 | |
spec: | |
color: '#108174' | |
name: outputs.influxdb_v2 | |
--- | |
apiVersion: influxdata.com/v2alpha1 | |
kind: Label | |
metadata: | |
name: unruffled-benz-d4d007 | |
spec: | |
color: '#326BBA' | |
name: inputs.cpu | |
--- | |
apiVersion: influxdata.com/v2alpha1 | |
kind: Label | |
metadata: | |
name: vigilant-chatelet-d4d00f | |
spec: | |
color: '#326BBA' | |
name: inputs.mem | |
--- | |
apiVersion: influxdata.com/v2alpha1 | |
kind: CheckThreshold | |
metadata: | |
name: crumbling-meitner-14d002 | |
spec: | |
description: Container mem usage is above 80% for 15 minutes | |
every: 15m0s | |
name: Container Mem Usage Pct | |
query: |- | |
from(bucket: v.bucket) | |
|> range(start: v.timeRangeStart, stop: v.timeRangeStop) | |
|> filter(fn: (r) => r["_measurement"] == "docker_container_mem") | |
|> filter(fn: (r) => r["_field"] == "usage_percent") | |
|> aggregateWindow(every: 15m, fn: mean) | |
|> yield(name: "mean") | |
status: active | |
statusMessageTemplate: 'Check: ${ r._check_name } for container {r.container_name} | |
is: ${ r._level } ' | |
thresholds: | |
- level: WARN | |
type: greater | |
value: 80 | |
- level: CRIT | |
type: greater | |
value: 90 | |
- level: OK | |
type: lesser | |
value: 80 | |
--- | |
apiVersion: influxdata.com/v2alpha1 | |
kind: CheckThreshold | |
metadata: | |
name: ecstatic-mendeleev-d4d01b | |
spec: | |
description: Container disk usage is above 80% | |
every: 15m0s | |
name: Container Disk Usage | |
query: |- | |
from(bucket: v.bucket) | |
|> range(start: v.timeRangeStart, stop: v.timeRangeStop) | |
|> filter(fn: (r) => r["_measurement"] == "docker_container_blkio") | |
|> filter(fn: (r) => r["_field"] == "usage_percent") | |
|> aggregateWindow(every: 15m, fn: mean) | |
|> yield(name: "mean") | |
status: active | |
statusMessageTemplate: 'Check: ${ r._check_name } is: ${ r._level }' | |
thresholds: | |
- level: WARN | |
type: greater | |
value: 80 | |
- level: CRIT | |
type: greater | |
value: 90 | |
- level: OK | |
type: lesser | |
value: 80 | |
--- | |
apiVersion: influxdata.com/v2alpha1 | |
kind: CheckThreshold | |
metadata: | |
name: frosty-greider-14d004 | |
spec: | |
description: Container exits with a non zero exit status | |
every: 5m0s | |
name: Container Non Zero Exit Code | |
query: |- | |
from(bucket: v.bucket) | |
|> range(start: v.timeRangeStart, stop: v.timeRangeStop) | |
|> filter(fn: (r) => r["_measurement"] == "docker_container_status") | |
|> filter(fn: (r) => r["_field"] == "exitcode") | |
|> unique() | |
|> yield(name: "unique") | |
status: active | |
statusMessageTemplate: 'Check: ${ r._check_name } for container {r.container_name} | |
has exited with a non 0 ecit code' | |
thresholds: | |
- level: CRIT | |
max: 0 | |
min: 0 | |
type: outside_range | |
--- | |
apiVersion: influxdata.com/v2alpha1 | |
kind: CheckThreshold | |
metadata: | |
name: gracious-bose-14d000 | |
spec: | |
description: Container cpu usage is above 80% for 15 minutes | |
every: 15m0s | |
name: Container CPU Usage Pct | |
query: |- | |
from(bucket: v.bucket) | |
|> range(start: v.timeRangeStart, stop: v.timeRangeStop) | |
|> filter(fn: (r) => r["_measurement"] == "docker_container_cpu") | |
|> filter(fn: (r) => r["_field"] == "usage_percent") | |
|> aggregateWindow(every: 15m, fn: mean) | |
|> yield(name: "mean") | |
status: active | |
statusMessageTemplate: 'Check: ${ r._check_name } for container {r.container_name} | |
is: ${ r._level }' | |
thresholds: | |
- level: WARN | |
type: greater | |
value: 80 | |
- level: CRIT | |
type: greater | |
value: 90 | |
- level: OK | |
type: lesser | |
value: 80 | |
--- | |
apiVersion: influxdata.com/v2alpha1 | |
kind: NotificationEndpointHTTP | |
metadata: | |
name: earnest-ishizaka-14d006 | |
spec: | |
method: POST | |
name: HTTP POST | |
status: active | |
type: none | |
url: http://localhost:25378/alert | |
--- | |
apiVersion: influxdata.com/v2alpha1 | |
kind: NotificationRule | |
metadata: | |
name: gifted-haslett-14d008 | |
spec: | |
endpointName: earnest-ishizaka-14d006 | |
every: 5m0s | |
name: Crit Notifier | |
statusRules: | |
- currentLevel: CRIT | |
previousLevel: OK | |
--- | |
apiVersion: influxdata.com/v2alpha1 | |
kind: Dashboard | |
metadata: | |
name: earning-boyd-94d001 | |
spec: | |
associations: | |
- kind: Label | |
name: inspiring-goodall-d4d00b | |
- kind: Label | |
name: elegant-yonath-d4d015 | |
charts: | |
- height: 1 | |
kind: Markdown | |
name: Name this Cell | |
note: This dashboard gives you an overview of [Docker](https://docker.com) | |
metrics. See the [Telegraf Documentation](https://github.com/influxdata/telegraf/tree/master/plugins/inputs/docker) | |
for help configuring these plugins. | |
width: 12 | |
- height: 1 | |
kind: Markdown | |
name: Name this Cell | |
note: '# Docker Daemon' | |
width: 12 | |
yPos: 1 | |
- colors: | |
- hex: '#00C9FF' | |
name: laser | |
type: text | |
decimalPlaces: 2 | |
height: 1 | |
kind: Single_Stat | |
name: Num Images | |
queries: | |
- query: |- | |
from(bucket: v.bucket) | |
|> range(start: v.timeRangeStart, stop: v.timeRangeStop) | |
|> filter(fn: (r) => r["_measurement"] == "docker") | |
|> filter(fn: (r) => r["_field"] == "n_images") | |
width: 2 | |
yPos: 2 | |
- height: 1 | |
kind: Markdown | |
name: Name this Cell | |
note: '# System Stats' | |
width: 12 | |
yPos: 3 | |
- colors: | |
- hex: '#00C9FF' | |
name: laser | |
type: text | |
height: 1 | |
kind: Single_Stat | |
name: System Uptime | |
queries: | |
- query: |- | |
from(bucket: v.bucket) | |
|> range(start: v.timeRangeStart, stop: v.timeRangeStop) | |
|> filter(fn: (r) => r["_measurement"] == "system") | |
|> filter(fn: (r) => r["_field"] == "uptime") | |
|> map(fn: (r) => ({r with _value: float(v: r._value) / 86400.0})) | |
suffix: ' days' | |
width: 2 | |
yPos: 4 | |
- axes: | |
- base: "10" | |
name: x | |
scale: linear | |
- base: "2" | |
name: y | |
scale: linear | |
- base: "10" | |
name: y2 | |
scale: linear | |
geom: line | |
height: 2 | |
kind: Xy | |
name: Swap | |
queries: | |
- query: |- | |
from(bucket: v.bucket) | |
|> range(start: v.timeRangeStart) | |
|> filter(fn: (r) => r._measurement == "swap") | |
|> filter(fn: (r) => r._field == "total" or r._field == "used") | |
|> window(period: v.windowPeriod) | |
|> mean() | |
|> group(columns: ["_value", "_time", "_start", "_stop"], mode: "except") | |
|> yield(name: "mean") | |
width: 3 | |
yPos: 5 | |
- axes: | |
- base: "10" | |
name: y2 | |
scale: linear | |
- base: "10" | |
name: x | |
scale: linear | |
- base: "2" | |
label: Bytes | |
name: y | |
scale: linear | |
geom: line | |
height: 3 | |
kind: Xy | |
name: Network TX trafic per container / sec | |
queries: | |
- query: |- | |
from(bucket: v.bucket) | |
|> range(start: v.timeRangeStart, stop:v.timeRangeStop) | |
|> filter(fn: (r) => r._measurement == "docker_container_net") | |
|> filter(fn: (r) => r._field == "tx_bytes") | |
|> derivative(unit:1s, nonNegative: false) | |
|> window(period: v.windowPeriod) | |
|> mean() | |
|> keep(columns: ["_measurement","container_name", "host","_value","_field","_stop"]) | |
|> group(columns: ["_value", "_time", "_start", "_stop"],mode: "except") | |
width: 6 | |
xCol: _stop | |
yCol: _value | |
yPos: 7 | |
- height: 1 | |
kind: Markdown | |
name: Name this Cell | |
note: '# Container Stats' | |
width: 12 | |
yPos: 10 | |
- axes: | |
- base: "10" | |
name: x | |
scale: linear | |
- base: "10" | |
name: y | |
scale: linear | |
suffix: '%' | |
- base: "10" | |
name: y2 | |
scale: linear | |
geom: line | |
height: 3 | |
kind: Xy | |
name: Disk Usage | |
queries: | |
- query: |- | |
from(bucket: v.bucket) | |
|> range(start: v.timeRangeStart) | |
|> filter(fn: (r) => r._measurement == "disk") | |
|> filter(fn: (r) => r._field == "used_percent") | |
|> window(period: v.windowPeriod) | |
|> mean() | |
|> group(columns: ["_value", "_time", "_start", "_stop"], mode: "except") | |
|> yield(name: "mean") | |
width: 3 | |
yPos: 11 | |
- colors: | |
- hex: '#00C9FF' | |
name: laser | |
type: text | |
decimalPlaces: 2 | |
height: 1 | |
kind: Single_Stat | |
name: Total Num Containers | |
queries: | |
- query: |- | |
from(bucket: v.bucket) | |
|> range(start: v.timeRangeStart, stop: v.timeRangeStop) | |
|> filter(fn: (r) => r["_measurement"] == "docker") | |
|> filter(fn: (r) => r["_field"] == "n_containers") | |
width: 2 | |
xPos: 2 | |
yPos: 2 | |
- colors: | |
- hex: '#00C9FF' | |
name: laser | |
type: text | |
decimalPlaces: 2 | |
height: 1 | |
kind: Single_Stat | |
name: System Load | |
queries: | |
- query: |- | |
from(bucket: v.bucket) | |
|> range(start: v.timeRangeStart) | |
|> filter(fn: (r) => r._measurement == "system") | |
|> filter(fn: (r) => r._field == "load1") | |
|> window(period: v.windowPeriod) | |
|> mean() | |
|> group(columns: ["_value", "_time", "_start", "_stop"], mode: "except") | |
|> yield(name: "mean") | |
width: 1 | |
xPos: 2 | |
yPos: 4 | |
- axes: | |
- base: "10" | |
name: x | |
scale: linear | |
- base: "10" | |
label: Load | |
name: y | |
scale: linear | |
- base: "10" | |
name: y2 | |
scale: linear | |
geom: line | |
height: 3 | |
kind: Xy | |
name: System Load | |
queries: | |
- query: |- | |
from(bucket: v.bucket) | |
|> range(start: v.timeRangeStart) | |
|> filter(fn: (r) => r._measurement == "system") | |
|> filter(fn: (r) => r._field == "load1" or r._field == "load5" or r._field == "load15") | |
|> window(period: v.windowPeriod) | |
|> mean() | |
|> group(columns: ["_value", "_time", "_start", "_stop"], mode: "except") | |
|> yield(name: "mean") | |
width: 3 | |
xPos: 3 | |
yPos: 4 | |
- axes: | |
- base: "10" | |
name: x | |
scale: linear | |
- base: "10" | |
name: y | |
scale: linear | |
geom: line | |
height: 3 | |
kind: Xy | |
name: Memory usage % per container | |
queries: | |
- query: |- | |
from(bucket: v.bucket) | |
|> range(start: v.timeRangeStart, stop: v.timeRangeStop) | |
|> filter(fn: (r) => r._measurement == "docker_container_mem") | |
|> filter(fn: (r) => r._field == "usage_percent") | |
|> window(period: v.windowPeriod) | |
|> mean() | |
|> group(columns: ["_value", "_time", "_start", "_stop"], mode: "except") | |
|> keep(columns: ["_measurement","container_name", "host","_value","_field","_stop"]) | |
|> yield(name: "mean") | |
width: 3 | |
xPos: 3 | |
yPos: 11 | |
- colors: | |
- hex: '#00C9FF' | |
name: laser | |
type: text | |
decimalPlaces: 2 | |
height: 1 | |
kind: Single_Stat | |
name: Number of Runnng Docker containers | |
queries: | |
- query: |- | |
from(bucket: v.bucket) | |
|> range(start: v.timeRangeStart, stop: v.timeRangeStop) | |
|> filter(fn: (r) => r["_measurement"] == "docker") | |
|> filter(fn: (r) => r["_field"] == "n_containers_running") | |
|> group(columns: ["engine_host"]) | |
width: 2 | |
xPos: 4 | |
yPos: 2 | |
- colors: | |
- hex: '#00C9FF' | |
name: laser | |
type: text | |
decimalPlaces: 2 | |
height: 1 | |
kind: Single_Stat | |
name: Docker Daemon nCPUs | |
queries: | |
- query: |- | |
from(bucket: v.bucket) | |
|> range(start: v.timeRangeStart) | |
|> filter(fn: (r) => r._measurement == "docker") | |
|> filter(fn: (r) => r._field == "n_cpus") | |
|> window(period: v.windowPeriod) | |
|> last() | |
|> group(columns: ["_value", "_time", "_start", "_stop"], mode: "except") | |
|> yield(name: "last") | |
suffix: ' cpus' | |
width: 2 | |
xPos: 6 | |
yPos: 2 | |
- axes: | |
- base: "10" | |
name: x | |
scale: linear | |
- base: "10" | |
name: y | |
scale: linear | |
suffix: '%' | |
- base: "10" | |
name: y2 | |
scale: linear | |
geom: line | |
height: 3 | |
kind: Xy | |
name: CPU Usage | |
queries: | |
- query: |- | |
from(bucket: v.bucket) | |
|> range(start: v.timeRangeStart) | |
|> filter(fn: (r) => r._measurement == "cpu") | |
|> filter(fn: (r) => r._field == "usage_user" or r._field == "usage_system" or r._field == "usage_idle") | |
|> filter(fn: (r) => r.cpu == "cpu-total") | |
|> window(period: v.windowPeriod) | |
|> mean() | |
|> group(columns: ["_value", "_time", "_start", "_stop"], mode: "except") | |
|> yield(name: "mean") | |
width: 3 | |
xPos: 6 | |
yPos: 4 | |
- axes: | |
- base: "10" | |
name: x | |
scale: linear | |
- base: "2" | |
label: Bytes | |
name: y | |
scale: linear | |
- base: "10" | |
name: y2 | |
scale: linear | |
colors: | |
- hex: '#FDC44F' | |
name: Cthulhu | |
type: scale | |
- hex: '#007C76' | |
name: Cthulhu | |
type: scale | |
- hex: '#8983FF' | |
name: Cthulhu | |
type: scale | |
geom: line | |
height: 3 | |
kind: Xy | |
name: Network RX trafic per container / sec | |
queries: | |
- query: |- | |
from(bucket: v.bucket) | |
|> range(start: v.timeRangeStart, stop: v.timeRangeStop) | |
|> filter(fn: (r) => r._measurement == "docker_container_net") | |
|> filter(fn: (r) => r._field == "rx_bytes" ) | |
|> derivative(unit: 1s, nonNegative: false) | |
|> window(period: v.windowPeriod) | |
|> mean() | |
|> keep(columns: ["_measurement","container_name", "host","_value","_field","_stop"]) | |
|> group(columns: ["_value", "_time", "_start", "_stop"], mode: "except") | |
width: 6 | |
xCol: _stop | |
xPos: 6 | |
yCol: _value | |
yPos: 7 | |
- axes: | |
- base: "10" | |
name: x | |
scale: linear | |
- base: "10" | |
name: y | |
scale: linear | |
geom: line | |
height: 3 | |
kind: Xy | |
name: Memory usage per container | |
queries: | |
- query: |- | |
from(bucket: v.bucket) | |
|> range(start: v.timeRangeStart, stop: v.timeRangeStop) | |
|> filter(fn: (r) => r._measurement == "docker_container_mem") | |
|> filter(fn: (r) => r._field == "usage") | |
|> window(period: v.windowPeriod) | |
|> mean() | |
|> group(columns: ["_value", "_time", "_start", "_stop"], mode: "except") | |
|> keep(columns: ["_measurement","container_name", "host","_value","_field","_stop"]) | |
|> yield(name: "mean") | |
width: 3 | |
xPos: 6 | |
yPos: 11 | |
- colors: | |
- hex: '#00C9FF' | |
name: laser | |
type: text | |
decimalPlaces: 2 | |
height: 1 | |
kind: Single_Stat | |
name: Docker Daemon Total Mem | |
queries: | |
- query: |- | |
from(bucket: v.bucket) | |
|> range(start: v.timeRangeStart) | |
|> filter(fn: (r) => r._measurement == "docker") | |
|> filter(fn: (r) => r._field == "memory_total") | |
|> window(period: v.windowPeriod) | |
|> last() | |
|> map(fn: (r) => ({r with _value: float(v: r._value) / 1024.0 / 1024.0 / 1024.0})) | |
|> group(columns: ["_value", "_time", "_start", "_stop"], mode: "except") | |
|> yield(name: "last") | |
suffix: ' GB' | |
width: 2 | |
xPos: 8 | |
yPos: 2 | |
- axes: | |
- base: "10" | |
name: x | |
scale: linear | |
- base: "10" | |
name: y | |
scale: linear | |
suffix: '%' | |
- base: "10" | |
name: y2 | |
scale: linear | |
colors: | |
- hex: '#00C9FF' | |
name: laser | |
type: text | |
- hex: '#8F8AF4' | |
name: Do Androids Dream of Electric Sheep? | |
type: scale | |
- hex: '#A51414' | |
name: Do Androids Dream of Electric Sheep? | |
type: scale | |
- hex: '#F4CF31' | |
name: Do Androids Dream of Electric Sheep? | |
type: scale | |
decimalPlaces: 1 | |
height: 3 | |
kind: Single_Stat_Plus_Line | |
name: System Memory Usage | |
queries: | |
- query: |- | |
from(bucket: v.bucket) | |
|> range(start: v.timeRangeStart) | |
|> filter(fn: (r) => r._measurement == "mem") | |
|> filter(fn: (r) => r._field == "used_percent") | |
|> window(period: v.windowPeriod) | |
|> mean() | |
|> group(columns: ["_value", "_time", "_start", "_stop"], mode: "except") | |
|> yield(name: "mean") | |
suffix: '%' | |
width: 3 | |
xCol: _stop | |
xPos: 9 | |
yCol: _value | |
yPos: 4 | |
- axes: | |
- base: "10" | |
name: x | |
scale: linear | |
- base: "10" | |
name: y | |
scale: linear | |
geom: line | |
height: 3 | |
kind: Xy | |
name: CPU usage per container | |
queries: | |
- query: |- | |
from(bucket: v.bucket) | |
|> range(start: v.timeRangeStart, stop: v.timeRangeStop) | |
|> filter(fn: (r) => r._measurement == "cpu" or r._measurement == "docker_container_cpu") | |
|> filter(fn: (r) => r._field == "usage_percent") | |
|> window(period: v.windowPeriod) | |
|> mean() | |
|> group(columns: ["_value", "_time", "_start", "_stop"], mode: "except") | |
|> keep(columns: ["_measurement","container_name", "host","_value","_field","_stop"]) | |
|> yield(name: "mean") | |
width: 3 | |
xPos: 9 | |
yPos: 11 | |
description: A collection of useful visualizations for monitoring Docker stats | |
name: Docker |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment