← Back to file list

Telemetry: {{ filename }}

{% macro format_numeric_value(value) %} {% if value is number %} {% set rounded_value = value | round(0) %} {{ rounded_value | int }} {% else %} {{ value }} {% endif %} {% endmacro %}

Traces

{% if resource_groups is defined and resource_groups|length > 0 %} {% for resource in resource_groups %}
Resource {% if resource.attrs and resource.attrs|length > 0 %}
    {% for attr in resource.attrs %}
  • {{ attr.key }}: {{ attr.value.stringValue or attr.value.intValue or attr.value.boolValue or attr.value.doubleValue or attr.value or '' }}
  • {% endfor %}
{% else %} (none) {% endif %}
{% if resource.span_trees_by_trace is defined %} {% for trace_id, root_spans in resource.span_trees_by_trace.items() %}
Trace {% macro render_span(span) %}
{%- for i in range(span.depth - 1) %}  {%- endfor -%} {%- if span.depth > 0 %}└─ {%- endif -%}{{ span.name }} ({{ ((span.endTimeUnixNano|int - span.startTimeUnixNano|int) / 1000000)|round(2) }} ms)
{% if span.children %} {% for child in span.children %} {{ render_span(child) }} {% endfor %} {% endif %} {% endmacro %} {% for span in root_spans %} {{ render_span(span) }} {% endfor %}
{% endfor %} {% endif %}
{% endfor %} {% else %} No span data available. {% endif %}

Metrics

{% if metric_groups is defined and metric_groups|length > 0 %} {% for metric_resource in metric_groups %}
Resource (Metrics) {% if metric_resource.attrs and metric_resource.attrs|length > 0 %}
    {% for attr in metric_resource.attrs %}
  • {{ attr.key }}: {{ attr.value.stringValue or attr.value.intValue or attr.value.boolValue or attr.value.doubleValue or attr.value or '' }}
  • {% endfor %}
{% else %} (none) {% endif %}
{% if metric_resource.scope_metrics_list %} {% for scope_metrics in metric_resource.scope_metrics_list %}
Scope: {{ scope_metrics.scope_attrs.name }} (Version: {{ scope_metrics.scope_attrs.version or 'N/A' }}) {% if scope_metrics.scope_attrs.attributes %}
    {% for attr in scope_metrics.scope_attrs.attributes %}
  • {{ attr.key }}: {{ attr.value.stringValue or attr.value.intValue or attr.value.boolValue or attr.value.doubleValue or attr.value or '' }}
  • {% endfor %}
{% endif %} {% if scope_metrics.metrics %} {% set _earliest = [] %} {% for metric in scope_metrics.metrics %} {% if metric.gauge and metric.gauge.dataPoints and metric.gauge.dataPoints|length > 0 %} {% for dp in metric.gauge.dataPoints %} {% set _ = _earliest.append(dp.timeUnixNano | int // 1000000) %} {% endfor %} {% elif metric.sum and metric.sum.dataPoints and metric.sum.dataPoints|length > 0 %} {% for dp in metric.sum.dataPoints %} {% set _ = _earliest.append(dp.timeUnixNano | int // 1000000) %} {% endfor %} {% elif metric.histogram and metric.histogram.dataPoints and metric.histogram.dataPoints|length > 0 %} {% for dp in metric.histogram.dataPoints %} {% set _ = _earliest.append(dp.timeUnixNano | int // 1000000) %} {% endfor %} {% elif metric.exponentialHistogram and metric.exponentialHistogram.dataPoints and metric.exponentialHistogram.dataPoints|length > 0 %} {% for dp in metric.exponentialHistogram.dataPoints %} {% set _ = _earliest.append(dp.timeUnixNano | int // 1000000) %} {% endfor %} {% elif metric.summary and metric.summary.dataPoints and metric.summary.dataPoints|length > 0 %} {% for dp in metric.summary.dataPoints %} {% set _ = _earliest.append(dp.timeUnixNano | int // 1000000) %} {% endfor %} {% endif %} {% endfor %} {% set scope_earliest_time = (_earliest|min) if _earliest else None %}

Metrics:{% if scope_earliest_time %} ({{ scope_earliest_time | datetimeformat }}){% endif %}

    {% for metric in scope_metrics.metrics %}
  • {{ metric.name }} (Unit: {{ metric.unit or 'N/A' }})
      {% if metric.gauge %}
    • Gauge: {% if metric.gauge.dataPoints|length > 0 %} {% set sample_dp = metric.gauge.dataPoints[0] %} {% if sample_dp.attributes %} {% for attr in sample_dp.attributes %} {% endfor %} {% endif %} {% for dp in metric.gauge.dataPoints %} {% if dp.attributes %} {% for attr in dp.attributes %} {% endfor %} {% endif %} {% endfor %}
      {{ attr.key }}Value
      {{ attr.value.stringValue or attr.value.intValue or attr.value.boolValue or attr.value.doubleValue or attr.value or '' }} {% set raw_value = (dp.asDouble if dp.asDouble is defined and dp.asDouble is number else (dp.asInt if dp.asInt is defined and dp.asInt is number else (dp.asDouble or dp.asInt))) %} {{ format_numeric_value(raw_value) }}
      {% endif %}
    • {% elif metric.sum %}
    • Sum (Monotonic: {{ metric.sum.isMonotonic }}, Aggregation: {{ metric.sum.aggregationTemporality }}): {% if metric.sum.dataPoints|length > 0 %} {% set sample_dp = metric.sum.dataPoints[0] %} {% if sample_dp.attributes %} {% for attr in sample_dp.attributes %} {% endfor %} {% endif %} {% for dp in metric.sum.dataPoints %} {% if dp.attributes %} {% for attr in dp.attributes %} {% endfor %} {% endif %} {% endfor %}
      {{ attr.key }}Value
      {{ attr.value.stringValue or attr.value.intValue or attr.value.boolValue or attr.value.doubleValue or attr.value or '' }} {% set raw_value = (dp.asDouble if dp.asDouble is defined and dp.asDouble is number else (dp.asInt if dp.asInt is defined and dp.asInt is number else (dp.asDouble or dp.asInt))) %} {{ format_numeric_value(raw_value) }}
      {% endif %}
    • {% elif metric.histogram %}
    • Histogram (Aggregation: {{ metric.histogram.aggregationTemporality }}): {% if metric.histogram.dataPoints|length > 0 %} {% set sample_dp = metric.histogram.dataPoints[0] %} {% if sample_dp.attributes %} {% for attr in sample_dp.attributes %} {% endfor %} {% endif %} {% for dp in metric.histogram.dataPoints %} {% if dp.attributes %} {% for attr in dp.attributes %} {% endfor %} {% endif %} {% endfor %}
      {{ attr.key }}Count Sum Min Max Buckets
      {{ attr.value.stringValue or attr.value.intValue or attr.value.boolValue or attr.value.doubleValue or attr.value or '' }}{{ format_numeric_value(dp.count) }} {{ format_numeric_value(dp.sum) }} {{ format_numeric_value(dp.min) if dp.min is defined else 'N/A' }} {{ format_numeric_value(dp.max) if dp.max is defined else 'N/A' }} {% if dp.bucketCounts %}{{ dp.bucketCounts }}{% if dp.explicitBounds %} ({{ dp.explicitBounds }}){% endif %}{% else %}N/A{% endif %}
      {% endif %}
    • {% elif metric.exponentialHistogram %}
    • Exponential Histogram (Aggregation: {{ metric.exponentialHistogram.aggregationTemporality }}): {% if metric.exponentialHistogram.dataPoints|length > 0 %} {% set sample_dp = metric.exponentialHistogram.dataPoints[0] %} {% if sample_dp.attributes %} {% for attr in sample_dp.attributes %} {% endfor %} {% endif %} {% for dp in metric.exponentialHistogram.dataPoints %} {% if dp.attributes %} {% for attr in dp.attributes %} {% endfor %} {% endif %} {% endfor %}
      {{ attr.key }}Count Sum
      {{ attr.value.stringValue or attr.value.intValue or attr.value.boolValue or attr.value.doubleValue or attr.value or '' }}{{ format_numeric_value(dp.count) }} {{ format_numeric_value(dp.sum) }}
      {% endif %}
    • {% elif metric.summary %}
    • Summary: {% if metric.summary.dataPoints|length > 0 %} {% set sample_dp = metric.summary.dataPoints[0] %} {% if sample_dp.attributes %} {% for attr in sample_dp.attributes %} {% endfor %} {% endif %} {% for dp in metric.summary.dataPoints %} {% if dp.attributes %} {% for attr in dp.attributes %} {% endfor %} {% endif %} {% endfor %}
      {{ attr.key }}Count Sum Quantiles
      {{ attr.value.stringValue or attr.value.intValue or attr.value.boolValue or attr.value.doubleValue or attr.value or '' }}{{ format_numeric_value(dp.count) }} {{ format_numeric_value(dp.sum) }} {% if dp.quantileValues %} {% for qv in dp.quantileValues %}{{ qv.quantile }}: {{ format_numeric_value(qv.value) }}{% if not loop.last %}, {% endif %}{% endfor %} {% else %}N/A{% endif %}
      {% endif %}
    • {% else %}
    • Unknown metric type.
    • {% endif %}
  • {% endfor %}
{% else %}

No metrics found for this scope.

{% endif %}
{% endfor %} {% else %}

No scopes found for this resource.

{% endif %}
{% endfor %} {% else %}

No metric data available.

{% endif %}