rrd2json.h 3.0 KB

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