Observability

  • Changed

    • Kubernetes and AWS cluster info dashboards: CPU and network rate panels now use $__rate_interval instead of a fixed 3m window, so they stay smooth whatever the cAdvisor scrape interval.

    Fixed

    • validate-dashboards reads the team list from giantswarm/github with a read-only token of the heraldbot App instead of architectbot’s expired ISSUE_AUTOMATION token, and runs on changes to its own workflow file (the path filter missed the leading dot).
    • Fix Grafana Cloud dashboard backup scripts failing with newer curl versions.

    Removed

    • Remove Kong dashboards.
  • Changed

    • Update alloy apps to 0.25.0 (Alloy v1.21.3).
    • mimir.rules.kubernetes now recovers after a Mimir outage during a leader change.
    • loki_write_* metrics no longer carry the tenant label.
  • Changed

    • Override CAdvisor default scrape interval from 10s to 60s in kube-prometheus-stack.
  • Changed

    • Upgrade Alloy upstream chart from 1.13.0 to 1.15.0 (CHANGELOG)
      • This bumps the version of Alloy from 1.20.0 to 1.21.3 (CHANGELOG).
      • Alloy Breaking changes
        • [loki.write] A wal block with enabled = true requires --stability.level=experimental.
        • [loki.write] Metrics no longer carry the tenant label.
        • [otelcol.receiver.kafka, otelcol.exporter.kafka] metadata > retry > max_retries defaults to 20 and is applied.
        • [otelcol.connector.signaltometrics] error_mode defaults to ignore.
        • [prometheus.exporter.catchpoint] The experimental component is removed.
        • See Alloy v1.21.0 release notes
      • Update prometheus-config-reloader from v0.94.0 to v0.94.2.
      • Add image.distroless, alloy.resizePolicy and configReloader.resizePolicy values.

    Fixed

    • mimir.rules.kubernetes recovers after a restart while Mimir is unreachable. It no longer stays unhealthy until the next pod restart (grafana/alloy#7554).
  • Changed

    • Upgrade the upstream loki chart from 18.13.7 to 20.0.2 (Loki 3.7.9).
    • Breaking: The upstream chart rejects unknown keys under loki. Remove any key the upstream chart does not define.
    • Raise the loki-sc-rules sidecar memory limit from 100Mi to 128Mi.
    • Raise the loki-sc-rules sidecar CPU limit from 100m to 500m.
    • Breaking: The upstream chart no longer bundles MinIO. Remove loki.minio. examples/values-eks-testing.yaml deploys RustFS as test object storage.
  • Changed

    • Upgrade grafana chart: 13.5.1 => 14.1.0
    • Set sidecar sizeLimit defaults to "" to match the upstream values schema.
    • Fix appVersion: 13.2.0 => 13.2.4
  • Fixed

    • The memcached and memcached-exporter images resolve to gsoci.azurecr.io/giantswarm/.

    Changed

    • Breaking: Loki now uses the thanos objstore client (loki.loki.storage.use_thanos_objstore: true). Configure the store in loki.loki.storage.object_store (type, s3, azure, gcs). Loki ignores loki.loki.storage.s3 and loki.loki.storage.azure. Set use_thanos_objstore: false to keep the previous client.
      • S3 needs object_store.s3.endpoint, for example s3.eu-west-1.amazonaws.com.
      • Azure Workload Identity: drop useFederatedToken and leave object_store.azure.account_key empty.
      • Bucket and container names still come from loki.loki.storage.bucketNames. Stored data stays readable: object paths do not change.
    • Disable the chunks and results caches by default.

    Added

    • Add gatewayRoute.internalRoute, an in-cluster copy of additionalRules. Disabled by default.
  • Fixed

    • Package the matching architecture-specific binary in container images, fixing ARM64 startup failures.
    • [Helm] Fixed noisy Helm diffs caused by .Release.Revision changing on every upgrade. Release revision is already tracked in Helm release metadata.
  • Added

    • Add SBOM Advisories dashboard to the Giant Swarm Security organization: images still failing an sbom-advisory-operator advisory (eMudhra CA compromise by default), grouped by the fix.
  • Changed

    • !Breaking change: Turn apps.<appName>.dependsOn from a list into a map from dependency name to true/false, so that a provider can turn off a single dependency (for example kyverno-crds on clusters without the security bundle) instead of overriding the whole list.

    Added

    • KSM custom resource state: Add status_parent_accepted and status_parent_resolved_refs gauges for Gateway API HTTPRoute, one series per parent with the condition reason as label.
    • KSM custom resource state: Add target_info and status_ancestor_accepted metrics for Envoy Gateway SecurityPolicy, BackendTrafficPolicy, ClientTrafficPolicy and EnvoyExtensionPolicy.