]> arthur.barton.de Git - netdata.git/blob - web/netdata-swagger.yaml
7dfef0aa8b801cd923547ee0c70fa933784d00c3
[netdata.git] / web / netdata-swagger.yaml
1 swagger: '2.0'
2 info:
3   title: NetData API
4   description: 'Real time data collection and graphs...'
5   version: 1.0.0
6 host: netdata.firehol.org
7 schemes:
8   - http
9 basePath: /api/v1
10 produces:
11   - application/json
12 paths:
13   /charts:
14     get:
15       summary: 'Get a list of all charts available at the server'
16       description: 'The charts endpoint returns a summary about all charts stored in the netdata server.'
17       responses:
18         '200':
19           description: 'An array of charts'
20           schema:
21             type: array
22             items:
23               $ref: '#/definitions/chart_summary'
24   /chart:
25     get:
26       summary: 'Get info about a specific chart'
27       description: 'The Chart endpoint returns detailed information about a chart.'
28       parameters:
29         - name: chart
30           in: query
31           description: 'The id of the chart as returned by the /charts call.'
32           required: true
33           type: string
34           format: 'as returned by /charts'
35           default: 'system.cpu'
36       responses:
37         '200':
38           description: 'A javascript object with detailed information about the chart.'
39           schema:
40             $ref: '#/definitions/chart'
41         '404':
42           description: 'No chart with the given id is found.'
43   /data:
44     get:
45       summary: 'Get collected data for a specific chart'
46       description: |
47         The Data endpoint returns data stored in the round robin database of a chart.
48       parameters:
49         - name: chart
50           in: query
51           description: 'The id of the chart as returned by the /charts call.'
52           required: true
53           type: string
54           format: 'as returned by /charts'
55           allowEmptyValue: false
56           default: system.cpu
57         - name: dimension
58           in: query
59           description: 'zero, one or more dimension ids, as returned by the /chart call.'
60           required: false
61           type: array
62           items:
63             type: string
64             collectionFormat: pipes
65             format: 'as returned by /charts'
66           allowEmptyValue: false
67         - name: after
68           in: query
69           description: 'This parameter can either be an absolute timestamp specifying the starting point of the data to be returned, or a relative number of seconds, to the last collected timestamp. Netdata will assume it is a relative number if it is smaller than the duration of the round robin database for this chart. So, if the round robin database is 3600 seconds, any value from -3600 to 3600 will trigger relative arithmetics. Netdata will adapt this parameter to the boundaries of the round robin database.'
70           required: true
71           type: number
72           format: integer
73           allowEmptyValue: false
74           default: -600
75         - name: before
76           in: query
77           description: 'This parameter can either be an absolute timestamp specifying the ending point of the data to be returned, or a relative number of seconds, to the last collected timestamp. Netdata will assume it is a relative number if it is smaller than the duration of the round robin database for this chart. So, if the round robin database is 3600 seconds, any value from -3600 to 3600 will trigger relative arithmetics. Netdata will adapt this parameter to the boundaries of the round robin database.'
78           required: false
79           type: number
80           format: integer
81           default: 0
82         - name: points
83           in: query
84           description: 'The number of points to be returned. If not given, or it is <= 0, or it is bigger than the points stored in the round robin database for this chart for the given duration, all the available collected values for the given duration are returned.'
85           required: true
86           type: number
87           format: integer
88           allowEmptyValue: false
89           default: 20
90         - name: group
91           in: query
92           description: 'The grouping method. If multiple collected values are to be grouped in order to return fewer points, this parameters defines the method of grouping. Two methods are supported, "max" and "average". "max" is actually calculated on the absolute value collected (so it works for both positive and negative dimesions to return the most extreme value in either direction).'
93           required: true
94           type: string
95           enum: [ 'max', 'average' ]
96           default: 'average'
97           allowEmptyValue: false
98         - name: format
99           in: query
100           description: 'The format of the data to be returned.'
101           required: true
102           type: string
103           enum: [ 'json', 'jsonp', 'csv', 'tsv', 'tsv-excel', 'ssv', 'ssvcomma', 'datatable', 'datasource', 'html', 'array', 'csvjsonarray' ]
104           default: json
105           allowEmptyValue: false
106         - name: options
107           in: query
108           description: 'Options that affect data generation.'
109           required: false
110           type: array
111           items:
112             type: string
113             enum: [ 'nonzero', 'flip', 'jsonwrap', 'min2max', 'seconds', 'milliseconds', 'abs', 'absolute', 'absolute-sum', 'null2zero', 'objectrows', 'google_json', 'percentage' ]
114             collectionFormat: pipes
115           default: [seconds, jsonwrap]
116           allowEmptyValue: false
117         - name: callback
118           in: query
119           description: 'For JSONP responses, the callback function name.'
120           required: false
121           type: string
122           allowEmptyValue: true
123         - name: filename
124           in: query
125           description: 'Add Content-Disposition: attachment; filename=<filename> header to the response, that will instruct the browser to save the response with the given filename.'
126           required: false
127           type: string
128           allowEmptyValue: true
129         - name: tqx
130           in: query
131           description: '[Google Visualization API](https://developers.google.com/chart/interactive/docs/dev/implementing_data_source?hl=en) formatted parameter.'
132           required: false
133           type: string
134           allowEmptyValue: true
135       responses:
136         '200':
137           description: 'The call was successful. The response should include the data.'
138           schema:
139             $ref: '#/definitions/chart'
140         '400':
141           description: 'Bad request - the body will include a message stating what is wrong.'
142         '404':
143           description: 'No chart with the given id is found.'
144         '500':
145           description: 'Internal server error. This usually means the server is out of memory.'
146 definitions:
147   chart_summary:
148     type: object
149     properties:
150       hostname:
151         type: string
152         description: 'The hostname of the netdata server.'
153       update_every:
154         type: number
155         description: 'The default update frequency of the netdata server. All charts have an update frequency equal or bigger than this.'
156       charts:
157         type: object
158         description: 'An object containing all the chart objects available at the netdata server. This is used as an indexed array. The key of each chart object is the id of the chart.'
159         properties:
160           key:
161               $ref: '#/definitions/chart'
162   chart:
163     type: object
164     properties:
165       id:
166         type: string
167         description: 'The unique id of the chart'
168       name:
169         type: string
170         description: 'The name of the chart'
171       type:
172         type: string
173         description: 'The type of the chart. Types are not handled by netdata. You can use this field for anything you like.'
174       family:
175         type: string
176         description: 'The family of the chart. Families are not handled by netdata. You can use this field for anything you like.'
177       title:
178         type: string
179         description: 'The title of the chart.'
180       priority:
181         type: string
182         description: 'The relative priority of the chart. NetData does not care about priorities. This is just an indication of importance for the chart viewers to sort charts of higher priority (lower number) closer to the top. Priority sorting should only be used among charts of the same type or family.'
183       enabled:
184         type: boolean
185         description: 'True when the chart is enabled. Disabled charts do not currently collect values, but they may have historical values available.'
186       units:
187         type: string
188         description: 'The unit of measurement for the values of all dimensions of the chart.'
189       data_url:
190         type: string
191         description: 'The absolute path to get data values for this chart. You are expected to use this path as the base when constructing the URL to fetch data values for this chart.'
192       chart_type:
193         type: string
194         description: 'The chart type.'
195         enum: [ 'line', 'area', 'stacked' ]
196       duration:
197         type: number
198         description: 'The duration, in seconds, of the round robin database maintained by netdata.'
199       first_entry:
200         type: number
201         description: 'The UNIX timestamp of the first entry (the oldest) in the round robin database.'
202       last_entry:
203         type: number
204         description: 'The UNIX timestamp of the latest entry in the round robin database.'
205       update_every:
206         type: number
207         description: 'The update frequency of this chart, in seconds. One value every this amount of time is kept in the round robin database.'
208       dimensions:
209         type: object
210         description: 'An object containing all the chart dimensions available for the chart. This is used as an indexed array. The key of the object the id of the dimension.'
211         properties:
212           key:
213               $ref: '#/definitions/dimension'
214   dimension:
215     type: object
216     properties:
217       name:
218         type: string
219         description: 'The name of the dimension'
220  
221   json_wrap:
222     type: object
223     properties:
224       api:
225         type: number
226         description: 'The API version this conforms to, currently 1'
227       id:
228         type: string
229         description: 'The unique id of the chart'
230       name:
231         type: string
232         description: 'The name of the chart'
233       update_every:
234         type: number
235         description: 'The update frequency of this chart, in seconds. One value every this amount of time is kept in the round robin database (indepedently of the current view).'
236       view_update_every:
237         type: number
238         description: 'The current view appropriate update frequency of this chart, in seconds. There is no point to request chart refreshes, using the same settings, more frequently than this.'
239       first_entry:
240         type: number
241         description: 'The UNIX timestamp of the first entry (the oldest) in the round robin database (indepedently of the current view).'
242       last_entry:
243         type: number
244         description: 'The UNIX timestamp of the latest entry in the round robin database (indepedently of the current view).'
245       after:
246         type: number
247         description: 'The UNIX timestamp of the first entry (the oldest) returned in this response.'
248       before:
249         type: number
250         description: 'The UNIX timestamp of the latest entry returned in this response.'
251       min:
252         type: number
253         description: 'The minimum value returned in the current view. This can be used to size the y-series of the chart.'
254       max:
255         type: number
256         description: 'The maximum value returned in the current view. This can be used to size the y-series of the chart.'
257       dimension_names:
258         description: 'The dimension names of the chart as returned in the current view.'
259         type: array
260         items:
261           type: string
262       dimension_ids:
263         description: 'The dimension IDs of the chart as returned in the current view.'
264         type: array
265         items:
266           type: string
267       latest_values:
268         description: 'The latest values collected for the chart (indepedently of the current view).'
269         type: array
270         items:
271           type: string
272       view_latest_values:
273         description: 'The latest values returned with this response.'
274         type: array
275         items:
276           type: string
277       dimensions:
278         type: number
279         description: 'The number of dimensions returned.'
280       points:
281         type: number
282         description: 'The number of rows / points returned.'
283       format:
284         type: string
285         description: 'The format of the result returned.'
286       result:
287         description: 'The result requested, in the format requested.'