Skip to content

Commit

Permalink
Adicionando métricas no webapp
Browse files Browse the repository at this point in the history
  • Loading branch information
fabricioveronez committed Jun 28, 2023
1 parent 11ed881 commit 13c1d51
Show file tree
Hide file tree
Showing 3 changed files with 197 additions and 3 deletions.
154 changes: 153 additions & 1 deletion webapp/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions webapp/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"dev": "node server.js",
"build": "next build",
"start": "next start",
"start": "NODE_ENV=production node server.js",
"lint": "next lint",
"grpc:compile": "rm -rf ./src/grpc/rpc && proto-loader-gen-types --longs=String --enums=String --defaults --oneofs --grpcLib=@grpc/grpc-js --outDir=./src/grpc/rpc ./proto/*.proto"
},
"dependencies": {
"@autometrics/autometrics": "^0.5.0",
"@grpc/grpc-js": "^1.8.14",
"@grpc/proto-loader": "^0.7.6",
"@prisma/client": "4.13.0",
Expand Down
41 changes: 41 additions & 0 deletions webapp/server.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
const { createServer } = require('http')
const { parse } = require('url')
const next = require('next')
const path = require('path')

const dev = process.env.NODE_ENV !== 'production'
const hostname = 'localhost'
const port = 3000
// when using middleware `hostname` and `port` must be provided below
const app = next({ dev, hostname, port })
const handle = app.getRequestHandler()

const { autometrics, init } = require("@autometrics/autometrics");
const { PrometheusExporter } = require("@opentelemetry/exporter-prometheus");

const exporter = new PrometheusExporter();
init({ exporter });

app.prepare().then(() => {
createServer(async (req, res) => {
try {
const parsedUrl = parse(req.url, true)
const { pathname } = parsedUrl
await autometrics({functionName: pathname}, async () => {
await handle(req, res, parsedUrl)
})();
//await handle(req, res, parsedUrl)
} catch (err) {
console.error('Error occurred handling', req.url, err)
res.statusCode = 500
res.end('internal server error')
}
})
.once('error', (err) => {
console.error(err)
process.exit(1)
})
.listen(port, () => {
console.log(`> Ready on http://${hostname}:${port}`)
})
})

0 comments on commit 13c1d51

Please sign in to comment.