diff --git a/examples/koa/package.json b/examples/koa/package.json index 0e45a55db0..3c7a9d31ca 100644 --- a/examples/koa/package.json +++ b/examples/koa/package.json @@ -8,7 +8,9 @@ "zipkin:server": "cross-env EXPORTER=zipkin node ./server.js", "zipkin:client": "cross-env EXPORTER=zipkin node ./client.js", "jaeger:server": "cross-env EXPORTER=jaeger node ./server.js", - "jaeger:client": "cross-env EXPORTER=jaeger node ./client.js" + "jaeger:client": "cross-env EXPORTER=jaeger node ./client.js", + "lint": "eslint . --ext .js", + "lint:fix": "eslint . --ext .js --fix" }, "repository": { "type": "git", @@ -41,6 +43,7 @@ }, "homepage": "https://github.com/open-telemetry/opentelemetry-js-contrib#readme", "devDependencies": { - "cross-env": "^6.0.0" + "cross-env": "^6.0.0", + "eslint": "^7.4.0" } } diff --git a/examples/koa/server.js b/examples/koa/server.js index dba4011894..1bd408ef3f 100644 --- a/examples/koa/server.js +++ b/examples/koa/server.js @@ -3,66 +3,64 @@ // eslint-disable-next-line const tracer = require('./tracer')('example-koa-server'); - // Adding Koa router (if desired) const router = require('@koa/router')(); -const koa = require('koa'); +const Koa = require('koa'); // Setup koa -const app = new koa(); +const app = new Koa(); const PORT = 8081; // route definitions router.get('/run_test', runTest) - .get('/post/new', addPost) - .get('/post/:id', showNewPost); - + .get('/post/new', addPost) + .get('/post/:id', showNewPost); -async function setUp () { - app.use(no_op); - app.use(router.routes()); +async function setUp() { + app.use(no_op); + app.use(router.routes()); } /** * Router functions: list, add, or show posts */ -const posts = ["post 0", "post 1", "post 2"]; +const posts = ['post 0', 'post 1', 'post 2']; -async function addPost(ctx, next) { - posts.push("post " + posts.length); - console.log("addPost"); - const currentSpan = tracer.getCurrentSpan(); - currentSpan.addEvent("Added post"); - currentSpan.setAttribute("Date", new Date); - ctx.body = "Added post: " + posts[posts.length-1]; - const viewNewPost = ctx.redirect(`/post/3`); +async function addPost(ctx) { + posts.push(`post ${posts.length}`); + console.log('addPost'); + const currentSpan = tracer.getCurrentSpan(); + currentSpan.addEvent('Added post'); + currentSpan.setAttribute('Date', new Date()); + ctx.body = `Added post: ${posts[posts.length - 1]}`; + ctx.redirect('/post/3'); } -async function showNewPost(ctx, next) { - console.log("showNewPost"); - const id = ctx.params.id; - const post = posts[id]; - if (!post) ctx.throw(404, 'Invalid post id'); - ctx.body = post; +async function showNewPost(ctx) { + console.log('showNewPost'); + const { id } = ctx.params; + const post = posts[id]; + if (!post) ctx.throw(404, 'Invalid post id'); + ctx.body = post; } -async function runTest (ctx, next) { - console.log("runTest"); - const currentSpan = tracer.getCurrentSpan(); - const { traceId } = currentSpan.context(); - console.log(`traceid: ${traceId}`); - console.log(`Jaeger URL: http://localhost:16686/trace/${traceId}`); - console.log(`Zipkin URL: http://localhost:9411/zipkin/traces/${traceId}`); - ctx.body = "All posts: " + posts; - const addNewPost = await ctx.redirect(`/post/new`); +async function runTest(ctx) { + console.log('runTest'); + const currentSpan = tracer.getCurrentSpan(); + const { traceId } = currentSpan.context(); + console.log(`traceid: ${traceId}`); + console.log(`Jaeger URL: http://localhost:16686/trace/${traceId}`); + console.log(`Zipkin URL: http://localhost:9411/zipkin/traces/${traceId}`); + ctx.body = `All posts: ${posts}`; + ctx.redirect('/post/new'); } -function no_op (ctx, next) { - console.log("Sample basic koa middleware"); - next(); +function no_op(ctx, next) { + console.log('Sample basic koa middleware'); + next(); } setUp().then(() => { - app.listen(PORT); - console.log(`Listening on http://localhost:${PORT}`); + app.listen(PORT); + console.log(`Listening on http://localhost:${PORT}`); }); diff --git a/examples/koa/tracer.js b/examples/koa/tracer.js index a5f00994be..581c201457 100644 --- a/examples/koa/tracer.js +++ b/examples/koa/tracer.js @@ -6,13 +6,15 @@ const { SimpleSpanProcessor } = require('@opentelemetry/tracing'); const { JaegerExporter } = require('@opentelemetry/exporter-jaeger'); const { ZipkinExporter } = require('@opentelemetry/exporter-zipkin'); +const EXPORTER = process.env.EXPORTER || ''; + module.exports = (serviceName) => { const provider = new NodeTracerProvider({ plugins: { koa: { enabled: true, - path: "@opentelemetry/plugin-koa", - enhancedDatabaseReporting: true + path: '@opentelemetry/plugin-koa', + enhancedDatabaseReporting: true, }, http: { enabled: true, @@ -21,12 +23,13 @@ module.exports = (serviceName) => { }, }); - -if (process.env.EXPORTER == 'jaeger') { - provider.addSpanProcessor(new SimpleSpanProcessor(new JaegerExporter({serviceName}))); -} else { - provider.addSpanProcessor(new SimpleSpanProcessor(new ZipkinExporter({serviceName}))); -} + let exporter; + if (EXPORTER === 'jaeger') { + exporter = new JaegerExporter({ serviceName }); + } else { + exporter = new ZipkinExporter({ serviceName }); + } + provider.addSpanProcessor(new SimpleSpanProcessor(exporter)); // Initialize the OpenTelemetry APIs to use the NodeTracerProvider bindings provider.register(); diff --git a/plugins/node/opentelemetry-plugin-koa/.eslintignore b/plugins/node/opentelemetry-plugin-koa/.eslintignore index c795b054e5..378eac25d3 100644 --- a/plugins/node/opentelemetry-plugin-koa/.eslintignore +++ b/plugins/node/opentelemetry-plugin-koa/.eslintignore @@ -1 +1 @@ -build \ No newline at end of file +build