From c215e6e12e154ea0b7b0594dd0b3192972eeff39 Mon Sep 17 00:00:00 2001 From: Pierre Souchay Date: Wed, 9 Oct 2019 11:31:20 +0200 Subject: [PATCH] Removed old samples --- CHANGELOG.md | 5 ++ README.md | 22 +++---- samples/keys.html.erb | 42 ------------ samples/nodes.html.erb | 52 --------------- samples/services.html.erb | 134 -------------------------------------- 5 files changed, 15 insertions(+), 240 deletions(-) delete mode 100644 samples/keys.html.erb delete mode 100644 samples/nodes.html.erb delete mode 100644 samples/services.html.erb diff --git a/CHANGELOG.md b/CHANGELOG.md index dff064d..79e91e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## (UNRELEASED) +IMPROVEMENTS: + +* Refactor JS code in consul-ui +* Removed old samples not used anymore + BUGFIXs: * Avoid try publishing several times Gem on rubygems.org diff --git a/README.md b/README.md index b405b14..f5c553d 100644 --- a/README.md +++ b/README.md @@ -251,19 +251,17 @@ by consul-templaterb. Have a look into the [samples/](samples/) directory to browse example files which contains those examples: -1. [List all nodes on Cluster](samples/nodes.html.erb) -2. [Show all services in Cluster](samples/services.html.erb) -3. [Show all Service Checks and their output](samples/checks.html.erb) -4. [Show all Key/Values nicely](samples/keys.html.erb) -5. [Show Choregraphies - work on content of K/V with JSON](samples/criteo_choregraphies.html.erb) -6. [Services in XML](samples/consul_template.xml.erb) -7. [Services in JSON](samples/consul_template.json.erb) -8. [Generate HaProxy Configuration](samples/ha_proxy.cfg.erb) -9. [Export Consul Statistics to Prometheus](samples/metrics.erb) : count all services, their state, +1. [List all nodes on Cluster](samples/consul-ui/consul_nodes.json.erb) +2. [Show all services in Cluster](samples/consul-ui/consul_services.json.erb) +3. [Show all Key/Values nicely](samples/consul-ui/consul_keys.json.erb) +4. [Services in XML](samples/consul_template.xml.erb) +5. [Services in JSON](samples/consul_template.json.erb) +6. [Generate HaProxy Configuration](samples/ha_proxy.cfg.erb) +7. [Export Consul Statistics to Prometheus](samples/metrics.erb) : count all services, their state, datacenters and nodes and export it to prometheus easily to trigger alerts. -10. [List all services/Nodes with their statuses for all datacenters](samples/all_services.txt.erb) -11. [Show all services/instances not passing on all DCs](samples/tools/find_all_failing_services.txt.erb) -12. [List all rubygems consul versions from remote server JSON](samples/list_ruby_versions_from_rubygems.txt.erb) +8. [List all services/Nodes with their statuses for all datacenters](samples/all_services.txt.erb) +9. [Show all services/instances not passing on all DCs](samples/tools/find_all_failing_services.txt.erb) +10. [List all rubygems consul versions from remote server JSON](samples/list_ruby_versions_from_rubygems.txt.erb) If you want to test it quickly, you might try with (assuming your consul agent is listening on `http://localhost:8500`): diff --git a/samples/keys.html.erb b/samples/keys.html.erb deleted file mode 100644 index 1cfedce..0000000 --- a/samples/keys.html.erb +++ /dev/null @@ -1,42 +0,0 @@ -<%= render_file('common/header.html.erb', title: 'Keys') %> -<% path = ENV['kv_path'] || '' %> -<% require 'base64' - require 'json' - require 'date' -%> -
-
-

Show all keys <%= path == '' ? '' : "under hierarchy #{path}" %>

-
- -<% - kv(path, recurse:true).each do |tuple| - key = tuple['Key'] - val = "NO_VALUE" - if !tuple['Value'].nil? - begin - val = Base64.decode64(tuple['Value']) - rescue StdError => e - val = "#{e.inspect} for tuple['Value']" - end - end -%> -
-
-
- -
-
-
-
<%= ERB::Util.html_escape(val) %>
-
-
-
-
-<% end %> -
-
-
-<%= render_file 'common/footer.html.erb' %> diff --git a/samples/nodes.html.erb b/samples/nodes.html.erb deleted file mode 100644 index d7660f7..0000000 --- a/samples/nodes.html.erb +++ /dev/null @@ -1,52 +0,0 @@ -<%= render_file('common/header.html.erb', title: 'Nodes') %><% -service_tag_filter = ENV['SERVICES_TAG_FILTER'] || nil -# Services to hide -services_blacklist_raw = (ENV['EXCLUDE_SERVICES'] || 'lbl7.*,netsvc-probe.*,consul-probed.*').split(',') -services_blacklist = services_blacklist_raw.map { |v| Regexp.new(v) } - -service_per_node = {} -services.each do |service_name, tags| - if !services_blacklist.any? {|r| r.match(service_name)} - service(service_name, tag: service_tag_filter).sort {|a,b| a['Node']['Node'] <=> b['Node']['Node'] }.each do |snode| - node_services = service_per_node[snode['Node']['Node']] || [] - node_services.push(snode) - service_per_node[snode['Node']['Node']] = node_services - end - end -end %> - -

List all nodes for DC, sorted by name

- -<%= render_file 'common/footer.html.erb' %> diff --git a/samples/services.html.erb b/samples/services.html.erb deleted file mode 100644 index efdf7f0..0000000 --- a/samples/services.html.erb +++ /dev/null @@ -1,134 +0,0 @@ -<% -# This template can be configure the following way with environment variables -# Environment variables to filter services/instances -# SERVICES_TAG_FILTER: basic tag filter for service (default HTTP) -require 'base64' -require 'json' -require 'date' - - services_tag_filter = ENV['SERVICES_TAG_FILTER'] - def status_to_class(status) - if status == 'passing' - 'success' - elsif status == 'warning' - 'warning' - elsif status == 'critical' - 'danger' - else - 'info' - end - end - - def compute_node_status(snode) - state = 'passing' - return state unless snode['Checks'] - snode['Checks'].each do |c| - case c['Status'] - when 'critical' - return 'critical' - when 'warning' - state = 'warning' - end - end - state - end - - def compute_service_status(snodes) - passing = 0 - warning = 0 - critical = 0 - sum = 0 - snodes.each do |snode| - st = compute_node_status(snode) - sum += 1 - case st - when 'passing' - passing += 1 - when 'warning' - warning += 1 - else - critical += 1 - end - end - [passing, warning, critical, sum] - end - %><%= render_file('common/header.html.erb', title: 'Services') %> - - -
-
- -
-

List of all datacenters

-
    - <% datacenters.each do |dc| %> -
  • <%= dc %> with <%= services(dc:dc).keys.count %> services, <%= nodes(dc:dc).count %> nodes
  • - <% end %> -
-

List all services instances sorted by node name

- <% services.each do |service_name, tags| - service_group = service(service_name) - nodes_sorted = service_group.sort {|a,b| a['Node']['Node'] <=> b['Node']['Node'] } - passing, warning, critical, sum = compute_service_status(nodes_sorted) - service_state = 'passing' - service_state = 'warning' if warning > 0 - service_state = 'critical' if critical > 0 - %> -
-

<%= service_name %>🔗

- <% if sum > 0 - %>
-
" class="progress-bar bg-success" role="progressbar" style="width:<%= (100.0 * passing / sum).round(2) %>%" aria-valuenow="<%= passing %>" aria-valuemin="0" aria-valuemax="<%= sum %>">
-
" class="progress-bar bg-warning" role="progressbar" style="width:<%= (100.0 * warning / sum).round(2) %>%" aria-valuenow="<%= warning %>" aria-valuemin="0" aria-valuemax="<%= sum %>">
-
" class="progress-bar bg-danger" role="progressbar" style="width:<%= (100.0 * critical / sum).round(2) %>%" aria-valuenow="<%= critical %>" aria-valuemin="0" aria-valuemax="<%= sum %>">
-
- <% end %> -
- <% nodes_sorted.each do |snode| - tags = snode['Service']['Tags'].sort - addr = snode.service_address - port_num = snode['Service']['Port'].to_i - port = port_num && port_num > 0 ? ":#{port_num}" : '' - url = if tags.include? 'https' - "https://#{addr}#{port}" - elsif tags.include? 'http' - "http://#{addr}#{port}" - elsif tags.include? 'ftp' - "ftp://#{addr}#{port}" - else - nil - end - %>
><%= - snode['Node']['Node'] %><%= port %> - <% - snode['Service']['Tags'].sort.each do |t| - %><%= t %><% - end - %> - <% - snode['Checks'].each do |c| %> <%= c['Status'] - %><% end if snode['Checks'] %>
- <% end %> -
-
- <% end - %> -
-
-
-<%= render_file 'common/footer.html.erb' %>