Ambassador Diagnostics {% if method or resource %} for {% if method %}{{ method }}{% endif %} {% if resource %}{{ resource }}{% endif %} {% endif %}

Ambassador version {{ system.version }}
Hostname {{ system.hostname }}
Cluster ID {{ system.cluster_id }}
Configuration from {{ system.boot_time }} — {{ system.hr_uptime }} ago
{% if envoy_status.ready %} Envoy ready, last status report {{ envoy_status.since_update }} {% elif envoy_status.alive %} Envoy alive but not yet ready, running {{ envoy_status.uptime }} {% else %} Envoy not running!! {% endif %}
{% if loginfo %} {% if loginfo.all %} Current log level: {{ loginfo.all }} {% else %} Current log levels:
    {% for level, elements in loginfo.items() | sort %}
  • {{ level }}: {{ ", ".join(elements) }}
  • {% endfor %}
{% endif %} {% else %} Current log levels: unknown {% endif %}
{% if notices %}
{% for notice in notices %} {{ notice.level }}: {{ notice.message }}
{% endfor %}
{% endif %} {% if error %}
ERROR: {{ error }}
{% else %} {% if errors %}
CONFIGURATION ERRORS
{% endif %}
Currently active Envoy Routes {% for route in route_info %}
{{ route.key }} {% if route['headers'] %} {% for hdr in route['headers'] %}
{{ hdr['name'] }}: {{ hdr['value'] }} {% endfor %} {% endif %}


sources:
    {% for ref in route._route._referenced_by | sort %}
  • {{ ref }}
  • {% endfor %}
{% if route._route.shadow %} shadow:
  • {{ route._route.shadow.name }}
{% endif %}
{% for ref in route._route._referenced_by | sort %} {% if ref in envoy_elements %} {% if 'route' in envoy_elements[ref] %} {% for route_element in envoy_elements[ref]['route'] %}
{{ route_element | pretty_json }}
{%- if not loop.last -%}
{%- endif -%} {% endfor %} {% endif %} {% endif %} {% endfor %}
{% endfor %}
Currently active Envoy Clusters
{% for cluster in cluster_info.values() | sort(attribute = 'name') %} {% if cluster['name'] in cluster_stats %}
{{ cluster['name'] }}

{% if cluster_stats[cluster.name].valid %} {{ 'Unknown health: ' if cluster._hmetric is not number }} {{ cluster._health }} {% else %} Unknown health: {{ cluster_stats[cluster.name].reason }} {% endif %}

sources:
    {% for ref in cluster._referenced_by | sort %}
  • {{ ref }}
  • {% endfor %}
{% for ref in cluster._referenced_by | sort %} {% if ref in envoy_elements %} {% if 'cluster' in envoy_elements[ref] %} {% for cluster_element in envoy_elements[ref]['cluster'] %}
{{ cluster_element | pretty_json }}
{%- if not loop.last -%}
{%- endif -%} {% endfor %} {% endif %} {% endif %} {% endfor %}
{% endif %} {% endfor %}
YAML input documents — these are what Ambassador is currently reading for its configuration. {% for key in active_elements | sort %} {% if key in ambassador_elements %}
{{ key }} {% if ambassador_elements[key].parent %}
object in {{ ambassador_elements[key].parent }} {% endif %}
Ambassador {% if ambassador_elements[key].target %}{% endif %} {{ ambassador_elements[key].kind }} {% if ambassador_elements[key].target %}{% endif %} {% if ambassador_elements[key].errors %}
    {% for error in ambassador_elements[key].errors %}
  • ERROR: {{ error.text }}
  • {% endfor %}
{% endif %}
{% if not ambassador_elements[key].description %}
{{ ambassador_elements[key].serialization }}
{% else %} {{ ambassador_elements[key].description }} {% endif %}
{% endif %} {% endfor %}
{% endif %}