Node.js implementation of Stack Exchange's MiniProfiler
Visit http://miniprofiler-demo.herokuapp.com for a live demonstration.
$ npm install miniprofiler
You can hook up your application with any of the following packages are available on npm:
Name | About | Version |
---|---|---|
miniprofiler-http |
Profile http(s) requests | |
miniprofiler-pg |
Profile pg queries | |
miniprofiler-redis |
Profile redis calls |
server.js
var express = require('express')
, miniprofiler = require('miniprofiler')
, app = express();
app.set('view engine', 'pug');
app.use(miniprofiler.express());
app.get('/', function(req, res) {
req.miniprofiler.step('Step 1', function() {
req.miniprofiler.step('Step 2', function() {
res.render('index');
});
});
});
app.listen(8080);
index.pug
doctype html
html
head
title MiniProfiler Node.js Example
body
h1 Home Page
| !{miniprofiler.include()}
When visiting localhost:8080
, you should see this.
Replace {framework}
with koa, express or hapi.
This function returns a framework specific middleware that is responsible for initializing MiniProfiler on each request.
Property | Default | Description |
---|---|---|
enable | Always returns true | function(req, res) => boolean; this function is used to determine if the profiler should be enabled for the current request |
authorize | Always returns true | function(req, res) => boolean; this function is used to determine if the current request should be able to see the profiling results |
provider
is a call for any of the supported providers listed here.
Property | Default | Description |
---|---|---|
storage | InMemoryStorage({ max: 100, maxAge: 1000 * 60 * 60 }) | InMemoryStorage or RedisStorage; used to store or fetch a string JSON blob of profiling information |
ignoredPaths | [ ] | string array ; any request whose url property is in ignoredPaths will not be profiled |
trivialDurationThresholdMilliseconds | 2.5 | double ; any step lasting longer than this will be considered trivial, and hidden by default |
popupShowTimeWithChildren | false | boolean ; whether or not to include the "time with children" column |
popupRenderPosition | left | 'left', 'right', 'bottomLeft' or 'bottomRight' ; which side of the screen to display timings on |
miniprofiler.configure({
storage: miniprofiler.storage.InMemoryStorage({ lruCacheOptions });
})
Refer to lru-cache documentation for lruCacheOptions
.
miniprofiler.configure({
storage: miniprofiler.storage.RedisStorage(client);
})
Where client
is an instance of redis.createClient.
node's People
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.