А давненько не было лонгридов.
Три дашборда на границе Grafana
Часть 1 из 3.
У нас был дашборд
service-metrics-overview, который работал с Loki. Пришло время мигрировать на VictoriaLogs.
Чтобы не ломать продакшен, я сделал всё по уму: создал копию дашборда с новым UID
service-metrics-overview-vl-draft и пометкой "[VictoriaLogs Draft]" в названии.Пару недель работал над ним параллельно с основным.
Переписывал запросы, проверял, что данные сходятся.
Всё работало.
Старый дашборд на Loki, новый на VictoriaLogs - оба живут рядом, никому не мешают.
Когда draft был готов, убрал из названия "Draft", поменял UID на
service-metrics-overview-vl. Ещё через неделю решили, что суффикс
-vl не нужен - пусть будет просто service-metrics-overview, как раньше. Старый Loki-дашборд к тому моменту уже удалили.Меняю в JSON:
"title": "Service Metrics Overview [VictoriaLogs Draft]"
на
"title": "Service Metrics Overview [VictoriaLogs]"
И UID с
service-metrics-overview-vl-draft на service-metrics-overview.Коммит, пуш, ArgoCD синкается.
Зелёненькое. Красота.
Иду пить чай.
А, нет, не иду, коллеги пишут, что многое не работает, ссылки ведут на старую/поломанную борду.
Иду в Grafana проверить.
А там старый дашборд. С "Draft" в названии.
И рядом ещё какие-то СТАРЫЕ версии.
И переменная
loki висит, хотя я её точно убирал.Эээ, а я вообще смеержил в main ветку?
Да, смержил, вижу новый код в git.
Первая мысль - может ArgoCD не синканул?
argocd app get dashboards --refresh
Всё синхронизировано.
Статус: Healthy, Synced.
Странно.
Может ConfigMap в кубернетисе не обновился?
kubectl get configmap -n grafana dashboards-myapp-service-metrics-common -o yaml | tail -20
Смотрю - там новый JSON.
Без "Draft". Всё верно.
Ничего старого.
Может в поде Grafana старый файл закэшировался?
kubectl exec -n grafana deployment/prod-region1-grafana -c grafana -- tail -5 /tmp/dashboards/MyApp/service-metrics-overview.json
Нет, файл тоже новый. UID правильный. Title без "Draft".
Может другие файлы рядом лежат и он их синкает?
Все файлы внутри пода проверил - не, только новые тут.
Проверил во второй реплике POD Grafana -так же только новые дашборды.
Бред.
Чего имеем:
- в гите есть изменения, старых дашбордов нет
- ConfigMap правильный
- файл в поде правильный
а в UI - старое.
Что-то не сходится.
Что я упускаю?