#include "stats-metrics.h"
#include "stats-service.h"
#include "client-http.h"
+#include "settings.h"
struct stats_http_client;
* Server
*/
-void client_http_init(const struct stats_settings *set, struct event *event)
+void client_http_init(struct event *parent_event)
{
- struct http_server_settings http_set;
-
- http_server_settings_init(null_pool, &http_set);
- http_set.rawlog_dir = set->stats_http_rawlog_dir,
-
+ const char *error;
i_array_init(&stats_http_resources, 8);
- stats_http_server = http_server_init(&http_set, event);
+ struct event *event = event_create(parent_event);
+ event_set_ptr(parent_event, SETTINGS_EVENT_FILTER_NAME, STATS_SERVER_FILTER);
+ if (http_server_init_auto(event, &stats_http_server, &error) < 0)
+ i_fatal("http_server_init() failed: %s", error);
stats_http_resource_add("/", NULL,
stats_http_resource_root_request, NULL);
+ event_unref(&event);
}
void client_http_deinit(void)
typeof(context), struct http_server_request *req, \
const char *sub_path))))
-void client_http_init(const struct stats_settings *set, struct event *event);
+void client_http_init(struct event *event);
void client_http_deinit(void);
#endif
stats_event_categories_init();
client_readers_init();
client_writers_init();
- client_http_init(stats_settings,
- master_service_get_event(master_service));
+ client_http_init(master_service_get_event(master_service));
stats_services_init();
}
SETTING_DEFINE_STRUCT_##type(#name, name, struct stats_settings)
static const struct setting_define stats_setting_defines[] = {
- DEF(STR, stats_http_rawlog_dir),
-
+ { .type = SET_FILTER_NAME, .key = STATS_SERVER_FILTER },
{ .type = SET_FILTER_ARRAY, .key = "metric",
.offset = offsetof(struct stats_settings, metrics),
.filter_array_field_name = "metric_name",
};
const struct stats_settings stats_default_settings = {
- .stats_http_rawlog_dir = "",
-
.metrics = ARRAY_INIT,
.exporters = ARRAY_INIT,
};
"name hostname timestamps categories fields"
/* <settings checks> */
+#define STATS_SERVER_FILTER "stats_server"
+
/*
* We allow a selection of a timestamp format.
*
struct stats_settings {
pool_t pool;
- const char *stats_http_rawlog_dir;
ARRAY_TYPE(const_string) exporters;
ARRAY_TYPE(const_string) metrics;