This package is based on meteorhacks/kadira.
- Create an account at https://montiapm.com
- From the UI, create an app. You'll get an
AppId
and anAppSecret
. - Run
meteor add montiapm:agent
in your project - Configure your Meteor app with the
AppId
andAppSecret
by adding the following code snippet to aserver/monti.js
file:
Meteor.startup(function() {
Monti.connect('<AppId>', '<AppSecret>');
});
Now you can deploy your application and it will send information to Monti APM. Wait up to one minute and you'll see data appearing in the Monti APM Dashboard.
Your app can connect to Monti APM using environment variables or Meteor.settings
.
Use the followng settings.json
file with your app:
{
...
"monti": {
"appId": "<appId>",
"appSecret": "<appSecret>"
}
...
}
The run your app with meteor --settings=settings.json
.
Export the following environment variables before running or deploying your app:
export MONTI_APP_ID=<appId>
export MONTI_APP_SECRET=<appSecret>
Monti APM comes with built in error tracking solution for Meteor apps. It has been enabled by default. For more information, please visit our docs on error tracking.
The Monti APM agent can be configured by
- environment variables, prefixed with either
MONTI_
orKADIRA_
- settings.json in the
monti
orkadira
object. Options other thanappId
andappSecret
should be inmonti.options
orkadira.options
. - code with
Monti.connect('app id', 'app secret', options)
You should use the same method that you used to give the agent the app id and secret.
name | env variable | default | description |
---|---|---|---|
appId | APP_ID | none | |
appSecret | APP_SECRET | none | |
enableErrorTracking | OPTIONS_ENABLE_ERROR_TRACKING | true | enable sending errors to Monti APM |
endpoint | OPTIONS_ENDPOINT | https://engine.montiapm.com | Monti / Kadira engine url |
hostname | OPTIONS_HOSTNAME | Server's hostname | What the instance is named in Monti APM |
uploadSourceMaps | UPLOAD_SOURCE_MAPS | true | Enables sending source maps to Monti APM to improve error stack traces |
recordIPAddress | RECORD_IP_ADDRESS | 'full' | Set to 'full' to record IP Address, 'anonymized' to anonymize last octet of address, or 'none' to not record an IP Address for client errors |
eventStackTrace | EVENT_STACK_TRACE | false | If true, records a stack trace when an event starts. Slightly decreases server performance. |
The agent collects traces of methods and publish functions. Every minute, it sends the outlier traces to Monti APM for you to view.
By default, it tracks events for:
- method/pubsub start
- wait time
- uncaught errors
- db
- http
- async (time between the fiber yielding and running again)
- method/pubsub complete
Time between an event ending and the next event starting becomes a compute
event.
The agent records up to one level of nested events.
You can add custom events to the traces to time specific code or events, or to provide more details to the trace.
const event = Monti.startEvent('event name', {
details: true
});
// After code runs or event happens
Monti.endEvent(event, {
additionalDetails: true
});
You can use any name you want. The second parameter is an object with data that is shown to you in the Monti APM UI. The data objects from starting and ending the event are merged together.
Please note that the total size of all traces uploaded each minute is limited (usually around 5mb), and if it is too large the traces and metrics are not stored. Avoid having 1,000's of custom events per trace or adding very large data objects.