metadata.yaml 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. plugin_name: python.d.plugin
  2. modules:
  3. - meta:
  4. plugin_name: python.d.plugin
  5. module_name: zscores
  6. monitored_instance:
  7. name: python.d zscores
  8. link: https://en.wikipedia.org/wiki/Standard_score
  9. categories:
  10. - data-collection.other
  11. icon_filename: ""
  12. related_resources:
  13. integrations:
  14. list: []
  15. info_provided_to_referring_integrations:
  16. description: ""
  17. keywords:
  18. - zscore
  19. - z-score
  20. - standard score
  21. - standard deviation
  22. - anomaly detection
  23. - statistical anomaly detection
  24. most_popular: false
  25. overview:
  26. data_collection:
  27. metrics_description: |
  28. By using smoothed, rolling [Z-Scores](https://en.wikipedia.org/wiki/Standard_score) for selected metrics or charts you can narrow down your focus and shorten root cause analysis.
  29. method_description: |
  30. This collector uses the [Netdata rest api](https://github.com/netdata/netdata/blob/master/web/api/README.md) to get the `mean` and `stddev`
  31. for each dimension on specified charts over a time range (defined by `train_secs` and `offset_secs`).
  32. For each dimension it will calculate a Z-Score as `z = (x - mean) / stddev` (clipped at `z_clip`). Scores are then smoothed over
  33. time (`z_smooth_n`) and, if `mode: 'per_chart'`, aggregated across dimensions to a smoothed, rolling chart level Z-Score at each time step.
  34. supported_platforms:
  35. include: []
  36. exclude: []
  37. multi_instance: true
  38. additional_permissions:
  39. description: ""
  40. default_behavior:
  41. auto_detection:
  42. description: ""
  43. limits:
  44. description: ""
  45. performance_impact:
  46. description: ""
  47. setup:
  48. prerequisites:
  49. list:
  50. - title: Python Requirements
  51. description: |
  52. This collector will only work with Python 3 and requires the below packages be installed.
  53. ```bash
  54. # become netdata user
  55. sudo su -s /bin/bash netdata
  56. # install required packages
  57. pip3 install numpy pandas requests netdata-pandas==0.0.38
  58. ```
  59. configuration:
  60. file:
  61. name: python.d/zscores.conf
  62. description: ""
  63. options:
  64. description: |
  65. There are 2 sections:
  66. * Global variables
  67. * One or more JOBS that can define multiple different instances to monitor.
  68. The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
  69. Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
  70. Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
  71. folding:
  72. title: "Config options"
  73. enabled: true
  74. list:
  75. - name: charts_regex
  76. description: what charts to pull data for - A regex like `system\..*|` or `system\..*|apps.cpu|apps.mem` etc.
  77. default_value: "system\\..*"
  78. required: true
  79. - name: train_secs
  80. description: length of time (in seconds) to base calculations off for mean and stddev.
  81. default_value: 14400
  82. required: true
  83. - name: offset_secs
  84. description: offset (in seconds) preceding latest data to ignore when calculating mean and stddev.
  85. default_value: 300
  86. required: true
  87. - name: train_every_n
  88. description: recalculate the mean and stddev every n steps of the collector.
  89. default_value: 900
  90. required: true
  91. - name: z_smooth_n
  92. description: smooth the z score (to reduce sensitivity to spikes) by averaging it over last n values.
  93. default_value: 15
  94. required: true
  95. - name: z_clip
  96. description: cap absolute value of zscore (before smoothing) for better stability.
  97. default_value: 10
  98. required: true
  99. - name: z_abs
  100. description: "set z_abs: 'true' to make all zscores be absolute values only."
  101. default_value: "true"
  102. required: true
  103. - name: burn_in
  104. description: burn in period in which to initially calculate mean and stddev on every step.
  105. default_value: 2
  106. required: true
  107. - name: mode
  108. description: mode can be to get a zscore 'per_dim' or 'per_chart'.
  109. default_value: per_chart
  110. required: true
  111. - name: per_chart_agg
  112. description: per_chart_agg is how you aggregate from dimension to chart when mode='per_chart'.
  113. default_value: mean
  114. required: true
  115. - name: update_every
  116. description: Sets the default data collection frequency.
  117. default_value: 5
  118. required: false
  119. - name: priority
  120. description: Controls the order of charts at the netdata dashboard.
  121. default_value: 60000
  122. required: false
  123. - name: autodetection_retry
  124. description: Sets the job re-check interval in seconds.
  125. default_value: 0
  126. required: false
  127. - name: penalty
  128. description: Indicates whether to apply penalty to update_every in case of failures.
  129. default_value: yes
  130. required: false
  131. examples:
  132. folding:
  133. enabled: true
  134. title: "Config"
  135. list:
  136. - name: Default
  137. description: Default configuration.
  138. folding:
  139. enabled: false
  140. config: |
  141. local:
  142. name: 'local'
  143. host: '127.0.0.1:19999'
  144. charts_regex: 'system\..*'
  145. charts_to_exclude: 'system.uptime'
  146. train_secs: 14400
  147. offset_secs: 300
  148. train_every_n: 900
  149. z_smooth_n: 15
  150. z_clip: 10
  151. z_abs: 'true'
  152. burn_in: 2
  153. mode: 'per_chart'
  154. per_chart_agg: 'mean'
  155. troubleshooting:
  156. problems:
  157. list: []
  158. alerts: []
  159. metrics:
  160. folding:
  161. title: Metrics
  162. enabled: false
  163. description: ""
  164. availability: []
  165. scopes:
  166. - name: global
  167. description: "These metrics refer to the entire monitored application."
  168. labels: []
  169. metrics:
  170. - name: zscores.z
  171. description: Z Score
  172. unit: "z"
  173. chart_type: line
  174. dimensions:
  175. - name: a dimension per chart or dimension
  176. - name: zscores.3stddev
  177. description: Z Score >3
  178. unit: "count"
  179. chart_type: stacked
  180. dimensions:
  181. - name: a dimension per chart or dimension