]>
Commit | Line | Data |
---|---|---|
e306af50 TL |
1 | <cd-loading-panel *ngIf="loading && !error" |
2 | i18n>Loading configuration...</cd-loading-panel> | |
3 | <cd-alert-panel type="error" | |
4 | *ngIf="loading && error" | |
5 | i18n>The configuration could not be loaded.</cd-alert-panel> | |
6 | ||
7 | <div class="cd-col-form" | |
8 | *ngIf="!loading && !error"> | |
9 | <ng-container [ngSwitch]="step"> | |
10 | <!-- Configuration step --> | |
11 | <div *ngSwitchCase="1"> | |
12 | <form name="form" | |
13 | #formDir="ngForm" | |
14 | [formGroup]="configForm" | |
15 | novalidate> | |
16 | <div class="card"> | |
17 | <div class="card-header" | |
18 | i18n>Step {{ step }} of 2: Telemetry report configuration</div> | |
19 | <div class="card-body"> | |
20 | <p i18n>The telemetry module sends anonymous data about this Ceph cluster back to the Ceph developers | |
21 | to help understand how Ceph is used and what problems users may be experiencing.<br/> | |
22 | This data is visualized on <a href="https://telemetry-public.ceph.com/">public dashboards</a> | |
23 | that allow the community to quickly see summary statistics on how many clusters are reporting, | |
24 | their total capacity and OSD count, and version distribution trends.<br/><br/> | |
25 | The data being reported does <b>not</b> contain any sensitive data like pool names, object names, object contents, | |
26 | hostnames, or device serial numbers. It contains counters and statistics on how the cluster has been | |
27 | deployed, the version of Ceph, the distribution of the hosts and other parameters which help the project | |
28 | to gain a better understanding of the way Ceph is used. The data is sent secured to {{ sendToUrl }} and | |
29 | {{ sendToDeviceUrl }} (device report).</p> | |
30 | <div *ngIf="moduleEnabled"> | |
31 | The plugin is already <b>enabled</b>. Click <b>Deactivate</b> to disable it. | |
32 | <button type="button" | |
33 | class="btn btn-light" | |
34 | (click)="disableModule('The Telemetry module has been disabled successfully.')" | |
35 | i18n>Deactivate</button> | |
36 | </div> | |
37 | <legend i18n>Channels</legend> | |
38 | <p i18n>The telemetry report is broken down into several "channels", each with a different type of information that can | |
39 | be configured below.</p> | |
40 | ||
41 | <!-- Channel basic --> | |
42 | <div class="form-group row"> | |
43 | <label class="cd-col-form-label" | |
44 | for="channel_basic"> | |
45 | <ng-container i18n>Basic</ng-container> | |
46 | <cd-helper> | |
47 | <ng-container i18n>Includes basic information about the cluster:</ng-container> | |
48 | <ul> | |
49 | <li i18n>Capacity of the cluster</li> | |
50 | <li i18n>Number of monitors, managers, OSDs, MDSs, object gateways, or other daemons</li> | |
51 | <li i18n>Software version currently being used</li> | |
52 | <li i18n>Number and types of RADOS pools and CephFS file systems</li> | |
53 | <li i18n>Names of configuration options that have been changed from their default (but not their values)</li> | |
54 | </ul> | |
55 | </cd-helper> | |
56 | </label> | |
57 | <div class="cd-col-form-input"> | |
58 | <div class="custom-control custom-checkbox"> | |
59 | <input type="checkbox" | |
60 | class="custom-control-input" | |
61 | id="channel_basic" | |
62 | formControlName="channel_basic"> | |
63 | <label class="custom-control-label" | |
64 | for="channel_basic"></label> | |
65 | </div> | |
66 | </div> | |
67 | </div> | |
68 | ||
69 | <!-- Channel crash --> | |
70 | <div class="form-group row"> | |
71 | <label class="cd-col-form-label" | |
72 | for="channel_crash"> | |
73 | <ng-container i18n>Crash</ng-container> | |
74 | <cd-helper> | |
75 | <ng-container i18n>Includes information about daemon crashes:</ng-container> | |
76 | <ul> | |
77 | <li i18n>Type of daemon</li> | |
78 | <li i18n>Version of the daemon</li> | |
79 | <li i18n>Operating system (OS distribution, kernel version)</li> | |
80 | <li i18n>Stack trace identifying where in the Ceph code the crash occurred</li> | |
81 | </ul> | |
82 | </cd-helper> | |
83 | </label> | |
84 | <div class="cd-col-form-input"> | |
85 | <div class="custom-control custom-checkbox"> | |
86 | <input type="checkbox" | |
87 | class="custom-control-input" | |
88 | id="channel_crash" | |
89 | formControlName="channel_crash"> | |
90 | <label class="custom-control-label" | |
91 | for="channel_crash"></label> | |
92 | </div> | |
93 | </div> | |
94 | </div> | |
95 | ||
96 | <!-- Channel device --> | |
97 | <div class="form-group row"> | |
98 | <label class="cd-col-form-label" | |
99 | for="channel_device"> | |
100 | <ng-container i18n>Device</ng-container> | |
101 | <cd-helper i18n-html | |
102 | html="Includes information about device metrics like anonymized SMART metrics."> | |
103 | </cd-helper> | |
104 | </label> | |
105 | <div class="cd-col-form-input"> | |
106 | <div class="custom-control custom-checkbox"> | |
107 | <input type="checkbox" | |
108 | class="custom-control-input" | |
109 | id="channel_device" | |
110 | formControlName="channel_device"> | |
111 | <label class="custom-control-label" | |
112 | for="channel_device"></label> | |
113 | </div> | |
114 | </div> | |
115 | </div> | |
116 | ||
117 | <!-- Channel ident --> | |
118 | <div class="form-group row"> | |
119 | <label class="cd-col-form-label" | |
120 | for="channel_ident"> | |
121 | <ng-container i18n>Ident</ng-container> | |
122 | <cd-helper> | |
123 | <ng-container i18n>Includes user-provided identifying information about the cluster:</ng-container> | |
124 | <ul> | |
125 | <li>Cluster description</li> | |
126 | <li>Contact email address</li> | |
127 | </ul> | |
128 | </cd-helper> | |
129 | </label> | |
130 | <div class="cd-col-form-input"> | |
131 | <div class="custom-control custom-checkbox"> | |
132 | <input type="checkbox" | |
133 | class="custom-control-input" | |
134 | id="channel_ident" | |
135 | formControlName="channel_ident"> | |
136 | <label class="custom-control-label" | |
137 | for="channel_ident"></label> | |
138 | </div> | |
139 | </div> | |
140 | </div> | |
141 | <legend> | |
142 | <ng-container i18n>Contact Information</ng-container> | |
143 | <cd-helper i18n>Submitting any contact information is completely optional and disabled by default.</cd-helper> | |
144 | </legend> | |
145 | <div class="form-group row"> | |
146 | <label class="cd-col-form-label" | |
147 | for="contact" | |
148 | i18n>Contact</label> | |
149 | <div class="cd-col-form-input"> | |
150 | <input id="contact" | |
151 | class="form-control" | |
152 | type="text" | |
153 | formControlName="contact" | |
154 | placeholder="Example User <user@example.com>"> | |
155 | </div> | |
156 | </div> | |
157 | <div class="form-group row"> | |
158 | <label class="cd-col-form-label" | |
159 | for="description" | |
160 | i18n>Description</label> | |
161 | <div class="cd-col-form-input"> | |
162 | <input id="description" | |
163 | class="form-control" | |
164 | type="text" | |
165 | formControlName="description" | |
166 | placeholder="My first Ceph cluster" | |
167 | i18n-placeholder> | |
168 | </div> | |
169 | </div> | |
170 | <legend i18n>Advanced Settings</legend> | |
171 | <div class="form-group row"> | |
172 | <label class="cd-col-form-label" | |
173 | for="interval"> | |
174 | <ng-container i18n>Interval</ng-container> | |
175 | <cd-helper i18n>The module compiles and sends a new report every 24 hours by default. You can | |
176 | adjust this interval by setting a different number of hours.</cd-helper> | |
177 | </label> | |
178 | <div class="cd-col-form-input"> | |
179 | <input id="interval" | |
180 | class="form-control" | |
181 | type="number" | |
182 | formControlName="interval"> | |
183 | <span class="invalid-feedback" | |
184 | *ngIf="configForm.showError('interval', formDir, 'min')" | |
185 | i18n>The entered value is too low! It must be greater or equal to 8.</span> | |
186 | </div> | |
187 | </div> | |
188 | <div class="form-group row"> | |
189 | <label class="cd-col-form-label" | |
190 | for="proxy"> | |
191 | <ng-container i18n>Proxy</ng-container> | |
192 | <cd-helper> | |
193 | <p i18n>If the cluster cannot directly connect to the configured telemetry endpoint | |
194 | (default telemetry.ceph.com), you can configure a HTTP/HTTPS proxy server by e.g. adding | |
195 | https://10.0.0.1:8080</p> | |
196 | <p i18n>You can also include a user:pass if needed e.g. https://ceph:telemetry@10.0.0.1:8080</p> | |
197 | </cd-helper> | |
198 | </label> | |
199 | <div class="cd-col-form-input"> | |
200 | <input id="proxy" | |
201 | class="form-control" | |
202 | type="text" | |
203 | formControlName="proxy" | |
204 | placeholder="https://10.0.0.1:8080"> | |
205 | </div> | |
206 | </div> | |
207 | <br /> | |
208 | <p i18n><b>Note:</b> By clicking 'Next' you will first see a preview of the report content before you | |
209 | can activate the automatic submission of your data.</p> | |
210 | </div> | |
211 | <div class="card-footer"> | |
212 | <div class="button-group text-right"> | |
213 | <button type="button" | |
214 | class="btn btn-light" | |
215 | (click)="next()"> | |
216 | <ng-container i18n>Next</ng-container> | |
217 | </button> | |
218 | </div> | |
219 | </div> | |
220 | </div> | |
221 | </form> | |
222 | </div> | |
223 | ||
224 | <!-- Preview step --> | |
225 | <div *ngSwitchCase="2"> | |
226 | <form name="previewForm" | |
227 | #frm="ngForm" | |
228 | [formGroup]="previewForm" | |
229 | novalidate> | |
230 | <div class="card"> | |
231 | <div class="card-header" | |
232 | i18n>Step {{ step }} of 2: Telemetry report preview</div> | |
233 | <div class="card-body"> | |
234 | <!-- Telemetry report ID --> | |
235 | <div class="form-group row"> | |
236 | <label i18n | |
237 | for="reportId" | |
238 | class="cd-col-form-label">Report ID</label> | |
239 | <div class="cd-col-form-input"> | |
240 | <input class="form-control" | |
241 | type="text" | |
242 | id="reportId" | |
243 | formControlName="reportId" | |
244 | readonly> | |
245 | </div> | |
246 | </div> | |
247 | ||
248 | <!-- Telemetry report --> | |
249 | <div class="form-group row"> | |
250 | <label i18n | |
251 | for="report" | |
252 | class="cd-col-form-label">Report preview</label> | |
253 | <div class="cd-col-form-input"> | |
254 | <textarea class="form-control" | |
255 | id="report" | |
256 | formControlName="report" | |
257 | rows="15" | |
258 | readonly></textarea> | |
259 | </div> | |
260 | </div> | |
261 | <div class="form-group row"> | |
262 | <div class="cd-col-form-offset"> | |
263 | <button type="button" | |
264 | class="btn btn-light mr-2" | |
265 | title="Download" | |
266 | (click)="download(report, 'telemetry_report.json')" | |
267 | i18n-title> | |
268 | <i class="fa fa-download"></i> | |
269 | </button> | |
270 | <button type="button" | |
271 | class="btn btn-light" | |
272 | cdCopy2ClipboardButton="report" | |
273 | formatted> | |
274 | </button> | |
275 | </div> | |
276 | </div> | |
277 | ||
278 | <!-- License agreement --> | |
279 | <div class="form-group row"> | |
280 | <div class="cd-col-form-offset"> | |
281 | <div class="custom-control custom-checkbox"> | |
282 | <input type="checkbox" | |
283 | class="custom-control-input" | |
284 | id="licenseAgrmt" | |
285 | name="licenseAgrmt" | |
286 | formControlName="licenseAgrmt"> | |
287 | <label class="custom-control-label" | |
288 | for="licenseAgrmt" | |
289 | i18n>I agree to my telemetry data being submitted under the Community Data License Agreement - Sharing - Version 1.0 (<a href="https://cdla.io/sharing-1-0/">https://cdla.io/sharing-1-0/</a>)</label> | |
290 | </div> | |
291 | </div> | |
292 | </div> | |
293 | </div> | |
294 | <div class="card-footer"> | |
295 | <div class="button-group text-right"> | |
296 | <cd-submit-button (submitAction)="onSubmit()" | |
297 | [form]="previewForm"> | |
298 | <ng-container i18n>Save</ng-container> | |
299 | </cd-submit-button> | |
300 | <button type="button" | |
301 | class="btn btn-light" | |
302 | (click)="back()" | |
303 | i18n>Back</button> | |
304 | </div> | |
305 | </div> | |
306 | </div> | |
307 | </form> | |
308 | </div> | |
309 | </ng-container> | |
310 | </div> |