diff options
author | Costa Tsaousis <costa@netdata.cloud> | 2022-07-24 22:33:09 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-24 22:33:09 +0300 |
commit | 291b978282e1066a43a80658bd1b49be0fbb2eaf (patch) | |
tree | 63bffa5ceb270ad05ffe3187d4fb7e18cb56ff35 /web | |
parent | 94040523c73c0f515ea3d682ab0a20c11400a43c (diff) |
Rrdcontext (#13335)
* type checking on dictionary return values
* first STRING implementation, used by DICTIONARY and RRDLABEL
* enable AVL compilation of STRING
* Initial functions to store context info
* Call simple test functions
* Add host_id when getting charts
* Allow host to be null and in this case it will process the localhost
* Simplify init
Do not use strdupz - link directly to sqlite result set
* Init the database during startup
* make it compile - no functionality yet
* intermediate commit
* intermidiate
* first interface to sql
* loading instances
* check if we need to update cloud
* comparison of rrdcontext on conflict
* merge context titles
* rrdcontext public interface; statistics on STRING; scratchpad on DICTIONARY
* dictionaries maintain version numbers; rrdcontext api
* cascading changes
* first operational cleanup
* string unittest
* proper cleanup of referenced dictionaries
* added rrdmetrics
* rrdmetric starting retention
* Add fields to context
Adjuct context creation and delete
* Memory cleanup
* Fix get context list
Fix memory double free in tests
Store context with two hosts
* calculated retention
* rrdcontext retention with collection
* Persist database and shutdown
* loading all from sql
* Get chart list and dimension list changes
* fully working attempt 1
* fully working attempt 2
* missing archived flag from log
* fixed archived / collected
* operational
* proper cleanup
* cleanup - implemented all interface functions - dictionary react callback triggers after the dictionary is unlocked
* track all reasons for changes
* proper tracking of reasons of changes
* fully working thread
* better versioning of contexts
* fix string indexing with AVL
* running version per context vs hub version; ifdef dbengine
* added option to disable rrdmetrics
* release old context when a chart changes context
* cleanup properly
* renamed config
* cleanup contexts; general cleanup;
* deletion inline with dequeue; lots of cleanup; child connected/disconnected
* ml should start after rrdcontext
* added missing NULL to ri->rrdset; rrdcontext flags are now only changed under a mutex lock
* fix buggy STRING under AVL
* Rework database initialization
Add migration logic to the context database
* fix data race conditions during context deletion
* added version hash algorithm
* fix string over AVL
* update aclk-schemas
* compile new ctx related protos
* add ctx stream message utils
* add context messages
* add dummy rx message handlers
* add the new topics
* add ctx capability
* add helper functions to send the new messages
* update cmake build to not fail
* update topic names
* handle rrdcontext_enabled
* add more functions
* fatal on OOM cases instead of return NULL
* silence unknown query type error
* fully working attempt 1
* fully working attempt 2
* allow compiling without ACLK
* added family to the context
* removed excess character in UUID
* smarter merging of titles and families
* Database migration code to add family
Add family to SQL_CHART_DATA and VERSIONED_CONTEXT_DATA
* add family to context message
* enable ctx in communication
* hardcoded enabled contexts
* Add hard code for CTX
* add update node collectors to json
* add context message log
* fix log about last_time_t
* fix collected flags for queued items
* prevent crash on charts cleanup
* fix bug in AVL indexing of dictionaries; make sure react callback of dictionaries has a reference counter, which is acquired while the dictionary is locked
* fixed dictionary unittest
* strict policy to cleanup and garbage collector
* fix db rotation and garbage collection timings
* remove deadlock
* proper garbage collection - a lot faster retention recalculation
* Added not NULL in database columns
Remove migration code for context -- we will ship with version 1 of the table schema
Added define for query in tests to detect localhost
* Use UUID_STR_LEN instead of GUID_LEN + 1
Use realistic timestamps when adding test data in the database
* Add NULL checks for passed parameters
* Log deleted context when compiled with NETDATA_INTERNAL_CHECKS
* Error checking for null host id
* add missing ContextsCheckpoint log convertor
* Fix spelling in VACCUM
* Hold additional information for host -- prepare to load archived hosts on startup
* Make sure claim id is valid
* is_get_claimed is actually get the current claim id
* Simplify ctx get chart list query
* remove env negotiation
* fix string unittest when there are some strings already in the index
* propagate live-retention flag upstream; cleanup all update reasons; updated instances logging; automated attaching started/stopped collecting flags;
* first implementation of /api/v1/contexts
* full contexts API; updated swagger
* disabled debugging; rrdcontext enabled by default
* final cleanup and renaming of global variables
* return current time on currently collected contexts, charts and dimensions
* added option "deepscan" to the API to have the server refresh the retention and recalculate the contexts on the fly
* fixed identation of yaml
* Add constrains to the host table
* host->node_id may not be available
* new capabilities
* lock the context while rendering json
* update aclk-schemas
* added permanent labels to all charts about plugin, module and family; added labels to all proc plugin modules
* always add the labels
* allow merging of families down to [x]
* dont show uuids by default, added option to enable them; response is now accepting after,before to show only data for a specific timeframe; deleted items are only shown when "deleted" is requested; hub version is now shown when "queue" is requested
* Use the localhost claim id
* Fix to handle host constrains better
* cgroups: add "k8s." prefix to chart context in k8s
* Improve sqlite metadata version migration check
* empty values set to "[none]"; fix labels unit test to reflect that
* Check if we reached the version we want first (address CODACY report re: Array index 'i' is used before limits check)
* Rewrite condition to address CODACY report (Redundant condition: t->filter_callback. '!A || (A && B)' is equivalent to '!A || B')
* Properly unlock context
* fixed memory leak on rrdcontexts - it was not freeing all dictionaries in rrdhost; added wait of up to 100ms on dictionary_destroy() to give time to dictionaries to release their items before destroying them
* fixed memory leak on rrdlabels not freed on rrdinstances
* fixed leak when dimensions and charts are redefined
* Mark entries for charts and dimensions as submitted to the cloud 3600 seconds after their creation
Mark entries for charts and dimensions as updated (confirmed by the cloud) 1800 seconds after their submission
* renamed struct string
* update cgroups alarms
* fixed codacy suggestions
* update dashboard info
* fix k8s_cgroup_10s_received_packets_storm alarm
* added filtering options to /api/v1/contexts and /api/v1/context
* fix eslint
* fix eslint
* Fix pointer binding for host / chart uuids
* Fix cgroups unit tests
* fixed non-retention updates not propagated upstream
* removed non-fatal fatals
* Remove context from 2 way string merge.
* Move string_2way_merge to dictionary.c
* Add 2-way string merge tests.
* split long lines
* fix indentation in netdata-swagger.yaml
* update netdata-swagger.json
* yamllint please
* remove the deleted flag when a context is collected
* fix yaml warning in swagger
* removed non-fatal fatals
* charts should now be able to switch contexts
* allow deletion of unused metrics, instances and contexts
* keep the queued flag
* cleanup old rrdinstance labels
* dont hide objects when there is no filter; mark objects as deleted when there are no sub-objects
* delete old instances once they changed context
* delete all instances and contexts that do not have sub-objects
* more precise transitions
* Load archived hosts on startup (part 1)
* update the queued time every time
* disable by default; dedup deleted dimensions after snapshot
* Load archived hosts on startup (part 2)
* delayed processing of events until charts are being collected
* remove dont-trigger flag when object is collected
* polish all triggers given the new dont_process flag
* Remove always true condition
Enums for readbility / create_host_callback only if ACLK is enabled (for now)
* Skip retention message if context streaming is enabled
Add messages in the access log if context streaming is enabled
* Check for node id being a UUID that can be parsed
Improve error check / reporting when loading archived hosts and creating ACLK sync threads
* collected, archived, deleted are now mutually exclusive
* Enable the "orphan" handling for now
Remove dead code
Fix memory leak on free host
* Queue charts and dimensions will be no-op if host is set to stream contexts
* removed unused parameter and made sure flags are set on rrdcontext insert
* make the rrdcontext thread abort mid-work when exiting
* Skip chart hash computation and storage if contexts streaming is enabled
Co-authored-by: Stelios Fragkakis <52996999+stelfrag@users.noreply.github.com>
Co-authored-by: Timo <timotej@netdata.cloud>
Co-authored-by: ilyam8 <ilya@netdata.cloud>
Co-authored-by: Vladimir Kobal <vlad@prokk.net>
Co-authored-by: Vasilis Kalintiris <vasilis@netdata.cloud>
Diffstat (limited to 'web')
-rw-r--r-- | web/api/netdata-swagger.json | 302 | ||||
-rw-r--r-- | web/api/netdata-swagger.yaml | 282 | ||||
-rw-r--r-- | web/api/queries/query.c | 4 | ||||
-rw-r--r-- | web/api/web_api_v1.c | 157 | ||||
-rw-r--r-- | web/gui/dashboard_info.js | 486 |
5 files changed, 1048 insertions, 183 deletions
diff --git a/web/api/netdata-swagger.json b/web/api/netdata-swagger.json index a53f3f0873..5fc110f27b 100644 --- a/web/api/netdata-swagger.json +++ b/web/api/netdata-swagger.json @@ -48,7 +48,7 @@ "/chart": { "get": { "summary": "Get info about a specific chart", - "description": "The Chart endpoint returns detailed information about a chart.", + "description": "The chart endpoint returns detailed information about a chart.", "parameters": [ { "name": "chart", @@ -82,6 +82,219 @@ } } }, + "/contexts": { + "get": { + "summary": "Get a list of all contexts available at the server", + "description": "The contexts endpoint returns a summary about all contexts stored in the netdata server.", + "parameters": [ + { + "name": "options", + "in": "query", + "description": "Options that affect data generation.", + "required": false, + "allowEmptyValue": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "full", + "all", + "charts", + "dimensions", + "labels", + "uuids", + "queue", + "flags", + "deleted", + "deepscan" + ] + }, + "default": [ + "full" + ] + } + }, + { + "name": "after", + "in": "query", + "description": "limit the results on context having data after this timestamp.", + "required": false, + "schema": { + "type": "number", + "format": "integer" + } + }, + { + "name": "before", + "in": "query", + "description": "limit the results on context having data before this timestamp.", + "required": false, + "schema": { + "type": "number", + "format": "integer" + } + }, + { + "name": "chart_label_key", + "in": "query", + "description": "a simple pattern matching charts label keys (use comma or pipe as separator)", + "required": false, + "allowEmptyValue": true, + "schema": { + "type": "string" + } + }, + { + "name": "chart_labels_filter", + "in": "query", + "description": "a simple pattern matching charts label key and values (use colon for equality, comma or pipe as separator)", + "required": false, + "allowEmptyValue": true, + "schema": { + "type": "string" + } + }, + { + "name": "dimensions", + "in": "query", + "description": "a simple pattern matching dimensions (use comma or pipe as separator)", + "required": false, + "allowEmptyValue": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "An array of contexts.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/context_summary" + } + } + } + } + } + } + }, + "/context": { + "get": { + "summary": "Get info about a specific context", + "description": "The context endpoint returns detailed information about a given context.", + "parameters": [ + { + "name": "context", + "in": "query", + "description": "The id of the context as returned by the /contexts call.", + "required": true, + "schema": { + "type": "string", + "format": "as returned by /contexts", + "default": "system.cpu" + } + }, + { + "name": "options", + "in": "query", + "description": "Options that affect data generation.", + "required": false, + "allowEmptyValue": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "full", + "all", + "charts", + "dimensions", + "labels", + "uuids", + "queue", + "flags", + "deleted", + "deepscan" + ] + }, + "default": [ + "full" + ] + } + }, + { + "name": "after", + "in": "query", + "description": "limit the results on context having data after this timestamp.", + "required": false, + "schema": { + "type": "number", + "format": "integer" + } + }, + { + "name": "before", + "in": "query", + "description": "limit the results on context having data before this timestamp.", + "required": false, + "schema": { + "type": "number", + "format": "integer" + } + }, + { + "name": "chart_label_key", + "in": "query", + "description": "a simple pattern matching charts label keys (use comma or pipe as separator)", + "required": false, + "allowEmptyValue": true, + "schema": { + "type": "string" + } + }, + { + "name": "chart_labels_filter", + "in": "query", + "description": "a simple pattern matching charts label key and values (use colon for equality, comma or pipe as separator)", + "required": false, + "allowEmptyValue": true, + "schema": { + "type": "string" + } + }, + { + "name": "dimensions", + "in": "query", + "description": "a simple pattern matching dimensions (use comma or pipe as separator)", + "required": false, + "allowEmptyValue": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "A javascript object with detailed information about the context.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/context" + } + } + } + }, + "400": { + "description": "No context id was supplied in the request." + }, + "404": { + "description": "No context with the given id is found." + } + } + } + }, "/alarm_variables": { "get": { "summary": "List variables available to configure alarms for a chart", @@ -924,7 +1137,7 @@ "/alarms_values": { "get": { "summary": "Get a list of active or raised alarms on the server", - "description": "The alarms_values endpoint returns the list of all raised or enabled alarms on the netdata server. Called without any parameters, the raised alarms in state WARNING or CRITICAL are returned. By passing \"?all\", all the enabled alarms are returned. This option output differs from `/alarms` in the number of variables delivered. This endpoint gives to user `id`, `value`, `last_updated` time, and alarm `status`.", + "description": "The alarms_values endpoint returns the list of all raised or enabled alarms on the netdata server. Called without any parameters, the raised alarms in state WARNING or CRITICAL are returned. By passing '?all', all the enabled alarms are returned. This option output differs from `/alarms` in the number of variables delivered. This endpoint gives to user `id`, `value`, `last_updated` time, and alarm `status`.", "parameters": [ { "name": "all", @@ -1131,7 +1344,7 @@ "/aclk": { "get": { "summary": "Get information about current ACLK state", - "description": "aclk endpoint returns detailed information about current state of ACLK (Agent to Cloud communication).", + "description": "ACLK endpoint returns detailed information about current state of ACLK (Agent to Cloud communication).", "responses": { "200": { "description": "JSON object with ACLK information.", @@ -1678,6 +1891,89 @@ } } }, + "context_summary": { + "type": "object", + "properties": { + "hostname": { + "type": "string", + "description": "The hostname of the netdata server." + }, + "machine_guid": { + "type": "string", + "description": "The unique installation id of this netdata server." + }, + "node_id": { + "type": "string", + "description": "The unique node id of this netdata server at the hub.", + "example": "nightly" + }, + "claim_id": { + "type": "string", + "description": "The unique handshake id of this netdata server and the hub." + }, + "host_labels": { + "type": "object", + "description": "The host labels associated with this netdata server." + }, + "context": { + "type": "object", + "description": "An object containing all the context objects available at the netdata server. This is used as an indexed array. The key of each context object is the id of the context.", + "additionalProperties": { + "$ref": "#/components/schemas/context" + } + } + } + }, + "context": { + "type": "object", + "properties": { + "version": { + "type": "string", + "description": "The version of this context. The number are not sequential, but bigger numbers depict a newer object." + }, + "hub_version": { + "type": "string", + "description": "The version of this context, as known by hub." + }, + "family": { + "type": "string", + "description": "The family of the context. When multiple charts of a context have different families, the netdata server replaces the different parts with [x], so that the context can have only one family." + }, + "title": { + "type": "string", + "description": "The title of the context. When multiple charts of a context have different titles, the netdata server replaces the different parts with [x], so that the context can have only one title." + }, + "priority": { + "type": "number", + "description": "The relative priority of the context. When multiple contexts have different priorities, the minimum among them is selected as the priority of the context." + }, + "units": { + "type": "string", + "description": "The unit of measurement for the values of all dimensions of the context. If multiple charts of context have different units, the latest collected is selected." + }, + "chart_type": { + "type": "string", + "description": "The chart type.", + "enum": [ + "line", + "area", + "stacked" + ] + }, + "first_time_t": { + "type": "number", + "description": "The UNIX timestamp of the first entry (the oldest) in the database." + }, + "last_time_t": { + "type": "number", + "description": "The UNIX timestamp of the latest entry in the database." + }, + "charts": { + "type": "object", + "description": "An object containing all the charts available for the chart. This is used as an indexed array. For each pair in the dictionary, the key is the id of the chart and the value provides all details about the chart." + } + } + }, "alarm_variables": { "type": "object", "properties": { diff --git a/web/api/netdata-swagger.yaml b/web/api/netdata-swagger.yaml index eb9652a3ce..1c80663741 100644 --- a/web/api/netdata-swagger.yaml +++ b/web/api/netdata-swagger.yaml @@ -43,7 +43,7 @@ paths: /chart: get: summary: Get info about a specific chart - description: The Chart endpoint returns detailed information about a chart. + description: The chart endpoint returns detailed information about a chart. parameters: - name: chart in: query @@ -64,6 +64,159 @@ paths: description: No chart id was supplied in the request. "404": description: No chart with the given id is found. + /contexts: + get: + summary: Get a list of all contexts available at the server + description: The contexts endpoint returns a summary about all contexts stored in the + netdata server. + parameters: + - name: options + in: query + description: Options that affect data generation. + required: false + allowEmptyValue: true + schema: + type: array + items: + type: string + enum: + - full + - all + - charts + - dimensions + - labels + - uuids + - queue + - flags + - deleted + - deepscan + default: + - full + - name: after + in: query + description: limit the results on context having data after this timestamp. + required: false + schema: + type: number + format: integer + - name: before + in: query + description: limit the results on context having data before this timestamp. + required: false + schema: + type: number + format: integer + - name: chart_label_key + in: query + description: a simple pattern matching charts label keys (use comma or pipe as separator) + required: false + allowEmptyValue: true + schema: + type: string + - name: chart_labels_filter + in: query + description: "a simple pattern matching charts label key and values (use colon for equality, comma or pipe + as separator)" + required: false + allowEmptyValue: true + schema: + type: string + - name: dimensions + in: query + description: a simple pattern matching dimensions (use comma or pipe as separator) + required: false + allowEmptyValue: true + schema: + type: string + responses: + "200": + description: An array of contexts. + content: + application/json: + schema: + $ref: "#/components/schemas/context_summary" + /context: + get: + summary: Get info about a specific context + description: The context endpoint returns detailed information about a given context. + parameters: + - name: context + in: query + description: The id of the context as returned by the /contexts call. + required: true + schema: + type: string + format: as returned by /contexts + default: system.cpu + - name: options + in: query + description: Options that affect data generation. + required: false + allowEmptyValue: true + schema: + type: array + items: + type: string + enum: + - full + - all + - charts + - dimensions + - labels + - uuids + - queue + - flags + - deleted + - deepscan + default: + - full + - name: after + in: query + description: limit the results on context having data after this timestamp. + required: false + schema: + type: number + format: integer + - name: before + in: query + description: limit the results on context having data before this timestamp. + required: false + schema: + type: number + format: integer + - name: chart_label_key + in: query + description: a simple pattern matching charts label keys (use comma or pipe as separator) + required: false + allowEmptyValue: true + schema: + type: string + - name: chart_labels_filter + in: query + description: "a simple pattern matching charts label key and values (use colon for equality, comma or pipe + as separator)" + required: false + allowEmptyValue: true + schema: + type: string + - name: dimensions + in: query + description: a simple pattern matching dimensions (use comma or pipe as separator) + required: false + allowEmptyValue: true + schema: + type: string + responses: + "200": + description: A javascript object with detailed information about the context. + content: + application/json: + schema: + $ref: "#/components/schemas/context" + "400": + description: No context id was supplied in the request. + "404": + description: No context with the given id is found. /alarm_variables: get: summary: List variables available to configure alarms for a chart @@ -461,7 +614,9 @@ paths: format: any text - name: label_color in: query - description: A color to be used for the background of the label side(left side) of the badge. One of predefined colors or specific color in hex `RGB` or `RRGGBB` format (without preceding `#` character). If value wrong or not given default color will be used. + description: "A color to be used for the background of the label side(left side) of the badge. + One of predefined colors or specific color in hex `RGB` or `RRGGBB` format (without preceding `#` character). + If value wrong or not given default color will be used." required: false allowEmptyValue: true schema: @@ -486,7 +641,8 @@ paths: description: "A color to be used for the background of the value *(right)* part of badge. You can set multiple using a pipe with a condition each, like this: `color<value|color:null` The following operators are - supported: >, <, >=, <=, =, :null (to check if no value exists). Each color can be specified in same manner as for `label_color` parameter. + supported: >, <, >=, <=, =, :null (to check if no value exists). + Each color can be specified in same manner as for `label_color` parameter. Currently only integers are supported as values." required: false allowEmptyValue: true @@ -495,7 +651,9 @@ paths: format: any text - name: text_color_lbl in: query - description: Font color for label *(left)* part of the badge. One of predefined colors or as HTML hexadecimal color without preceding `#` character. Formats allowed `RGB` or `RRGGBB`. If no or wrong value given default color will be used. + description: "Font color for label *(left)* part of the badge. One of predefined colors or as HTML hexadecimal + color without preceding `#` character. Formats allowed `RGB` or `RRGGBB`. If no or wrong value given default + color will be used." required: false allowEmptyValue: true schema: @@ -517,7 +675,9 @@ paths: format: ^([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - name: text_color_val in: query - description: Font color for value *(right)* part of the badge. One of predefined colors or as HTML hexadecimal color without preceding `#` character. Formats allowed `RGB` or `RRGGBB`. If no or wrong value given default color will be used. + description: "Font color for value *(right)* part of the badge. One of predefined colors or as HTML + hexadecimal color without preceding `#` character. Formats allowed `RGB` or `RRGGBB`. If no or wrong value + given default color will be used." required: false allowEmptyValue: true schema: @@ -565,7 +725,12 @@ paths: format: integer - name: fixed_width_lbl in: query - description: This parameter overrides auto-sizing of badge and creates it with fixed width. This parameter determines the size of the label's left side *(label/name)*. You must set this parameter together with `fixed_width_val` otherwise it will be ignored. You should set the label/value widths wide enough to provide space for all the possible values/contents of the badge you're requesting. In case the text cannot fit the space given it will be clipped. The `scale` parameter still applies on the values you give to `fixed_width_lbl` and `fixed_width_val`. + description: "This parameter overrides auto-sizing of badge and creates it with fixed width. + This parameter determines the size of the label's left side *(label/name)*. + You must set this parameter together with `fixed_width_val` otherwise it will be ignored. + You should set the label/value widths wide enough to provide space for all the possible values/contents of + the badge you're requesting. In case the text cannot fit the space given it will be clipped. + The `scale` parameter still applies on the values you give to `fixed_width_lbl` and `fixed_width_val`." required: false allowEmptyValue: false schema: @@ -573,7 +738,12 @@ paths: format: integer - name: fixed_width_val in: query - description: This parameter overrides auto-sizing of badge and creates it with fixed width. This parameter determines the size of the label's right side *(value)*. You must set this parameter together with `fixed_width_lbl` otherwise it will be ignored. You should set the label/value widths wide enough to provide space for all the possible values/contents of the badge you're requesting. In case the text cannot fit the space given it will be clipped. The `scale` parameter still applies on the values you give to `fixed_width_lbl` and `fixed_width_val`. + description: "This parameter overrides auto-sizing of badge and creates it with fixed width. This parameter + determines the size of the label's right side *(value)*. You must set this parameter together with + `fixed_width_lbl` otherwise it will be ignored. You should set the label/value widths wide enough to + provide space for all the possible values/contents of the badge you're requesting. In case the text cannot + fit the space given it will be clipped. The `scale` parameter still applies on the values you give to + `fixed_width_lbl` and `fixed_width_val`." required: false allowEmptyValue: false schema: @@ -754,12 +924,12 @@ paths: /alarms_values: get: summary: Get a list of active or raised alarms on the server - description: The alarms_values endpoint returns the list of all raised or enabled alarms on + description: "The alarms_values endpoint returns the list of all raised or enabled alarms on the netdata server. Called without any parameters, the raised alarms in - state WARNING or CRITICAL are returned. By passing "?all", all the + state WARNING or CRITICAL are returned. By passing '?all', all the enabled alarms are returned. This option output differs from `/alarms` in the number of variables delivered. This endpoint gives - to user `id`, `value`, `last_updated` time, and alarm `status`. + to user `id`, `value`, `last_updated` time, and alarm `status`." parameters: - name: all in: query @@ -855,16 +1025,16 @@ paths: memory. /manage/health: get: - summary: Accesses the health management API to control health checks and - notifications at runtime. - description: Available from Netdata v1.12 and above, protected via bearer + summary: "Accesses the health management API to control health checks and + notifications at runtime." + description: "Available from Netdata v1.12 and above, protected via bearer authorization. Especially useful for maintenance periods, the API allows you to disable health checks completely, silence alarm notifications, or Disable/Silence specific alarms that match selectors on alarm/template name, chart, context, host and family. For the simple disable/silence all scenarios, only the cmd parameter is required. The other parameters are used to define alarm selectors. For more information and examples, - refer to the netdata documentation. + refer to the netdata documentation." parameters: - name: cmd in: query @@ -918,8 +1088,8 @@ paths: /aclk: get: summary: Get information about current ACLK state - description: aclk endpoint returns detailed information - about current state of ACLK (Agent to Cloud communication). + description: "ACLK endpoint returns detailed information + about current state of ACLK (Agent to Cloud communication)." responses: "200": description: JSON object with ACLK information. @@ -929,15 +1099,15 @@ paths: $ref: "#/components/schemas/aclk_state" /metric_correlations: get: - summary: Analyze all the metrics to find their correlations - description: Given two time-windows (baseline, highlight), it goes + summary: "Analyze all the metrics to find their correlations" + description: "Given two time-windows (baseline, highlight), it goes through all the available metrics, querying both windows and tries to find how these two windows relate to each other. It supports multiple algorithms to do so. The result is a list of all metrics evaluated, weighted for 0.0 (the two windows are more different) to 1.0 (the two windows are similar). The algorithm adjusts automatically the baseline window to be - a power of two multiple of the highlighted (1, 2, 4, 8, etc). + a power of two multiple of the highlighted (1, 2, 4, 8, etc)." parameters: - name: baseline_after in: query @@ -1377,6 +1547,75 @@ components: type: number nullable: true description: Chart health red threshold. + context_summary: + type: object + properties: + hostname: + type: string + description: The hostname of the netdata server. + machine_guid: + type: string + description: The unique installation id of this netdata server. + node_id: + type: string + description: The unique node id of this netdata server at the hub. + example: nightly + claim_id: + type: string + description: The unique handshake id of this netdata server and the hub. + host_labels: + type: object + description: The host labels associated with this netdata server. + context: + type: object + description: "An object containing all the context objects available at the netdata server. + This is used as an indexed array. The key of each context object is the id of the context." + additionalProperties: + $ref: "#/components/schemas/context" + context: + type: object + properties: + version: + type: string + description: "The version of this context. + The number are not sequential, but bigger numbers depict a newer object." + hub_version: + type: string + description: The version of this |