metadata.yaml 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. # yamllint disable rule:line-length
  2. ---
  3. id: 'export-aws-kinesis'
  4. meta:
  5. name: 'AWS Kinesis'
  6. link: 'https://aws.amazon.com/kinesis/'
  7. categories:
  8. - export
  9. icon_filename: 'aws-kinesis.svg'
  10. keywords:
  11. - exporter
  12. - AWS
  13. - Kinesis
  14. overview:
  15. exporter_description: |
  16. Export metrics to AWS Kinesis Data Streams
  17. exporter_limitations: ''
  18. setup:
  19. prerequisites:
  20. list:
  21. - title: ''
  22. description: |
  23. - First [install](https://docs.aws.amazon.com/en_us/sdk-for-cpp/v1/developer-guide/setup.html) AWS SDK for C++
  24. - Here are the instructions when building from source, to ensure 3rd party dependencies are installed:
  25. ```bash
  26. git clone --recursive https://github.com/aws/aws-sdk-cpp.git
  27. cd aws-sdk-cpp/
  28. git submodule update --init --recursive
  29. mkdir BUILT
  30. cd BUILT
  31. cmake -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_ONLY=kinesis ..
  32. make
  33. make install
  34. ```
  35. - `libcrypto`, `libssl`, and `libcurl` are also required to compile Netdata with Kinesis support enabled.
  36. - Next, Netdata should be re-installed from the source. The installer will detect that the required libraries are now available.
  37. configuration:
  38. file:
  39. name: 'exporting.conf'
  40. options:
  41. description: |
  42. Netdata automatically computes a partition key for every record with the purpose to distribute records across available shards evenly.
  43. The following options can be defined for this exporter.
  44. folding:
  45. title: 'Config options'
  46. enabled: true
  47. list:
  48. - name: 'enabled'
  49. default_value: 'no'
  50. description: 'Enables or disables an exporting connector instance (yes|no).'
  51. required: true
  52. - name: 'destination'
  53. default_value: 'no'
  54. description: 'Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics.'
  55. required: true
  56. detailed_description: |
  57. The format of each item in this list, is: [PROTOCOL:]IP[:PORT].
  58. - PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.
  59. - IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.
  60. - PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.
  61. Example IPv4:
  62. ```yaml
  63. destination = 10.11.14.2:4242 10.11.14.3:4242 10.11.14.4:4242
  64. ```
  65. Example IPv6 and IPv4 together:
  66. ```yaml
  67. destination = [ffff:...:0001]:2003 10.11.12.1:2003
  68. ```
  69. When multiple servers are defined, Netdata will try the next one when the previous one fails.
  70. - name: 'username'
  71. default_value: 'my_username'
  72. description: 'Username for HTTP authentication'
  73. required: false
  74. - name: 'password'
  75. default_value: 'my_password'
  76. description: 'Password for HTTP authentication'
  77. required: false
  78. - name: 'data source'
  79. default_value: ''
  80. description: 'Selects the kind of data that will be sent to the external database. (as collected|average|sum)'
  81. required: false
  82. - name: 'hostname'
  83. default_value: '[global].hostname'
  84. description: 'The hostname to be used for sending data to the external database server.'
  85. required: false
  86. - name: 'prefix'
  87. default_value: 'Netdata'
  88. description: 'The prefix to add to all metrics.'
  89. required: false
  90. - name: 'update every'
  91. default_value: '10'
  92. description: |
  93. Frequency of sending sending data to the external database, in seconds.
  94. required: false
  95. detailed_description: |
  96. Netdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers
  97. send data to the same database. This randomness does not affect the quality of the data, only the time they are sent.
  98. - name: 'buffer on failures'
  99. default_value: '10'
  100. description: |
  101. The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.
  102. required: false
  103. detailed_description: |
  104. If the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).
  105. - name: 'timeout ms'
  106. default_value: '2 * update_every * 1000'
  107. description: 'The timeout in milliseconds to wait for the external database server to process the data.'
  108. required: false
  109. - name: 'send hosts matching'
  110. default_value: 'localhost *'
  111. description: |
  112. Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).
  113. required: false
  114. detailed_description: |
  115. Includes one or more space separated patterns, using * as wildcard (any number of times within each pattern).
  116. The patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to
  117. filter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.
  118. A pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,
  119. use `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).
  120. - name: 'send charts matching'
  121. default_value: '*'
  122. description: |
  123. One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.
  124. required: false
  125. detailed_description: |
  126. A pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,
  127. use !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,
  128. positive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter
  129. has a higher priority than the configuration option.
  130. - name: 'send names instead of ids'
  131. default_value: ''
  132. description: 'Controls the metric names Netdata should send to the external database (yes|no).'
  133. required: false
  134. detailed_description: |
  135. Netdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names
  136. are human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are
  137. different : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.
  138. - name: 'send configured labels'
  139. default_value: ''
  140. description: 'Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no).'
  141. required: false
  142. - name: 'send automatic labels'
  143. default_value: ''
  144. description: 'Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no).'
  145. required: false
  146. examples:
  147. folding:
  148. enabled: true
  149. title: ''
  150. list:
  151. - name: 'Example configuration'
  152. folding:
  153. enabled: false
  154. description: 'Basic configuration'
  155. config: |
  156. [kinesis:my_instance]
  157. enabled = yes
  158. destination = us-east-1
  159. - name: 'Configuration with AWS credentials'
  160. folding:
  161. enabled: false
  162. description: 'Add `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.'
  163. config: |
  164. [kinesis:my_instance]
  165. enabled = yes
  166. destination = us-east-1
  167. # AWS credentials
  168. aws_access_key_id = your_access_key_id
  169. aws_secret_access_key = your_secret_access_key
  170. # destination stream
  171. stream name = your_stream_name