Releases: jhuckaby/Cronicle
Version 0.7.0
Quite a few changes and fixes in this release:
-
New standard Plugin for making HTTP requests.
- Can send HTTP GET, HEAD, or POST requests with custom headers.
- Tracks performance metrics, can also match content for success/error.
-
Much improved handling of detached jobs on Cronicle restart / upgrade.
- Detached jobs will now seamlessly recover after any server restart (as long as the server wasn't down for dead_job_timeout+).
-
Shell Plugin Improvements
- New optional log timestamp annotation for Shell Plugin.
- Improvements to logging and error handling.
- STDERR is now captured separately, and displayed in its own custom HTML section on the job details page (up to first 32K). Everything is still logged of course.
- First line of STDERR is now added to final description, in the event of an error, if less than 256 chars.
-
Fixed elapsed time for detached jobs.
- The elapsed time was being calculated from when the master daemon finished the job, but this may be up to 60 seconds AFTER the job itself completed, for detached jobs, because they send status updates by way of queue files. This corrects that by allowing the child to set the
time_end
property in the job JSON. - Note that this DOES introduce a possible issue with clock sync between servers in the same cluster.
- The elapsed time was being calculated from when the master daemon finished the job, but this may be up to 60 seconds AFTER the job itself completed, for detached jobs, because they send status updates by way of queue files. This corrects that by allowing the child to set the
-
Fixed bugs related to missing environment variables on server reboot and init.d.
- Now always calling
Tools.getpwnam()
for user info on job launch. - This will correct issues like the shell environment missing things like HOME when init.d launches the Cronicle daemon after a server reboot.
- Now always calling
-
Bug fix: Increment
stats.jobs_failed
when a job fails to launch (server unavailable, etc.). -
Disabled Uglify on client-side JavaScript for now.
- Makes things easier to debug on production, and the content is gzipped anyway.
-
Increased default
dead_job_timeout
to 120 seconds.- Upgrading servers may take longer than 30 seconds, and don't want detached jobs to be declared dead.
-
Locked some top-level npm package versions, just for a bit of safety (npm-shrinkwrap would be better long term).
Version 0.6.16
Just a few bug fixes in this version:
Version 0.6.15
This version only contains one small cosmetic bug fix:
- Issue #28 - Event names not showing on Completed tab after deleting event
The fix also supports preserving deleted category or plugin names as well.
Version 0.6.14
A few small changes and bug fixes in this release:
- Support for new web_hook_custom_data config parameter, for sending custom JSON data along with each web hook HTTP POST. Should fix #20.
- Support for new web_hook_ssl_cert_bypass config parameter, for disabling SSL cert validation for web hook URLs (should only be needed in special cases).
- More strict validation of event data when calling APIs such as
create_event
,update_event
,run_event
andupdate_job
. Should prevent malformed data from crashing the main process. Should fix #25. - Now only logging job completions to the admin activity log if the job fails (non-zero code). Successful job completions are only logged in the "Complete" tab.
- More verbose logging for all web hook HTTP responses (debug level 9).
- Bug fix: Was incorrectly logging phantom error message for a non-error when job runs.
- Fixed broken unit test which was expecting activity log to have all job completions.
Thanks to everyone who reported bugs!
Version 0.6.13
This is a minor release with a few small changes / bug fixes:
- No longer logging every job completion to the Activity tab, as it clogs up so you often miss important events. Listing all job completions here is redundant, as they are all listed on the Completed tab anyway.
- Manual job launches are still logged here (UI or API Key).
- Unexpected slave server disconnections and reconnections are now logged in the Activity tab.
- New job_env config object allows you to specify default environment variables passed to all job processes.
- Fixed issue #23: Possible crash when choosing certain server selection algorithms.
- A code change to pixl-config should fix issue #21.
Version 0.6.12
This release adds mail_options
for configuring settings sent to the SMTP server:
Set specific mailer options, such as SMTP SSL and authentication, passed directly to pixl-mail (and then to nodemailer-smtp-transport). Example:
"mail_options": {
'secure', true,
'auth', { user: 'fsmith', pass: '12345' },
connectionTimeout: 10000, // milliseconds
greetingTimeout: 10000, // milliseconds
socketTimeout: 10000 // milliseconds
}
Thanks to user @MingqingLi for reporting this issue.
Version 0.6.11
Just a single change in this release:
- Randomized detached job update frequency as to not bash the queue directory when multiple detached jobs are running, and also to better catch the minute updates of the daemon.
Version 0.6.10
One bug fix and one new feature in this release:
- Fixed bug where detached jobs would crash if the job command-line exec contained any arguments (typo).
- Progress events emitted by detached jobs are now processed and the UI updated (once per minute).
Version 0.6.9
Two fixes in this release:
- Nightly maintenance scalability: Now chopping lists manually, and not using listSplice(). This is to reduce memory usage for extremely high job traffic installations.
- Should fix #13 - coredump occurs around 4 o'clock on master
- Cosmetic fix in CSS for drop-down menus in Chrome.
Version 0.6.8
Just a few small changes / fixes in this release:
- New
Error.log
contains all errors (used to be inCronicle.log
). - New
Transaction.log
contains all transactions (used to be inCronicle.log
). - More tweaks to socket.io-client to make it more resilient with bad server connections.
So now Cronicle.log
will only contain debugging messages, and errors and transactions are broken out into their own separate logs. Note that this only happens when you use the default log_filename
that uses the [component]
placeholder macro like this:
"log_filename": "[component].log",
If you change this to be a static filename, all log entries will be merged in the same log (except for crash.log
and install.log
which are always separate).