static int zipkin_fq_driver_init(mtev_dso_generic_t *img) { debugls = mtev_log_stream_find("debug/zipkin_fq"); fq_client_init(&zc_client, 0, debug_logger); fq_client_creds(zc_client, zc_host, zc_port, zc_user, zc_pass); fq_client_heartbeat(zc_client, zc_heartbeat); fq_client_set_backlog(zc_client, zc_backlog, 100); fq_client_set_nonblock(zc_client, true); fq_client_connect(zc_client); zipkin_publish_hook_register("fq", zipkin_fq_publish, NULL); return 0; }
static iep_thread_driver_t *noit_fq_allocate(noit_conf_section_t conf) { char *hostname, *cp, *brk; int i; #define GETCONFSTR(w) noit_conf_get_stringbuf(conf, #w, global_fq_ctx.w, sizeof(global_fq_ctx.w)) snprintf(global_fq_ctx.exchange, sizeof(global_fq_ctx.exchange), "%s", "noit.firehose"); GETCONFSTR(exchange); if(!GETCONFSTR(routingkey)) snprintf(global_fq_ctx.routingkey, sizeof(global_fq_ctx.routingkey), "%s", "check"); snprintf(global_fq_ctx.username, sizeof(global_fq_ctx.username), "%s", "guest"); GETCONFSTR(username); snprintf(global_fq_ctx.password, sizeof(global_fq_ctx.password), "%s", "guest"); GETCONFSTR(password); if(!noit_conf_get_int(conf, "heartbeat", &global_fq_ctx.heartbeat)) global_fq_ctx.heartbeat = 2000; if(!noit_conf_get_int(conf, "backlog", &global_fq_ctx.backlog)) global_fq_ctx.backlog = 2000; if(!noit_conf_get_int(conf, "port", &global_fq_ctx.port)) global_fq_ctx.port = 8765; (void)noit_conf_get_string(conf, "hostname", &hostname); if(!hostname) hostname = strdup("127.0.0.1"); for(cp = hostname; cp; cp = strchr(cp+1, ',')) global_fq_ctx.nhosts++; if(global_fq_ctx.nhosts > MAX_HOSTS) global_fq_ctx.nhosts = MAX_HOSTS; for(i = 0, cp = strtok_r(hostname, ",", &brk); cp; cp = strtok_r(NULL, ",", &brk), i++) { char *pcp; fq_client *c = &global_fq_ctx.client[i]; global_fq_ctx.ports[i] = global_fq_ctx.port; strlcpy(global_fq_ctx.hostname[i], cp, sizeof(global_fq_ctx.hostname[i])); pcp = strchr(global_fq_ctx.hostname[i], ':'); if(pcp) { *pcp++ = '\0'; global_fq_ctx.ports[i] = atoi(pcp); } fq_client_init(c, 0, fq_logger); fq_client_creds(*c, global_fq_ctx.hostname[i], global_fq_ctx.ports[i], global_fq_ctx.username, global_fq_ctx.password); fq_client_heartbeat(*c, global_fq_ctx.heartbeat); fq_client_set_nonblock(*c, 1); fq_client_set_backlog(*c, global_fq_ctx.backlog, 0); fq_client_connect(*c); } free(hostname); return (iep_thread_driver_t *)&global_fq_ctx; }