You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+59-2Lines changed: 59 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ We will address these as soon as we can, but there are no specific SLAs.
13
13
14
14
This application aims to help monitor Pure Storage FlashArrays by providing an "exporter", which means it extracts data from the Purity API and converts it to the OpenMetrics format, which is for instance consumable by Prometheus, or other observability platforms.
15
15
16
-
The stateless design of the exporter allows for easy configuration management as well as scalability for a whole fleet of Pure Storage arrays. Each time the OpenMetrics client scrapes metrics for a specific system, it should provide the hostname via GET parameter and the API token as Authorization token to this exporter.
16
+
The stateless design of the exporter allows for easy configuration management as well as scalability for a whole fleet of Pure Storage arrays. The design follows almost completely the [multi-target-exporter](https://prometheus.io/docs/guides/multi-target-exporter/) pattern described in the Prometheus documentation, so the tool can be used to scrape multiple FlashArrays from a single instance or just act the front-end for a single FlashArray.
17
17
18
18
To monitor your Pure Storage appliances, you will need to create a new dedicated user on your array, and assign read-only permissions to it. Afterwards, you also have to create a new API key.
Authentication is used by the exporter as the mechanism to cross authenticate to the scraped appliance, therefore for each array it is required to provide the REST API token for an account that has a 'readonly' role. The api-token can be provided in two ways
73
73
@@ -125,6 +125,63 @@ The exporter uses a RESTful API schema to provide Prometheus scraping endpoints.
125
125
126
126
Depending on the target array, scraping for the whole set of metrics could result into timeout issues, in which case it is suggested either to increase the scraping timeout or to scrape each single endpoint instead.
127
127
128
+
### Prometheus configuration
129
+
130
+
A sample of a basic configuration file for Prometheus is as follows.
131
+
132
+
```shell
133
+
134
+
global:
135
+
scrape_interval: 30s
136
+
scrape_timeout: 10s
137
+
evaluation_interval: 30s
138
+
scrape_configs:
139
+
- job_name: monitoring/pure-fa-probe
140
+
honor_timestamps: true
141
+
scrape_interval: 30s
142
+
scrape_timeout: 10s
143
+
metrics_path: /metrics/pods
144
+
scheme: http
145
+
follow_redirects: true
146
+
enable_http2: true
147
+
relabel_configs:
148
+
- source_labels: [job]
149
+
separator: ;
150
+
regex: (.*)
151
+
target_label: __tmp_prometheus_job_name
152
+
replacement: $1
153
+
action: replace
154
+
- separator: ;
155
+
regex: (.*)
156
+
target_label: job
157
+
replacement: pure-fa-probe
158
+
action: replace
159
+
- source_labels: [__address__]
160
+
separator: ;
161
+
regex: (.*)
162
+
target_label: __param_target
163
+
replacement: $1
164
+
action: replace
165
+
- source_labels: [__param_target]
166
+
separator: ;
167
+
regex: (.*)
168
+
target_label: instance
169
+
replacement: $1
170
+
action: replace
171
+
- separator: ;
172
+
regex: (.*)
173
+
target_label: __address__
174
+
replacement: pure-fa-exporter.your.domain:9490 # <== your exporter address and port goes here
175
+
action: replace
176
+
static_configs:
177
+
- targets: # <== the list of your flasharrays goes here
178
+
- 10.11.12.80
179
+
- 10.11.12.82
180
+
- 10.11.12.90
181
+
182
+
```
183
+
184
+
See the kubernetes [examples](examples/config/k8s) for a similar configuration that uses a the additional config for a simple Prometheus kubernets deploymemt or the more interesting Prometheus operator.
Install Prometheus using the [Prometheus Operator](https://github.com/prometheus-operator/prometheus-operator), then deploy
4
+
the Pure FlashArray Prometheus exporter using the deployment file [pure-fa-exporter-deployment.yaml](./pure-fa-exporter-deployment.yaml). Configure Prometheus using the Probe custom resouce defined in the [pure-fa-probe.yaml](./pure-fa-probe.yaml).
0 commit comments