@deadlock-delegate/logger-pino-stackdriver
v0.1.0
Published
Ark Ecosystem plugin enabling sending logs to Stackdriver
Downloads
1
Maintainers
Readme
Ark Pino Stackdrive Logger Plugin
This Ark plugin utilizes and extends Ark's core logger plugin called core-logger-pino
and adds support for sending logs to Google's Stackdriver which amongst other things also supports:
- simple searching and browsing through logs
- creating metrics from logs
- creating alerts
By replacing core-pino-logger
with this plugin you won't loose any of existing logging functionalities. This plugins simply extends the core-pino-pluggin
with Stackdriver. Please note that if you have custom settings set for core-pino-logger
in plugins.js
, you'll have to move them to logger-pino-stackdriver
which will pass them on to the core-pino-logger
.
Installation
For production:
yarn add global @deadlock-delegate/logger-pino-stackdriver
For development:
cd ~/ark-core/plugins
git clone https://github.com/deadlock-delegate/logger-pino-stackdriver
lerna bootstrap
Registration
Open ~/.config/ark-core/{mainnet|devnet|testnet}/plugins.js
and replace "@arkecosystem/core-logger-pino": {},
with '@deadlock/logger-pino-stackdriver": {},
.
like so:
module.exports = {
"@arkecosystem/core-event-emitter": {},
"@deadlock-delegate/logger-pino-stackdriver": {
levels: {
console: process.env.CORE_LOG_LEVEL || 'debug', // log level of console logger (this is default that's taken from core-logger-pino)
file: process.env.CORE_LOG_LEVEL_FILE || 'trace' // log level of file logger (this is default that's taken from core-logger-pino)
},
fileRotator: {
interval: '1d' // how often should log file rotate (this is default that's taken from core-logger-pino)
},
stackdriver: {
projectId: 'your-project-name-on-google-cloud', // name of the project in Google Cloud where you'll be sending the logs
logName: 'name-of-your-log' // name of the log in Google cloud (if it doesn't exist yet, it will be created automatically)
}
},
...
}
Configuration
Open .env file that is located at ~/.config/ark-core/<network>/.env
(should be replaced by either mainnet, devnet or testnet) and add the following environment variable:
GOOGLE_APPLICATION_CREDENTIALS=<path to your Google service account credentials>
for example:
GOOGLE_APPLICATION_CREDENTIALS=~/credentials.json
If you don't know how to create a Google service account for your project check this out.
Tips:
If you wish to send log data from multiple nodes to the same project's Stackdriver you can differentiate the logs by changing the logName
settings on every node, eg:
node-1 should have logName set to node-1, node-2 should have logName set to node-2, etc.
Credits
License
MIT © roks0n