rrd2json.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. // SPDX-License-Identifier: GPL-3.0-or-later
  2. #ifndef NETDATA_RRD2JSON_H
  3. #define NETDATA_RRD2JSON_H 1
  4. #include "web/api/web_api_v1.h"
  5. #include "web/api/exporters/allmetrics.h"
  6. #include "web/api/queries/rrdr.h"
  7. #include "web/api/formatters/csv/csv.h"
  8. #include "web/api/formatters/ssv/ssv.h"
  9. #include "web/api/formatters/json/json.h"
  10. #include "web/api/formatters/value/value.h"
  11. #include "web/api/formatters/rrdset2json.h"
  12. #include "web/api/formatters/charts2json.h"
  13. #include "web/api/formatters/json_wrapper.h"
  14. #include "web/server/web_client.h"
  15. #define HOSTNAME_MAX 1024
  16. #define API_RELATIVE_TIME_MAX (3 * 365 * 86400)
  17. // type of JSON generations
  18. #define DATASOURCE_INVALID (-1)
  19. #define DATASOURCE_JSON 0
  20. #define DATASOURCE_DATATABLE_JSON 1
  21. #define DATASOURCE_DATATABLE_JSONP 2
  22. #define DATASOURCE_SSV 3
  23. #define DATASOURCE_CSV 4
  24. #define DATASOURCE_JSONP 5
  25. #define DATASOURCE_TSV 6
  26. #define DATASOURCE_HTML 7
  27. #define DATASOURCE_JS_ARRAY 8
  28. #define DATASOURCE_SSV_COMMA 9
  29. #define DATASOURCE_CSV_JSON_ARRAY 10
  30. #define DATASOURCE_CSV_MARKDOWN 11
  31. #define DATASOURCE_FORMAT_JSON "json"
  32. #define DATASOURCE_FORMAT_DATATABLE_JSON "datatable"
  33. #define DATASOURCE_FORMAT_DATATABLE_JSONP "datasource"
  34. #define DATASOURCE_FORMAT_JSONP "jsonp"
  35. #define DATASOURCE_FORMAT_SSV "ssv"
  36. #define DATASOURCE_FORMAT_CSV "csv"
  37. #define DATASOURCE_FORMAT_TSV "tsv"
  38. #define DATASOURCE_FORMAT_HTML "html"
  39. #define DATASOURCE_FORMAT_JS_ARRAY "array"
  40. #define DATASOURCE_FORMAT_SSV_COMMA "ssvcomma"
  41. #define DATASOURCE_FORMAT_CSV_JSON_ARRAY "csvjsonarray"
  42. #define DATASOURCE_FORMAT_CSV_MARKDOWN "markdown"
  43. extern void rrd_stats_api_v1_chart(RRDSET *st, BUFFER *wb);
  44. extern void rrdr_buffer_print_format(BUFFER *wb, uint32_t format);
  45. typedef struct context_param {
  46. RRDDIM *rd;
  47. time_t first_entry_t;
  48. time_t last_entry_t;
  49. } CONTEXT_PARAM;
  50. extern int rrdset2anything_api_v1(
  51. RRDSET *st
  52. , BUFFER *wb
  53. , BUFFER *dimensions
  54. , uint32_t format
  55. , long points
  56. , long long after
  57. , long long before
  58. , int group_method
  59. , long group_time
  60. , uint32_t options
  61. , time_t *latest_timestamp
  62. , struct context_param *context_param_list
  63. );
  64. extern int rrdset2value_api_v1(
  65. RRDSET *st
  66. , BUFFER *wb
  67. , calculated_number *n
  68. , const char *dimensions
  69. , long points
  70. , long long after
  71. , long long before
  72. , int group_method
  73. , long group_time
  74. , uint32_t options
  75. , time_t *db_after
  76. , time_t *db_before
  77. , int *value_is_null
  78. );
  79. extern void build_context_param_list(struct context_param **param_list, RRDSET *st);
  80. extern void free_context_param_list(struct context_param **param_list);
  81. #endif /* NETDATA_RRD2JSON_H */