const triggerPublish = (logger) => { const ctxImpl = new ExplicitContext(); const recorder = new BatchRecorder({logger}); const tracer = new Tracer({recorder, ctxImpl}); ctxImpl.scoped(() => { tracer.recordAnnotation(new Annotation.ServerRecv()); tracer.recordServiceName('my-service'); tracer.recordRpc('GET'); tracer.recordBinary('http.url', 'http://example.com'); tracer.recordBinary('http.response_code', '200'); tracer.recordAnnotation(new Annotation.ServerSend()); }); }
before((done) => { const backendApp = express(); // backend is intentionally not traced backendApp.get('/weather/wuhan', (req, res) => res.json(req.headers)); backendApp.get('/weather/bagCity', () => { throw new Error('service is dead'); }); backend = backendApp.listen(0, () => { const frontendApp = express(); const zipkinProxy = wrapProxy(proxy, {tracer: tracer.tracer(), remoteServiceName}); frontendApp.use(middleware({tracer: tracer.tracer()})); frontendApp.use(zipkinProxy(`127.0.0.1:${backend.address().port}`, { decorateRequest: (proxyReq) => { tracer.tracer().recordBinary('decorateRequest', ''); return proxyReq; }, intercept: (rsp, data, serverReq, res, callback) => { tracer.tracer().recordBinary('intercept', ''); callback(null, data); } })); frontend = frontendApp.listen(0, () => { baseURL = `http://127.0.0.1:${frontend.address().port}`; done(); }); }); });
const triggerLargePublish = (logger) => { const ctxImpl = new ExplicitContext(); const recorder = new BatchRecorder({logger}); const tracer = new Tracer({recorder, ctxImpl}); ctxImpl.scoped(() => { tracer.recordAnnotation(new Annotation.ServerRecv()); tracer.recordServiceName('my-service'); tracer.recordRpc('GET'); tracer.recordBinary('http.url', 'http://example.com'); tracer.recordBinary('http.response_code', '200'); for (let i = 0; i < 20; i += 1) { tracer.recordAnnotation(new Annotation.Message(`Message ${i + 1}`)); } tracer.recordAnnotation(new Annotation.ServerSend()); }); }
const triggerPublish = (logger) => { const ctxImpl = new ExplicitContext(); const recorder = new BatchRecorder({logger}); const tracer = new Tracer({recorder, ctxImpl}); ctxImpl.scoped(() => { tracer.recordAnnotation(new Annotation.ServerRecv()); tracer.recordServiceName('my-service'); tracer.recordRpc('GET'); tracer.recordBinary('http.url', 'http://example.com'); tracer.recordBinary('http.response_code', '200'); tracer.recordAnnotation(new Annotation.ServerSend()); }); }
const triggerPublish = (logger) => { const ctxImpl = new ExplicitContext(); const recorder = new BatchRecorder({logger}); const tracer = new Tracer({recorder, ctxImpl}); ctxImpl.scoped(() => { tracer.recordAnnotation(new Annotation.ServerRecv()); tracer.recordServiceName('my-service'); tracer.recordRpc('GET'); tracer.recordBinary('http.url', 'http://example.com'); tracer.recordBinary('http.response_code', '200'); tracer.recordAnnotation(new Annotation.ServerSend()); }); }
const triggerPublish = (logger) => { const ctxImpl = new ExplicitContext(); const recorder = new BatchRecorder({logger}); const tracer = new Tracer({recorder, ctxImpl}); ctxImpl.scoped(() => { tracer.recordAnnotation(new Annotation.ServerRecv()); tracer.recordServiceName('my-service'); tracer.recordRpc('GET'); tracer.recordBinary('http.url', 'http://example.com'); tracer.recordBinary('http.response_code', '200'); tracer.recordAnnotation(new Annotation.ServerSend()); }); }
const triggerLargePublish = (logger) => { const ctxImpl = new ExplicitContext(); const recorder = new BatchRecorder({logger}); const tracer = new Tracer({recorder, ctxImpl}); ctxImpl.scoped(() => { tracer.recordAnnotation(new Annotation.ServerRecv()); tracer.recordServiceName('my-service'); tracer.recordRpc('GET'); tracer.recordBinary('http.url', 'http://example.com'); tracer.recordBinary('http.response_code', '200'); for (let i = 0; i < 5000; i += 1) { tracer.recordAnnotation(new Annotation.Message(`Message ${i + 1}`)); } tracer.recordAnnotation(new Annotation.ServerSend()); }); }
const triggerLargePublish = (logger) => { const ctxImpl = new ExplicitContext(); const recorder = new BatchRecorder({logger}); const tracer = new Tracer({recorder, ctxImpl}); ctxImpl.scoped(() => { tracer.recordAnnotation(new Annotation.ServerRecv()); tracer.recordServiceName('my-service'); tracer.recordRpc('GET'); tracer.recordBinary('http.url', 'http://example.com'); tracer.recordBinary('http.response_code', '200'); for (let i = 0; i < 5000; i += 1) { tracer.recordAnnotation(new Annotation.Message(`Message ${i + 1}`)); } tracer.recordAnnotation(new Annotation.ServerSend()); }); }
const triggerLargePublish = (logger) => { const ctxImpl = new ExplicitContext(); const recorder = new BatchRecorder({logger}); const tracer = new Tracer({recorder, ctxImpl}); ctxImpl.scoped(() => { tracer.recordAnnotation(new Annotation.ServerRecv()); tracer.recordServiceName('my-service'); tracer.recordRpc('GET'); tracer.recordBinary('http.url', 'http://example.com'); tracer.recordBinary('http.response_code', '200'); for (let i = 0; i < 20; i += 1) { tracer.recordAnnotation(new Annotation.Message(`Message ${i + 1}`)); } tracer.recordAnnotation(new Annotation.ServerSend()); }); }
before((done) => { const backendApp = express(); // backend is intentionally not traced backendApp.get('/weather/wuhan', (req, res) => res.json(req.headers)); backendApp.get('/weather/bagCity', () => { throw new Error('service is dead'); }); backend = backendApp.listen(0, () => { const frontendApp = express(); const zipkinProxy = wrapProxy(proxy, {tracer: tracer.tracer(), remoteServiceName}); frontendApp.use(middleware({tracer: tracer.tracer()})); frontendApp.use(zipkinProxy(`127.0.0.1:${backend.address().port}`, { decorateRequest: (proxyReq) => { tracer.tracer().recordBinary('decorateRequest', ''); return proxyReq; }, intercept: (rsp, data, serverReq, res, callback) => { tracer.tracer().recordBinary('intercept', ''); callback(null, data); } })); frontend = frontendApp.listen(0, () => { baseURL = `http://127.0.0.1:${frontend.address().port}`; done(); }); }); });