Skip to content
Last9
Book demo

ArgoCD

Send deployment markers to Last9 when ArgoCD syncs an application, so you can correlate Kubernetes deployments with service health, error rates, and APDEX shifts.

The Last9 ArgoCD Integration sends deployment markers to Last9’s Change Events API whenever ArgoCD syncs an application. Every deployment appears as a vertical overlay on your service dashboards — correlated with latency, error rates, and APDEX.

No operator. No sidecar. No Lambda. Two YAML files and ArgoCD’s built-in notification controller handle everything.

Prerequisites

Install

  1. Add your credentials

    # install/secret.yaml
    apiVersion: v1
    kind: Secret
    metadata:
    name: argocd-notifications-secret
    namespace: argocd
    stringData:
    last9-token: <YOUR_LAST9_BEARER_TOKEN>
    last9-org-slug: <YOUR_ORG_SLUG>
    kubectl apply -f install/secret.yaml
  2. Patch argocd-notifications-cm

    kubectl apply -k https://github.com/last9/last9-argocd-integration/install

    This patches the existing argocd-notifications-cm ConfigMap with the Last9 webhook service, notification templates, and triggers. Nothing else in your ArgoCD installation changes.

  3. Subscribe your applications

    Add two annotations to each ArgoCD Application you want to track:

    metadata:
    annotations:
    notifications.argoproj.io/subscribe.last9-on-sync-running.last9: ""
    notifications.argoproj.io/subscribe.last9-on-sync-finished.last9: ""

    Or enable Last9 markers for every application in the cluster at once by adding defaultTriggers to argocd-notifications-cm:

    data:
    defaultTriggers: |
    - last9-on-sync-running
    - last9-on-sync-finished

What gets captured

Two markers per deployment — one when the sync starts, one when it finishes.

AttributeValue
serviceArgoCD application name
revisionGit commit SHA
namespaceDestination namespace
clusterDestination cluster name
projectArgoCD project
repoGit repository URL
sync_statusSucceeded, Failed, or Error (stop marker only)
healthHealthy or Degraded (stop marker only)
initiated_byUsername who triggered the sync
automatedtrue if triggered by auto-sync

Dashboard correlation

Filter your Last9 service dashboards by service=<app-name> to see deployment markers alongside metrics. The revision attribute links each marker to the exact commit that changed behavior.


Troubleshooting

  • No markers appearing

    Check the notifications controller logs:

    kubectl logs -n argocd deployment/argocd-notifications-controller

    Look for last9 in the output. If the webhook is firing but events aren’t appearing, verify the bearer token and org slug in the secret.

  • Duplicate markers

    The triggers use oncePer: app.status.operationState?.syncResult?.revision to deduplicate — each commit SHA fires at most once per trigger. If you see duplicates, check that the Kustomize patch applied cleanly:

    kubectl get cm argocd-notifications-cm -n argocd -o yaml | grep last9
  • Helm users

    If you manage ArgoCD with Helm, add the contents of install/argocd-notifications-cm-patch.yaml under notifications.cm in your values file instead of using Kustomize.

Please get in touch with us on Discord or Email if you have any questions.