Render Redis-based analytics.
See lib/spec.js
https://github.com/evanx/relytica/blob/master/lib/spec.js
env: {
redisHost: {
description: 'the Redis host',
default: 'localhost'
},
redisPort: {
description: 'the Redis port',
default: 6379
},
redisNamespace: {
description: 'the Redis namespace',
default: 'relytica'
}
}
Our spec
also exposes the Redis keys used by this service:
redisK: config => ({
reqS: {
key: `${config.redisNamespace}:req:s`
},
reqQ: {
key: `${config.redisNamespace}:req:q`
},
reqH: {
key: sha => `${config.redisNamespace}:${sha}:req:h`
},
busyQ: {
key: `${config.redisNamespace}:busy:q`
},
reqC: {
key: `${config.redisNamespace}:req:count:h`
},
errorC: {
key: `${config.redisNamespace}:error:count:h`
}
})
See Dockerfile
https://github.com/evanx/relytica/blob/master/Dockerfile
FROM mhart/alpine
ADD package.json .
RUN npm install --silent
ADD lib lib
ENV NODE_ENV production
CMD ["node", "lib/index.js"]
We can build as follows:
docker build -t relytica https://github.com/evanx/relytica.git
where the image is tagged as relytica
Then for example, we can run on the host's Redis as follows:
docker run --network=host -e relytica
Note --network-host
connects the container to your localhost
bridge. The default Redis host localhost
works in that case.
Since the containerized app has access to the host's Redis instance, you should inspect the source.
See lib/main.js
https://github.com/evanx/relytica/blob/master/lib/main.js
Uses application archetype: https://github.com/evanx/redis-koa-app