Introducing Matter: Connected Logging
Fast and Egress free logging system with Automations
What is Matter Logs
Matter is our in-house logging system that enables quick integration with your existing and new services allowing you to store and query logs across multiple applications, environments and levels.
Why did we create a new Logging system?
Current logging products and tools are great and we have also used them. But we wanted more connectivity with our DevOps pipelines, automated alerting and pattern recognition. Which current tools do not solve completely.
With Gravity Stacks, Matter logs are deeply connected, which means we are able to understand and find what went wrong and when and trace the errors back to the origin automatically.
Why Matter, matters?
We have built a comprehensive automation around Matter logs coupled with DevOps such as:
Error Context
Connecting the code changes with errors is critical to take action with reduced overhead of finding where things went wrong. When deployments are made via Gravity Stacks, Gravity connects the new code changes to the error logs to identify the origin.
Rollbacks
When new deployments contain spiked errors, Gravity can create a automated rollback ready for you and your team to either auto-deploy or based on your approval. Rollbacks are critical for any business before remediation can happen.
Alerting
Automated alerting on Slack and Email to keep teams updated. More importantly, the errors are auto-customised based on the teams and service owners. Matter alerting takes 1 step forward with API alerting, with api error tracking, if production APIs fails under customisable buffer (such as 0.5%), rollbacks can be triggered.
Setup Matter in 4 minutes
Matter logs are quick to integrate. Get started here: https://gravitycloud.tech
Get access to Console and Navigate to Matter.
Generate Matter Token and use in your existing logger such as Winston:
import * as winston from 'winston'; import * as os from 'os' const logger = winston.createLogger({ level: 'info', defaultMeta: { appName: "<YOUR-APP-NAME>", env: NODE_ENV, hostname: os.hostname() }, format: winston.format.combine( winston.format.timestamp(), winston.format.json() ), transports: [ new winston.transports.Console(), new winston.transports.Http({ host: '<GRAVITY-MATTER-ENDPOINT>', port: 443, path: '/', ssl: true, headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer <YOUR-MATTER-TOKEN>' } }) ] });