Skip to content

Diffs

Ampora offers two different diffs because they answer different questions.

Textual diff

Standard unified diff, line by line, with line numbers. This is what git shows.

  • Use it for: review of the literal text — comments, formatting, whitespace.
  • Bad at: telling you whether the behaviour changed.

Semantic diff

Parses both YAMLs into the collector's component model and diffs the meaning:

  • Components added / removed.
  • Pipeline membership changes (exporters added to traces).
  • Property changes on existing components (hostmetrics collection_interval: 30s → 60s).
  • Connector additions / removals.

A pure formatting change (re-indentation, anchor expansion) shows zero semantic findings. A line-by-line diff that moved a processor from one pipeline to another shows one semantic finding.

This is the diff to use for review. Reviewers should be reading behaviour, not whitespace.

Where diffs appear

  • Configuration → Versions → Compare — between any two versions of the same configuration.
  • Agent details → Effective vs Assigned — between the configuration the agent is assigned to run and the one it reports it is running. Drift detection.
  • Rollout wizard — between the currently-assigned version of the target group and the version the rollout would push.

Reading semantic diffs

Each semantic finding is one of:

  • added — a new component or pipeline edge.
  • removed — a removed component or pipeline edge.
  • modified — a property on an existing component changed.

Each finding has a YAML path (processors.batch.timeout), the before / after values, and a human-readable summary.

Diff vs apply log

A semantic diff describes what would change. The Audit log describes what did change. For incident response you want both: the diff to understand the intent, the audit to confirm it landed.

Limitations

Semantic diff is structural, not behavioural — it can tell you that processors.attributes.actions[3].value changed, but it cannot tell you whether that change drops a span attribute that downstream alerting relies on. That is a property of your backend schema, not of the collector config; reviewers carry it.

Why two diffs?

Textual is what every reviewer is used to. Semantic is what they should read. Showing both, with semantic on the left tab and textual on the right, nudges toward the better default without taking the familiar option away.