July 11, 2024
- Handle traces with invalid errors
June 20, 2024
June 18, 2024
- Fix error in redis oplog monitoring (#123)
May 9, 2024
- Remove unnecessary log added in 2.49.0
May 6, 2024
- Support for redis-oplog
- Improve accuracy of waited on metric
March 27, 2024
- Fix some edge cases with publication wait time tracking that could result in a crash
March 22, 2024
- Improve accuracy of system memory metrics
March 6, 2024
- Track waitedOn time for methods and publications - the amount of time it is blocking other methods and publications
- Track system memory
- Fix using outdated staticFilesByArch in development on some Meteor versions
- Add
Monti.event
to match v3 of agent - Fix tracking wait time for publications
- Run object filters on HTTP req body
- Document Monti.tracer.redactField
- Rounds event loop lag to nearest 500 microseconds
- Remove unused pctEvloopBlock metric
Nov 24, 2023
- Fix handling uncaught exceptions when
null
orundefined
are thrown - Fix event type for Email.sendAsync
August 10, 2023
- Fix logging payload size only when enabled
- Fix crash when promise rejected with
undefined
January 9, 2023
- Add type definitions for apps that use zodern:types
- Add stalled method or publication detection. If a method is still running or a publication is not ready after 30 minutes, the agent will record an error to inform you.
- Add
stalledTimeout
option to configure how long it waits before deciding a method or publication is stalled. - If called while there is an active trace,
Monti.trackError
will send the trace events with the error - Improve checks for why a query is not using the oplog. Many of the checks were out of date with new Meteor versions. We've also added some new checks, including for the reactive publish package.
- Add
disableClientErrorTracking
option to only disable error tracking on the client - Fix possible error when running app tests, and global.window is set using jsdom
- Fix ending async events in traces when an async function throws an error
- Improve stack trace generated in safari for errors that are missing one
- Sends the Meteor release in every request to the engine, instead of only when the app starts
November 8, 2022
- Publish again without dev npm dependencies
November 8, 2022
- Instrument fetch package (@afrokick)
- Remove
Monti APM: completed instrumenting the app
logged every time the app starts - When already connected, calling
Monti.connect
again does nothing - Change to only auto-connect after instrumentation is finished
- Handle
RangeError: Invalid string length
error - Add
disableNtp
option
February 13, 2022
- Fix compatibility with Meteor 2.6
December 29, 2021
- Add simplified
Monti.trackError
api:Monti.trackError(error)
- Track
collection.createIndex
in traces - Fix some cases where details for unhandled rejections were not collected
- The dependencies
email
andhttp
are now weak - Removed dependency on
localstorage
, and replaced deprecatedlivedata
andmongo-livedata
packages withmongo
andddp
August 30, 2021
- Fix
Kadira._getInfo is not a function
error - Update monti-apm-core to fix sending large traces and cpu profiles
July 20, 2021
- Fix memory leak with Node 8 from monitoring garbage collection
- Fix memory leak when agent is not connected
- Remove support for beta versions of Meteor 2.3
July 14, 2021
- Add createdFibers, activeFibers, fiberPoolSize, activeRequests, and activeHandles metrics
- Add garbage collection metrics, enabled when using Node 8.5 or newer
- Record histogram of event loop delay
- Add metrics for mongo node driver's connection pool, enabled when using Meteor 2.2 or newer
- Record system and user cpu usage in cpu history
June 9, 2021
- Store current cpu usage percent for profiler
June 7, 2021
- Fix compatibility with Meteor 2.3
- Remove HTTP package from client dependencies
May 25, 2021
- Add memoryArrayBuffers, memoryExternal, memoryHeapUsed, and memoryHeapTotal metrics
- Fix pcpuUser and pcpuSystem metrics
- Fix error when DocSize is given a map
- Fix error when MeteorX.Multiplexer is undefined, which fixes using the agent in Rocket Chat
- Fix how stripSensitiveThorough filter handles waitend event
- Continuous profiles are only sent if the agent is connected
- Remove pidusage npm dependency
March 24, 2021
- Update
monti-apm-core
March 23, 2021
- Fix error when filtering arrays with null values
March 22, 2021
- Add
Monti.tracer.redactField(fieldName)
. Removes the value of these fields from objects before storing them in a trace. By default it filters thepassword
field. Is used for headers from incoming HTTP requests, and parameters passed to methods and pub/sub. - Reduce time spent loading the package in the server by up to 80% (from up to ~1,000ms to 200ms)
- Reduce disk usage of package from 25mb to 3mb
- Warns when an app uses multiple APM agent packages since they can conflict with each other
- Remove internal use of Meteor's HTTP package. Monti APM still instruments it to track outgoing HTTP calls in traces.
- Store
detail
property of Method and pub/sub errors (Thanks @ulion). - Fix sending errors from Internet Explorer 9
- Documented Meteor and browser compatibility in readme. We support Meteor 1.4 and newer, and Internet Explorer 9 and newer web browsers.
- Add Tracer.stripSensitiveThorough filter. This filter internally uses a list of which fields to not strip instead of which fields to strip, which reduces the consequences of forgetting to update the filter after adding new fields
- Update Tracer.stripSensitive to support headers and request bodies for HTTP traces
- Increase minimum version for monitoring incoming HTTP requests from Meteor 1.6.1 to Meteor 1.7. As before, HTTP monitoring is automatically disabled when using an older version of Meteor.
- Drop compatibility for old beta versions of Meteor's email package. You can still force the beta version by modifying your app's
.meteor/packages
file to have a!
after the email package's version. - Fix filter examples in readme
January 8, 2021
- Fix issues publishing v2.40.0
January 8, 2021
- Store histogram of response times for Methods and Publications
- Store CPU usage every 2 seconds instead of 20
- Improve performance when there are a large number of different methods, publications, or HTTP routes
- Add
Monti.startContinuousProfiling()
. Requires a version ofmontiapm:profiler
that supports continuous profiling.
Nov 11, 2020
- Fix return value of connect app
.use
- Log a message if trying to add a nested event to an invalid trace
August 21, 2020
- Add monitoring for incoming HTTP requests, supported for Meteor 1.6.1 and newer
- Instruments WebApp.rawConnectHandlers, WebAppInternals.meteorInternalHandlers, WebApp.connectHandlers, WebApp.connectApp, fast-render, connect-route, and simple:json-routes (which is used by most Meteor REST packages)
- Create histograms of HTTP response time
- Instrument fs.stat and fs.createReadStream
- Fix unhandled promise rejections not being logged to the console
- Fix calculating compute time between the second to last event and complete event
- Sends agent version to the engine
January 23, 2020
- Improve detection of errors that should be ignored in Meteor._debug. This will fix some errors not being reported
- Fix some stack traces missing when logged by Meteor._debug
November 6, 2019
- Fix many instances of unhelpful errors reported by Meteor._debug
- Fix tracker errors being reported as 3 different errors. Now one error has all the relevant details
- One error had the tracker function that caught the error
- One had the error message without the stack
- Another had the error stack without the message
- Fix internal server errors with no name or stack
- Fix empty stack from Meteor._debug on Firefox
- Add stack if missing to Meteor._debug server errors
- Fix tracker errors being reported as 3 different errors. Now one error has all the relevant details
- Fixed duplicate
:
appearing in some error names - Limit method and subscription start params to 2,000 characters
- Limit traces to 1,000 events. This will not affect the method or subscription metrics.
August 14, 2019
- Fix many errors in IE not being recorded due to having the wrong time from ntp requests being cached
- Fix crash when event added to trace after it was processed
- Replace meteorhacks:kadira-profiler with montiapm:profiler in console message (@Brouilles)
June 14, 2018
- Fix the stack trace for some client errors showing as
[object Object]
May 22, 2019
- Tracer records one level of nested events
- Custom events can be added to a trace with
Monti.startEvent
andMonti.endEvent
. These methods are only available on the server - Optionally record a stack trace of where event started
- Added db _nextObject event, recorded during
cursor.forEach
andcursor.map
- Events that were ended due to the trace ending have a
forceEnd
property - Some events uploaded to the engine have a fourth item in their array with the data needed for the above features. This is backwards compatible with the open source Kadira, but Kadira would have to be modified to use the additional data.
March 25, 2019
- Fix pubsub and system metrics that were broken in Meteor 1.8.1
- Add
recordIPAddress
option which can be used to tell Monti APM to anonymize IP addresses or to not record them. This option has no effect on the open sourced Kadira. - Add section to readme to document options
December 26, 2018
- Fix session count in Meteor 1.8.1
December 5, 2018
- Replace meteorhacks:meteorx with lamhieu:meteorx to add support for Meteor 1.8.1
November 16, 2018
- Fix error when initializing client
- Fix errors in zone utils
November 15, 2018
- Remove underscore from client (@sebakerckhof)
- Remove
endevent forced complete
warning
September 29, 2018
- Add
uploadSourceMaps
option. It is enabled by default in production when using a minifier that creates source maps. When enabled, source maps that Monti APM does not cached are uploaded when needed by a new client error - Track unhandled promise rejections in the server and in browsers that support it
- Client architecture and version is sent with client errors
July 13, 2018
- Fix error stack trace from method and subscription errors showing as an object when error tracking is disabled
- Fix using environment variables that were not prefixed with
MONTI_
orKADIRA_
. See #5 - Fix crashing app when unable to get cpu or memory usage on Windows. Instead, a message will be shown in the logs, and the memory and cpu usage will show as 0 in the Monti APM UI. See #4
June 18, 2018
- Fix error stack trace from method and subscription errors showing as an object
May 27, 2018
- Remove jquery dependency
- Export a
Monti
object as an alias to theKadira
object - A
monti
object can be used in the settings.json instead of thekadira
object - Environment variables can be prefixed with
MONTI_
instead ofKADIRA_
Kadira
has been replaced withMonti APM
in all console.log messages- Fix tracking subscription message sizes on Meteor 1.5 and newer
- Show better error message when unable to connect
- Rename to montiapm:agent
- Use
Object.create(null)
rather than object initializer notation when initializing objects to store metric data.
- Ensure error strings are encapsulated in an
Error
-like object for transmission to the APM server.
- Fix #144.
- Stop sending hostname to the client side. See #245.
- Remove MongoDB labeling. See: PR239
- DocSzCache size is now configurable. See PR238
20-05-2016
12-05-2016
- Fix an issue of potentially, killing the due to CPU labeling of the MongoDB module.
09-03-2016
- Fix coding style issues
- Track polledDocSize on polling observers as well
04-03-2016
- Fix regression of not tracking size data correctly. See: #219
04-03-2016
- Fix re-opened bug #83 which tries to use update options when it's undefined or null. This came with the recent addition of size tracking.
01-03-2016
- Fix issue of not tracking null publications properly in data size tracking.
- Remove cache handlers tracking from observers. This leads to better CPU usage.
- Tracking different data size meterics (all in and out data sizes from the app). This is done is very efficient manner. So, this doesn't impact to the app's CPU usage.
- Update pidusage to v1.0.1
- Fix potential issue of not sending data to engine. Earlier we stopped sending when we see an error. Actually, we need to reschedule to send data to engine even if there is an error.
- Fix an issue on server crashing due to a bug on kadira-core. Fixed by adding kadira-core v1.3.1, which has a fix for that.
- Now, transport layer is handled by the
kadira-core
NPM module.
- Add potential fix for #200
- Add initiallyAddedDocuments to track initial adds
- Change the metrics we track for LiveQuery tracking.
- Add more metrics which tracks the Live Query usage. This will be helpful for our upcoming LiveQuery tracking feature.
- Allow to filter by method/sub name when striping trace data. See this PR.
- Add better error reporting. Actually fixed this issue: meteorhacks/kadira#193
- How we fix is little unconventional but it worked.
- Start instrumenting Kadira rightway. So, we can get the CPU profile labeling.
- Using MeteorX for the server only.
- Using the latest MeteorX version, which has some fixes for startup related issues
- Fix for a weird bug we found from the customer support. Without this fix, his app won't bind to the port.
- Fix a potential issue where the possiblity to mutate authHeaders.
- Change console.error in connect code to console.log.
- Add support for Meteor 1.2. Fixes: #181. It was an issue with how we are tracking
Fiber.yield
.
- Add first steps on decoupling kadira's tracing into a seperate package.
- With this version, we allow an way to expose Kadira traces and some other metrics without connecting to Kadira.
- See example: https://gist.github.com/arunoda/8a3dec21924f08ed83b3
- Prevnt string errors crashing the app. Potential fix for: #175
- We've seen some users getting older version when installed via
meteor add meteorhacks:kadira
. We've no idea when it's happening. May be because we still support Meteor0.9
. - So, this version drops Meteor
0.9
support and only support Meteor1.0
or higher.
- Fix an issue with the time-sync logic
- Do not retry if kadira engine return a status code of range 400-500 (except 401. It throws an error.)
- Add the protocol version as 1.0.0