python/ambassador-diag/src/ambassador_diag/templates/diag.html
{% if method %}{{ method }}{% endif %} {% if resource %}{{ resource }}{% endif %} {% endif %}{% if system.debug_mode %}
{% endif %} {%- include "system-info.html" -%} {%- include "guidance.html" -%} {% if notices %}
{% for notice in notices %} {{ notice.level }}: {{ notice.message }}
{% endfor %}
{% endif %} {% if error %}
ERROR: {{ error }}
{% else %} {% if errors %}
CONFIGURATION ERRORS {% for error in errors | sort %} - {% if error[0] %} {{ error[0] }}: {{ error[1] }} {% else %} {{ error[1] }} {% endif %} {% endfor %}
{% 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 %}
` ](/ambassador/v0/diag/grp-{{%20route['_group_id']%20}})
sources:
{% for ref in route._route._referenced_by | sort %} - {{ ref }}
{% endfor %}
{% if route._route.shadow %} shadow:
{% 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 %} {{ 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 Emissary 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 %}