BUG FIX:
- URL encode service and KV names when calling the http API
BUG FIX:
- Correctly identify endpoints
IMPROVEMENTS:
- Validate ssl peers
- Allow to stream log lines
- [CONSUL-UI] Display services with no port definition
- Hide opts in logs by default
IMPROVEMENTS:
- Switched to Github Actions (build)
- No functional changes in GEM - Test release only
IMPROVEMENTS:
- Use Ruby 2.7.2 in Travis build
- [VAULT] Do not handle missing secret as a blocking exception (#73)
IMPROVEMENTS:
- Use Node.Meta.fqdn to display node names in timeline if set
IMPROVEMENTS:
- Do not apply penalty on unmodified services not changing much (Will improve streaming performance)
IMPROVEMENTS:
- Allow customization to sort nodes in service view in Consul-UI (#71)
NEW FEATURES:
- Auto-detection of rate-limit on Consul Side (introduced in Consul 1.6.2+), this feature will work only Consul 1.9+ (see Consul #7527).
IMPROVEMENTS:
- When no template has been specified, stop early with an error message
NEW FEATURES:
- Added new decorator to compute node names in consul-ui (#70)
IMPROVEMENTS:
- Reduced size of GEM from 400k o 100k by removing not needed files
NEW FEATURES:
- Added
-W
or--wait-between-reload-signal
to avoid sending too many signals to a process executed. This avoids for instance reloading too much a HAProxy configuration without having to play with-w
as described in #69
BUG FIXES:
- Removed warnings at runtime with Ruby 2.7+
- Minor JS fix in Consul-UI (Added missing unused parameter to function
serviceTitleGenerator
)
IMPROVEMENTS:
- Consul-UI now supports navigation between nodes and services in both ways
BUGIX:
- Fix collision in JSON queries when using payload in requests #68
NEW FEATURES:
- For Consul 1.7+, now support
checks_in_state(check_state, dc: nil, [agent: consul_agent_address])
, fixes feature #65 - New options to support/disable TLS validation thanks to @jeromegn #66
BUG FIXES:
- Removed all Criteo specific decorators from Consul-UI
BUG FIXES:
- Fixed broken Dockerfile (was missing the new
decorator.js.erb
file). Fixes #61 (Thanks to @simongareste)
NEW FEATURES:
- Added
consul_members_count
metric in samples/metrics.erb
BUG FIXES:
- Using
agent: http://vault_or_consul_agent:port>
was not properly taken into account in some endpoints
NEW FEATURES:
- Using
agent: http://vault_or_consul_agent:port>
on most methods will now override the agent used to perform Consul queries. It might be useful for very large clusters or large WAN federations, because you can perform some requests on some agents, and some others on other agenrs. Might also be useful to federate data from preprod/prod for instance. - Added agent attribute for all methods in documentation
- Added samples/all_services_multi_agents.txt.erb as an example of new feature.
BUG FIXES:
- Update rake to 12.3.3 to fix CVE-2020-8130
NEW FEATURES:
- Properly declare minimum Ruby version to 2.4 in GEM spec
NEW FEATURES:
- Added support for
agent_members()
aka https://www.consul.io/api/agent.html#list-members - Added samples/members.json.erb demonstrating its usage
BUG FIXES:
- Properly set service meta in node meta decorator
NEW FEATURES:
- pluggable node meta
NEW FEATURES:
- Implementation of #59 - implementation of
--retry
and--vault-retry
new flags Those flags work in a similar way as in consul-template: stop program after X failures of consul or vault endpoints - Added
--fail-fast
that stop the programs immediately if vault or consul are not available at startup (also works with--once
)
NEW FEATURES:
- Fixed compatibility with Ruby 2.7+ (fixes #57)
BUG FIXES:
- Escape properly metadata containing double quotes in prometheus exporter
IMPROVEMENTS:
- Fixed warning color from critical to warning on consul-ui timeline
IMPROVEMENTS:
- Added
node_meta_info
forserviceInstanceDecorator
andserviceMetaDecorator
in Consul-UI
NEW FEATURES:
- Added
clean()
method in nodes.js to allow new behaviors
NEW FEATURES:
- added 2 decorators
navBarDecorator
andfetchedResponseDecorator
IMPROVEMENTS:
- added serviceName information for all decorators of services
IMPROVEMENTS:
- Added instance information into serviceMetaDecorator() calls to allow more sophisticated decorators.
IMPROVEMENTS:
- Default service meta decorator now decorates http/https links in service meta
- added function
templates
to list all templates being rendered - added support for JS decorators in consul-ui (thanks to @Thib17)
IMPROVEMENTS:
- unit tests for
checks_for_node
- any method of array/hash can be called on result now
IMPROVEMENTS:
- Refactor JS code in consul-ui
- Removed old samples not used anymore
NEW FEATURES:
- Added new function
checks_for_node
BUG FIXES:
- Avoid try publishing several times Gem on rubygems.org
IMPROVEMENTS:
- build on travis with latest ruby versions
- consul-ui: allow filtering from URL to create shortcuts easily
IMPROVEMENTS:
samples/metrics.erb
now export prometheus tag containing service.kind, can be used to group/ignore services with connect enabled- Better support for filtering Connect proxies in service list in consul-ui
- Added new samples
samples/hosts*
samples to generate /etc/hosts files
BUG FIXES:
- When vault receives at timeout, correctly reschedule it
BUG FIXES:
- In Consul UI, showing data from KV with markup was not properly handled
NEW FEATURES:
Support any request method for remote_resource.as_json (#41)
- support post and other request methods
- accept any 2xx result (instead of just 200). This is a semi-breaking change.
- accept body passed for non GET requests
- allow to add headers (such as Authorization)
BUG FIXES:
Fixed wrong lazy initialization in remote_resource.as_json
that
cause too many connections to be opened.
NEW FEATURES:
- Support for
remote_resource
provided by @kamaradclimber - Added support for
remote_resource.as_json
to fetch JSON remote resource from a web server - Added
samples/list_ruby_versions_from_rubygems.txt.erb
to demonstrate usage
BUG FIXES:
- Added gem parallel as a dependency to allow
samples/prometheus_consul_coordinates.erb
to work properly
NEW FEATURES:
- new template
samples/prometheus_consul_coordinates.erb
that computes rtt for each node.
IMPROVEMENTS:
- if template uses fork, do not kill child processes launched by exec
NEW FEATURES:
- consul-ui now supports displaying coordinates and evaluating RTT for any node
IMPROVEMENTS:
- when failing to write a file, describe the error with more context (file size...)
NEW FEATURES:
Added new coordinates endpoints:
coordinate.datacenters
list coordinates of datacenters (WAN)coodinate.nodes
list coordinates of nodes (LAN)
Added new helpers for service()
node_meta
return `['Node']['Meta'] or empty hashservice_meta
return `['Service']['Meta'] or empty hash for old consul versionsservice_or_node_meta_value(key)
return a the value associated with key in meta from service if in service, from node if in node, or nil if meta found nowhere.
Improved consul-ui Javascript #37 thanks to @warrenseine
IMPROVEMENTS
samples/metrics.erb
can now output metrics with labels for services with any kind of
service/node meta. You can tune output of prometheus labels with the environment
variable PROMETHEUS_EXPORTED_SERVICE_META
which contains the keys separated by
commas to extract from Service.Meta or Node.Meta.
Using PROMETHEUS_EXPORTED_SERVICE_META='version,os'
would add prometheus labels
version="xx",os="linux" on instances having those metadata on service or nodes when
meta is available.
IMPROVEMENTS
Will converge faster if some templates are not always requesting the same paths. Intead of relying on key being garbage collected, we now rely whether the key is available within the current rendering only. It avoid templates never rendering fully when keys appear/disappear.
NEW FEATURES
- consul-templaterb now returns an error code whether template is malformed.
This allows to use return code to validate templates when called with
--once
.
IMPROVEMENTS
- Do not display ugly stack trace when interrupting program with CRTL-C.
NEW FEATURES
endpoint.stats.last_modified
allow to display the date at which the data was last modified.
NEW FEATURES:
- When
return nil
is performed in a template, consul-templaterb now considers the template is not ready and thus do not start any process. It is useful if you want to start a process ONLY when some conditions are met.
IMPROVEMENTS:
- Added support for loading KV with YAML using
get_value_yaml()
IMPROVEMENTS:
- On Windows, ensure a proper error message is displayed when watching more than 2048 endpoints
- consul-ui now allow better searches in instances, display node meta in service details, fixed display of tags on Ffx
NEW FEATURES:
- Windows compatible
consul-templaterb now works on Windows.
NEW FEATURES:
- Added new function render_from_string() to render a template from a string (useful with KV)
BUG FIXES:
- Ensure that timeline sort properly events when healthchecks are removed (eg: maintenance)
IMPROVEMENTS:
- new sample samples/tools/find_all_failing_services.txt.erb to find all failing service instances on all DCs very easily.
- Do not report timestamps in metrics.erb as it is toxic for Prometheus
- in metrics.erb, add all net_info statistics to observe consul-templaterb itself
- new flag -l <error|info|debug> to control verbosity of messages
- Now diplays Checks of a Node in Consul-UI
IMPROVEMENTS:
EXCLUDE_SERVICES
now supports regexps to blacklist many services easily
BUG FIXES:
- When default value was the same as real value, endpoints were always marked as dirty, thus rendering of templates did never succeed. Since default value for service was '[]', trying to fetch a non-existing service did forbid templates to converge.
IMPROVEMENTS:
timeline.json.erb
now usesCONSUL_TIMELINE_BLACKLIST
environment variable to blacklist services to be hidden from timeline.
BUG FIXES:
- Keep connections open properly as it increase timeouts on Consul servers on very large templates
IMPROVEMENTS:
- Display error message when Retrying every 10 errors
BUG FIXES:
- Ensure to always re-open Connection to Consul agent in case of network error
OPTIMIZATIONS:
- inactivity_timeout now includes Consul Jitter for services not changing much (less than every 10 minutes)
IMPROVEMENTS:
- Minor UX improvements in consul-timeline
IMPROVEMENTS:
- Perform some randomization on retries, so in case of massive errors, system will likely re-open all connections at the same time.
- consul-timeline more optimize ringbuffer for larger history
- UI improvements (tooltips for services/checks)
IMPROVEMENTS:
- Nicer display of messages at startup
- Minor consul-timeline improvements
NEW FEATURES:
- -M flag to debug memory for templates having leaks
NEW FEATURES:
- Now display effective network bandwidth instead of uncompressed bandwidth
- for catalog/services and catalog/nodes, now min delay is 15s instead of 30s
IMPROVEMENTS:
- Removed Ruby 2.3 from Travis, build with Ruby 2.6 in Travis
OPTIMIZATIONS:
- Better network usage because of X-Consul-Index parsing bug
BUG FIXES:
value.endpoint.x_consul_index
now works as expected
IMPROVEMENTS:
- timeline now works well behing load balancer without stickyness
- Now hide service column when filtering on a service
- apply row limits immediately
- auto-refresh duration is now configurable by
TIMELINE_REFRESH_MS
environment variable
OPTIMIZATIONS:
- Full rewrite of filtering of consul-timeline to allow handling history of 100k+ records
- Various UI improvements
OPTIMIZATIONS:
- Use less memory on the client side for consul-timeline
- Properly handle multiple instances of JSON file behinf a LB
OPTIMIZATIONS:
- Consul timeline now autorefresh itself
- large performance improvement in Consul
NEW FEATURES:
- Added Consul timeline that displays all the changes on services in Consul UI.
BUG FIXES:
- Properly fill
template_info
strtucture when hot reload is performed so templates usingtemplate_info()
new function can behave nicely.
NEW FEATURES:
- template_info now includes
hot_reloading_in_progress: true
when the hotreloading is in progress.
NEW FEATURES:
- Added new function
template_info
to get information about the file being rendered and whether the first rendering phase is completed.
OPTIMIZATIONS:
- Improved startup time (especially useful with
--once
option) - Now iterate as fast as possible until scheduled rendering has started, so rendering is way faster
BUG FIXES:
- --wait was not working as expected, no properly set the minimum time between templates generation
BUG FIXES:
- consul-ui: Filtering per tag / service name was broken by commit 410a5407dbff10ae565c214674d986cd84ffed53
BUG FIXES:
- Fixed bug in samples/metrics.erb
BUG FIXES:
- In consul-ui, display the port only when port is set
BUG FIXES:
- Fixed rendering of favorites on Firefox in consul-ui
NEW FEATURES:
- Added the following helpers to help dealing with new Consul features and simplify writting templates in results
of
service()
calls:status
to compute aggregated status of a service taking into account all checksweights
to deal with weights added in Consul 1.2.3current_weight
to deal with weight computed using the current status
- Added new option
-g
for disabling GZIP compression
BUG FIXES:
- Upgraded potentially vulnerable bootstrap library
IMPROVEMENTS:
- Clearer help (indentation issue), added
-o
option as synonym for--once
IMPROVEMENTS:
- Add consul_service_changes_total metric in samples/metrics.erb
BUG FIXES:
- Remove metrics timestamping in samples/metrics.erb to allow datapoint collection when there are no changes on a service
NEW FEATURES:
- Services can be favorited in samples/consul-ui. Favorited services are kept on top of the list for easier finding.
IMPROVEMENTS:
- Added methods to get timestamps on each endpoint
- Use timestamps in Prometheus template to get more precise metrics
IMPROVEMENTS:
- Improved Prometheus template with many new metrics
- Documentation improvements regarding statistics and endpoints
- Code cleanups, code style, remove unused source file
- Travis build now runs rubocop and test with Ruby version from 2.3.x to 2.5.x
IMPROVEMENTS:
- Prometheus template to export easily Consul informations about nodes, datacenters and all services states
- Code style cleanup + travis now enforces Rubocop
- Remove criteo references in spec files thanks to @pierrecdn
- Bitrate display more consistent thanks to @pierrecdn
IMPROVEMENTS:
- added to_a method to Arrays objects (ex: datacenters)
- Improved Consul-UI templates to have proper list of DCs
IMPROVEMENTS:
- added support for Weights in Consul-UI
- new
debug/compare_connect_services.txt.erb
- new erb .map() function to iterate over all values
BUG FIXES:
- fixed non valid regexp lookups in Consul-UI
IMPROVEMENTS:
- Added Support for Consul Connect in Consul-UI
IMPROVEMENTS:
- fixed small errors in documentation
- added
-T
flag to control ERB trim mode with default value of-
IMPROVEMENTS:
- minor fixes in samples
- consul-ui now supports
#service_<service_name>
anchors
NEW FEATURES:
- Support for Hashicorp Vault improvements thanks to @uepoch
NEW FEATURES:
- samples/consul-ui/ now displays Service Meta information (new in Consul 1.1)
IMPROVEMENTS:
- samples/consul-ui/ now supports keys as well as nodes thanks to @geobeau
NEW FEATURES:
- EXPERIMENTAL Vault support thanks to @uepoch
BUG FIXES:
- Properly shutdown connections when receiving Posix signal to kill app
BUG FIXES:
- cache for service was not properly taken into account
IMPROVEMENTS:
- consul-ui now shows the number of service filetered
- service.Meta is an object not an array when null (Consul < 1.1)
IMPROVEMENTS:
- Added snode.service_address to get the IP address of a service easily without any logic in ERB files
- Improved consul-ui, added a README.md
IMPROVEMENTS:
- Cleaner consul-ui with ability to filterr using tags and statuses
IMPROVEMENTS:
- samples/consul-ui now display number of instances passing/warning/critical
- samples/consul-ui allow to filter per status, tags or instance name
- samples/consul-ui now display tags in list
IMPROVEMENTS:
- Use 60 seconds of cleanup to avoid over-cleaning up endpoints
- Use same environment variables to filter services in nodes.html.erb
BUG FIXES:
- Fix crashes on Mac OS X by updating eventmachine to 1.2.7. See igrigorik/em-http-request#315 for details
IMPROVEMENTS:
- Minor typo fixes in documentation
BUG FIXES:
- Fix for Mac OS X fixed in
1.2-stable
branch of event-machine, see igrigorik/em-http-request#315 for more details - fixed bug in samples/sample_keys.html.erb
- Unit tests now catches all
*.erb
files in subdirectories
IMPROVEMENTS:
- Improved new samples/consul-ui/
- Documentation typos
- Help typos fixed
- Various improvements in [samples/](samples/]
IMPROVEMENTS:
- samples/nodes.html.erb now also displays the services
- Added dynamic UI with JSON in directory samples/consul-ui
IMPROVEMENTS:
- Added samples/sample_keys.html.erb
- When
get_value_json
is called, allow to catch silently errors - Nicer error messages when templates are invalid with exact line of error
- Added optional params_file to
--template
flag to create parameters for templates - Documentation improvements
IMPROVEMENTS:
- More clever behaviour regarding processes on First completed rendering phase
- All samples/*.html.erb templates are w3c compatibles without errors
- Look and features improvements for samples/*.html.erb
- Added optional parameters to sub-template in
render_file
- Added
param(name, default_value)
to retrieve parameter from sub-template - Use
CONSUL_HTTP_TOKEN
if present in environment variables to get the token - Added TemplateAPI.md for documenting functions
BUG FIXES:
- Do not execute reload command at startup if destination file exists and is unchanged
IMPROVEMENTS:
- samples/*.html.erb files have doctype as first line
IMPROVEMENTS:
- Adds
http://
to Consul URL if missing since$CONSUL_HTTP_ADDR
environment variable might not have it - Updated gem description with more accurate information
- samples: removed KV/nodes from services.html.erb
- Fixed typos in README.md
- Added CHANGELOG.md
BUG FIXES:
- fixed default value for parameter -c to
http://localhost:8500
BUG FIXES:
- First auto-built by Travis CI and fully deployed version
- Fixed String interpolation bug in help messages
- Bump rubocop to version 0.49.0 due to CVE (Travis CI)
IMPROVEMENTS:
- Various README.md improvements
BUG FIXES:
- Allow Travis to build properly using tags and publish to rubygems.org