Skip to content

Instantly share code, notes, and snippets.

@steren
Created June 16, 2018 06:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save steren/5143d224cb64291118ecbde255eadab6 to your computer and use it in GitHub Desktop.
Save steren/5143d224cb64291118ecbde255eadab6 to your computer and use it in GitHub Desktop.
Extracting trace from header and sending to Logs for correlation
const express = require('express');
const app = express();
const bunyan = require('bunyan');
const {LoggingBunyan} = require('@google-cloud/logging-bunyan');
const loggingBunyan = new LoggingBunyan();
const project = 'steren-test';
const logger = bunyan.createLogger({
name: 'app',
level: 'info',
streams: [
{stream: process.stdout},
loggingBunyan.stream(),
],
});
app.get('/', (req, res) => {
const traceHeader = req && req.headers ? req.headers['x-cloud-trace-context'] || '' : '';
const traceId = traceHeader ? traceHeader.split('/')[0] : '';
logger.info(`traceid: ${traceId}`);
logger.info({
'logging.googleapis.com/trace': `projects/${project}/traces/${traceId}`
}, 'good trace?');
res.send('Bunyan');
});
const server = app.listen(process.env.PORT || 8080, () => {
const host = server.address().address;
const port = server.address().port;
console.log(`Example app listening at http://${host}:${port}`);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment