Перейти к содержанию

CamundaCanaryOperateVisibilityFailed

Что означает алерт

Алерт срабатывает, если канарейка Camunda больше 10 минут не видит созданный process instance в индексах operate-list-view*.

Обычно это означает проблему на цепочке Zeebe -> Operate importer -> operate индексы.

Быстрый чек

NS=camunda   # для prod при необходимости: camunda-prod
  1. Открыть доступ к ES и проверить health:
kubectl -n "$NS" port-forward svc/camunda-elasticsearch 9200:9200
curl -s localhost:9200/_cluster/health?pretty
  1. Проверить ключ последнего канареечного процесса:
CANARY_DEPLOY=$(kubectl -n "$NS" get deploy -l app.kubernetes.io/component=es-operate-canary -o jsonpath='{.items[0].metadata.name}')
kubectl -n "$NS" port-forward deploy/"$CANARY_DEPLOY" 18080:8080
KEY=$(curl -s localhost:18080/metrics | awk '/camunda_canary_last_instance_key/{print $2}' | tail -1)
echo "$KEY"
  1. Сравнить наличие instance в Zeebe и Operate индексах:
# Zeebe record
curl -s -X POST localhost:9200/zeebe-record_process-instance*/_search \
  -H 'Content-Type: application/json' \
  -d "{\"size\":1,\"query\":{\"term\":{\"value.processInstanceKey\":$KEY}}}" | jq '.hits.total'

# Operate list view
curl -s -X POST localhost:9200/operate-list-view*/_search \
  -H 'Content-Type: application/json' \
  -d "{\"size\":1,\"query\":{\"bool\":{\"should\":[{\"term\":{\"key\":$KEY}},{\"term\":{\"id\":\"$KEY\"}}],\"minimum_should_match\":1}}}" | jq '.hits.total'

Если в Zeebe есть, а в Operate нет -> проблема на стороне Operate importer/индексов.

Что делать

  1. Проверить логи Operate:
kubectl -n "$NS" logs deploy/camunda-operate --tail=300 | rg -i 'error|exception|import|elasticsearch|failed'
  1. Проверить доступность ES из Operate pod:
POD=$(kubectl -n "$NS" get pod -l app.kubernetes.io/component=operate -o jsonpath='{.items[0].metadata.name}')
kubectl -n "$NS" exec "$POD" -c istio-proxy -- \
  curl -sS -o /dev/null -w '%{http_code}\n' http://camunda-elasticsearch:9200/_cluster/health
  1. При зависании импортера перезапустить Operate:
kubectl -n "$NS" rollout restart deploy/camunda-operate
kubectl -n "$NS" rollout status deploy/camunda-operate
  1. Если проблема массовая по индексам:
  2. проверить shard pressure и состояние ES;
  3. проверить, что нет блокировок индексов (read_only_allow_delete);
  4. проверить, что места на диске достаточно.

Критерий закрытия

  1. Канарейка стабильно показывает camunda_canary_stage_success{stage="operate"} = 1.
  2. CamundaCanaryOperateVisibilityFailed перешел в resolved.
  3. Ручной тестовый процесс появляется в Operate.