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
- ArgoCD with the notifications controller installed
- A Last9 account with a bearer token (write scope). See Getting Started with API to generate one.
- Your Last9 organization slug (the
{org}segment in your Last9 dashboard URL).
Install
-
Add your credentials
# install/secret.yamlapiVersion: v1kind: Secretmetadata:name: argocd-notifications-secretnamespace: argocdstringData:last9-token: <YOUR_LAST9_BEARER_TOKEN>last9-org-slug: <YOUR_ORG_SLUG>kubectl apply -f install/secret.yaml -
Patch argocd-notifications-cm
kubectl apply -k https://github.com/last9/last9-argocd-integration/installThis patches the existing
argocd-notifications-cmConfigMap with the Last9 webhook service, notification templates, and triggers. Nothing else in your ArgoCD installation changes. -
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
defaultTriggerstoargocd-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.
| Attribute | Value |
|---|---|
service | ArgoCD application name |
revision | Git commit SHA |
namespace | Destination namespace |
cluster | Destination cluster name |
project | ArgoCD project |
repo | Git repository URL |
sync_status | Succeeded, Failed, or Error (stop marker only) |
health | Healthy or Degraded (stop marker only) |
initiated_by | Username who triggered the sync |
automated | true 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-controllerLook for
last9in 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?.revisionto 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.yamlundernotifications.cmin your values file instead of using Kustomize.
Please get in touch with us on Discord or Email if you have any questions.