diff options
author | Heikki Kallasjoki <fis@zem.fi> | 2018-12-23 00:06:59 +0000 |
---|---|---|
committer | Heikki Kallasjoki <fis+github@zem.fi> | 2018-12-23 21:50:27 +0000 |
commit | 6d65b7fb9242eb827d5d4036f0fa8816430eb364 (patch) | |
tree | cfc35c119a14ecb89d7d35980fe7191cc6b3230f /scrape.c | |
parent | 5c50e58b1af19e4cd54e272e143091b80e127d8c (diff) | |
download | nano-exporter-6d65b7fb9242eb827d5d4036f0fa8816430eb364.tar.gz nano-exporter-6d65b7fb9242eb827d5d4036f0fa8816430eb364.tar.xz nano-exporter-6d65b7fb9242eb827d5d4036f0fa8816430eb364.zip |
Move the collector loop into scrape server code.
This paves the way for supporting parallel scrapes (#19); the implementation for that is going to need to track the state of the current scrape.
Diffstat (limited to 'scrape.c')
-rw-r--r-- | scrape.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/scrape.c b/scrape.c index c86e853..f632e4e 100644 --- a/scrape.c +++ b/scrape.c @@ -110,7 +110,7 @@ scrape_server *scrape_listen(const char *port) { return srv; } -void scrape_serve(scrape_server *srv, scrape_handler *handler, void *handler_ctx) { +void scrape_serve(scrape_server *srv, unsigned ncoll, const struct collector *coll[], void *coll_ctx[]) { struct scrape_req req; req.buf = bbuf_alloc(BUF_INITIAL, BUF_MAX); @@ -137,8 +137,10 @@ void scrape_serve(scrape_server *srv, scrape_handler *handler, void *handler_ctx continue; } - if (handle_http(&req)) - handler(&req, handler_ctx); + if (handle_http(&req)) { + for (unsigned c = 0; c < ncoll; c++) + coll[c]->collect(&req, coll_ctx[c]); + } close(req.socket); } } |