-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmanifest.yaml
239 lines (190 loc) · 10.1 KB
/
manifest.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
namespace: monitoring
node-exporter:
defines: runnable
metadata:
website: https://prometheus.io
name: Node exporter
icon: https://prometheus.io/assets/prometheus_logo_grey.svg
publisher: monk.io
description: |
Node Exporter is a Prometheus exporter that collects and exports various metrics from the system-level resources of a host, such as CPU, memory, disk, and network usage. It is a lightweight tool that runs on the target host and exposes system-level metrics in a format that can be scraped by Prometheus, a popular monitoring and alerting system.
Node Exporter collects a wide range of metrics related to system resources and provides them in a standardized format, allowing users to easily monitor and analyze the performance of their hosts. It supports a variety of operating systems and architectures, making it compatible with a wide range of systems.
Node Exporter can be configured to collect and export additional custom metrics, and it provides various plugins and integrations with other monitoring and alerting tools. It also has a simple and easy-to-use interface, making it accessible to users of all skill levels. Overall, Node Exporter is a powerful and versatile tool that plays a critical role in monitoring the health and performance of hosts in a distributed system.
---
Notes:
Variables:
| Variable | Description | Default |
| --------- | -----------------------------| ------------------- |
| cmdParams | Default node exporter params | --path.rootfs=/host |
source: https://github.com/prometheus/node_exporter
tags: prometheus, node exporter, monitoring
services:
exporter:
container: node
port: 9100
protocol: tcp
containers:
node:
image: quay.io/prometheus/node-exporter
image-tag: latest
paths:
- '/:/host:ro,rslave'
bash: <- `/bin/node_exporter ${cmdParams}`
variables:
cmdParams:
type: string
value: --path.rootfs=/host
prometheus:
defines: runnable
metadata:
website: https://prometheus.io
name: Prometheus
icon: https://prometheus.io/assets/prometheus_logo_grey.svg
publisher: monk.io
description: |
Prometheus is an open-source monitoring and alerting system that collects and stores time-series data, such as metrics and events, from various sources. It is designed to monitor and analyze the health and performance of distributed systems, including microservices and containerized environments.
Prometheus uses a pull-based model to collect data from various sources, including Node Exporter, Kubernetes, and other services. It stores the data in a time-series database, where it can be queried and analyzed using a powerful query language called PromQL.
Prometheus provides various features that help users monitor and analyze the performance of their systems, including visualization tools, alerting rules, and integrations with other monitoring and alerting tools. It also supports horizontal scaling and can be deployed in a highly available configuration.
Prometheus is highly configurable and customizable, making it suitable for a wide range of use cases. Its ease of use and flexibility have made it a popular choice among developers and DevOps teams looking to monitor and manage their systems effectively.
---
Notes:
Variables:
| Variable | Description | Default |
| ------------------ | ----------------------------------------------- | ------- |
| cmdParams | Additional params to pass to Prometheus cmdline | |
| additional_targets | Additional scrape targets for Prometheus* | |
source: https://github.com/prometheus/node_exporter
tags: prometheus, monitoring, exporter
services:
prometheus:
container: prom
port: 9090
protocol: tcp
connections:
node:
runnable: monitoring/node-exporter
service: exporter
containers:
prom:
image: prom/prometheus
image-tag: latest
bash: <- `/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/prometheus --web.console.libraries=/usr/share/prometheus/console_libraries --web.console.templates=/usr/share/prometheus/console ${cmdParams}`
variables:
cmdParams:
type: string
value:
targets:
type: string
value: <- "\"" connection-hostname("node") ":" connection-port("node") "\"" concat-all
additional_targets:
type: string
value:
files:
config:
container: prom
mode: 0644
path: /etc/prometheus/prometheus.yml
contents: <<< files/prometheus.yaml
grafana:
defines: runnable
metadata:
website: https://grafana.com
name: Grafana
icon: https://grafana.com/static/assets/internal/grafana_logo-web-white-text.svg
publisher: monk.io
description: |
Grafana is an open-source data visualization and analytics platform that allows users to create, explore, and share dashboards and graphs from a wide range of data sources. It is a popular tool for monitoring and analyzing metrics, logs, and other time-series data from various sources, including databases, cloud services, and IoT devices.
Grafana provides a user-friendly interface that allows users to create and customize visualizations using a wide range of options and plugins. It offers support for multiple data sources, including Prometheus, Graphite, Elasticsearch, InfluxDB, and many others.
Grafana allows users to create custom dashboards that display real-time data and provide insights into the health and performance of their systems. It offers a variety of visualization options, including graphs, tables, heatmaps, and alerts, and allows users to create custom alerts that trigger notifications based on predefined conditions.
Grafana is highly scalable and can be deployed in a variety of environments, including on-premise, cloud, and hybrid environments. It offers integrations with other popular tools such as Prometheus, Kubernetes, and Docker, making it a versatile and powerful tool for monitoring and analyzing complex distributed systems. Overall, Grafana is an essential tool for any organization looking to monitor and analyze their data effectively.
---
Notes:
Variables:
| Variable | Description | Default |
| --------------- | ----------------------------------------- | -------------------------------------------------- |
| admin-user | Administrator username | admin |
| admin-password | Administrator password | admin |
| install_plugins | Default plugins to install with grafana | grafana-clock-panel,grafana-simple-json-datasource |
| anonymous | Should we enable anonymous access | false |
| anonymous_role | Role of the anonymous user | Viewer |
source: https://github.com/grafana/grafana
tags: prometheus, grafana, monitoring, exporter
services:
grafana:
container: grafana
port: 3000
protocol: tcp
host-port: 3000
connections:
prometheus:
runnable: monitoring/prometheus
service: prometheus
containers:
grafana:
environment:
- GF_AUTH_ANONYMOUS_HIDE_VERSION=true
- GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_PATH=/etc/grafana/dashboards/home_of_all_dashboards.json
- <- `GF_AUTH_ANONYMOUS_ORG_ROLE=${anonymous_role}`
- <- `GF_AUTH_ANONYMOUS_ENABLED=${anonymous}`
- <- `GF_SECURITY_ADMIN_USER=${admin-user}`
- <- `GF_SECURITY_ADMIN_PASSWORD=${admin-password}`
- <- `GF_INSTALL_PLUGINS=${install_plugins}`
image: docker.io/grafana/grafana
image-tag: latest
files:
datasource:
container: grafana
mode: 0644
path: /etc/grafana/provisioning/datasources/datasources.yaml
contents: <<< files/datasources.yaml
dashboard:
container: grafana
mode: 0644
path: /etc/grafana/provisioning/dashboards/dashboards.yaml
contents: <<< files/dashboards.yaml
dashboard_diskfree:
container: grafana
mode: 0644
path: /etc/grafana/dashboards/diskfree.json
contents: <<< files/diskfree.json
dashboard_home:
container: grafana
mode: 0644
path: /etc/grafana/dashboards/home_of_all_dashboards.json
contents: <<< files/home_of_all_dashboards.json
variables:
prometheusHost:
type: string
value: <- connection-hostname("prometheus")
admin-user:
value: admin
type: string
admin-password:
type: string
value: admin
install_plugins:
type: string
value: grafana-clock-panel,grafana-simple-json-datasource
anonymous:
type: string
value: true
anonymous_role:
type: string
value: Viewer
stack:
defines: process-group
runnable-list:
- monitoring/grafana
- monitoring/node-exporter
- monitoring/prometheus
metadata:
website:
name: Node Exporter + Grafana + Prometheus
icon: https://prometheus.io/assets/prometheus_logo_grey.svg
publisher: monk.io
description: |
Together, Prometheus, Node Exporter, and Grafana form a powerful toolchain for monitoring and analyzing the health and performance of distributed systems.
Node Exporter collects system-level metrics from a host and exports them to Prometheus, which stores the data in a time-series database. Grafana then provides a user-friendly interface for creating and customizing visualizations and dashboards based on the data stored in Prometheus.
This toolchain allows users to monitor and analyze the performance of their systems effectively, identify issues, and make informed decisions to improve the health and performance of their systems.
source:
tags: prometheus, grafana, monitoring, exporter