Сегодня поделились интересным проектом для маководов. 💻
Итак, если у вас мак, но очень нужны VM-ки на Linux, а пользоваться UI совершенно не хочется. Cпециально для вас решение на мульйон баксов, которое позволит за пару минут натянуть эту историю в консоль и наслаждаться.
🎯️️ Итак, погнали. Поднимем всю эту историю, внутрь воткнем классический nginx и выкинем порт на хостовую машину
Ну и как бы и все! Открываем браузер http://localhost:8081 и у нас готова изолировнная вм за пару минут ( привет vagrant ).
Сам проект тут https://github.com/beringresearch/macpine
Итак, если у вас мак, но очень нужны VM-ки на Linux, а пользоваться UI совершенно не хочется. Cпециально для вас решение на мульйон баксов, которое позволит за пару минут натянуть эту историю в консоль и наслаждаться.
🎯️️ Итак, погнали. Поднимем всю эту историю, внутрь воткнем классический nginx и выкинем порт на хостовую машину
# установим через macpine команды `alpine` и зависимость `qemu`
brew install macpine
# запустим вмку на 10 гигов диска, 4 cpu и 2 гига памяти с именем lol-kek и выкинем SSH порт 2221 на локальный хост. А также дополнительно прокинем 8081 c хоста на 80 порт вм
alpine launch -d 10G -c 4 -m 2048 -n lol-kek -s 2221 -p8081:80
# ну и все можно подключаться и проводить эксперименты. Даже порт не надо указывать, он подхватится автоматом
alpine ssh lol-kek
# ставим nginx
apk update && apk add nginx
# стартуем nginx
/etc/init.d/nginx start
Ну и как бы и все! Открываем браузер http://localhost:8081 и у нас готова изолировнная вм за пару минут ( привет vagrant ).
Сам проект тут https://github.com/beringresearch/macpine
GitHub
GitHub - beringresearch/macpine: Lightweight Linux VMs on MacOS
Lightweight Linux VMs on MacOS. Contribute to beringresearch/macpine development by creating an account on GitHub.
👍4
Привет, всем отличной пятницы. Старайтесь сегодня ничего важного не деплоить, а то выходные длинные и хочется хотя бы прожить спокойно и без инцидентов.
Скинули давеча в чатик такой твит ( https://x.com/sebjvidal/status/1839694113249096052 ). И я подумал, реально же бывает сидишь такой и смотришь на pull request и понимаешь что это кусок говна. С одной стороны ты никогда бы такое и не апрувнул, а с другой бизнес требует катить быстрее. Вздох - выдох, закатываешь глаза и ты ставишь апрув. Просто фильм ужасов.
А почему бы не дать такую кнопку? Я написал шуточное дополнение в хром, которое рядом с кнопкой Approve добавляет Approve, but unhappy with it. Работает довольно просто - в настройках расширения прописывайте дефолтный коммент и при клике на Approve, but unhappy with it он будет комментом добавлять в pr этот текст.
Дополненение: https://chromewebstore.google.com/detail/github-%E2%80%94-unhappy-approve/jjggjkmjjjmfbhfkpjhmhkgkdiibfddl
Исходники: https://github.com/itcaat/github-unhappy-approve
Скинули давеча в чатик такой твит ( https://x.com/sebjvidal/status/1839694113249096052 ). И я подумал, реально же бывает сидишь такой и смотришь на pull request и понимаешь что это кусок говна. С одной стороны ты никогда бы такое и не апрувнул, а с другой бизнес требует катить быстрее. Вздох - выдох, закатываешь глаза и ты ставишь апрув. Просто фильм ужасов.
А почему бы не дать такую кнопку? Я написал шуточное дополнение в хром, которое рядом с кнопкой Approve добавляет Approve, but unhappy with it. Работает довольно просто - в настройках расширения прописывайте дефолтный коммент и при клике на Approve, but unhappy with it он будет комментом добавлять в pr этот текст.
Дополненение: https://chromewebstore.google.com/detail/github-%E2%80%94-unhappy-approve/jjggjkmjjjmfbhfkpjhmhkgkdiibfddl
Исходники: https://github.com/itcaat/github-unhappy-approve
🔥2❤1
Если у вас есть кластера proxmox и вы задумались об автоматической балансировке, то вот тут есть для вас решение https://github.com/gyptazy/ProxLB
Выглядит очень интересно - но сам не тестировал. Может кто то захочет внедрить - расскажите потом как прошло =)
А вообще есть статья у автора https://gyptazy.com/howto-automated-deployment-of-freebsd-vms-in-proxmox-with-proxlb-and-terraform/, там пример с терраформом 🔥
#proxmox #tools
Выглядит очень интересно - но сам не тестировал. Может кто то захочет внедрить - расскажите потом как прошло =)
А вообще есть статья у автора https://gyptazy.com/howto-automated-deployment-of-freebsd-vms-in-proxmox-with-proxlb-and-terraform/, там пример с терраформом 🔥
#proxmox #tools
GitHub
GitHub - gyptazy/ProxLB: ProxLB - An advanced resource scheduler and load balancer for Proxmox clusters.
ProxLB - An advanced resource scheduler and load balancer for Proxmox clusters. - gyptazy/ProxLB
👍2
А если вы уже достигли уровня бог в terraform, то статья как начать писать свои кастомные провайдеры
https://spacelift.io/blog/terraform-custom-provider
#terraform
https://spacelift.io/blog/terraform-custom-provider
#terraform
Spacelift
Terraform Custom Provider - How to Create & Use It
In this tutorial, you’ll learn how to develop a Terraform custom provider and how to use it. See what is required to create one.
🔥2
(сижу пью 🍷 и думаю…) У моих детей есть примерно полтора часа в день на игры за компом. Прямо сейчас они играют с другом по сети в Minecraft ( и что они вообще нашли в этой игре - не понимаю. Играли бы лучше в cs 👴 и желательно в 1.6). Обычно я прихожу и ссаными тряпками гоню от компа 😄 Но вот реально, если я не приду сколько им нужно будет времени понять что уже пора заканчивать? На самом деле в своем детстве, если была возможность я сидел до потери сознания. Имею ли я моральное право их упрекнуть, если сегодня они просидят за компом часов 5?
😁8
Вечная боль - нарисовать схему работы какой то прилы. Идешь в какой нибудь draw.io. Рисуешь там, экспортишь в файл, сохраняешь в репку. Подключаешь в readme.md. И так по кругу, если что то поменялось. Но оказывается уже есть решение 🦸♂️
Топовая находка этой недели - https://marketplace.visualstudio.com/items?itemName=pomdtr.excalidraw-editor
Экстеншен позволяет рисовать офигенские схемки (точно также как на их сайте https://excalidraw.com/), но прям в vs code.
Как это работает:
1️⃣ Создаем файлик с именем .excalidraw.png в конце (Например в schema.excalidraw.png)
2️⃣ Внутри vscode открывается редактор
3️⃣ Рисуем/редачим схемку и сохраняем.
4️⃣ В результате это будет обычная png, которая откроется любым просмотрщиком.
В readme.md добавляем эту же png и кафуем. Теперь достаточно прям в vscode отредактировать схему, сохранить и пушнуть. 🔥
Топовая находка этой недели - https://marketplace.visualstudio.com/items?itemName=pomdtr.excalidraw-editor
Экстеншен позволяет рисовать офигенские схемки (точно также как на их сайте https://excalidraw.com/), но прям в vs code.
Как это работает:
1️⃣ Создаем файлик с именем .excalidraw.png в конце (Например в schema.excalidraw.png)
2️⃣ Внутри vscode открывается редактор
3️⃣ Рисуем/редачим схемку и сохраняем.
4️⃣ В результате это будет обычная png, которая откроется любым просмотрщиком.
В readme.md добавляем эту же png и кафуем. Теперь достаточно прям в vscode отредактировать схему, сохранить и пушнуть. 🔥
🔥14
✋ Недавно в twitter спрашивал о том, есть ли практика ведения посмортемов. Оказалось, что не такой большой процент заботит эта история. И были даже кейсы, когда просили лида внедрить такую практику, но лид сливался. 😱 Давайте сегодня чуть ближе познакомимся с этим очень важным и нужный инструмент.
Постмортем ([лат.] «после смерти») — это анализ инцидента, произошедшего в системе, и его последствий. В сфере DevOps/SRE равно как и в разработке продукта постмортемы играют ключевую роль для повышения устойчивости и надежности инфраструктуры. Выделим несколько ключевых моментов о постмортемах и как сделать их полезным инструментом для роста вашей команды.
💀 Принципы «Blameless» постмортемов
Ключевое правило постмортемов — это принцип «без обвинений». Цель анализа инцидента — понять, что пошло не так, выявить первопричину и разработать меры для предотвращения подобных случаев в будущем. Важно не сосредотачиваться на том, кто допустил ошибку, а на том, что можно улучшить в процессах и инструментах.
Для создания здоровой культуры в компании постмортемы должны проводиться без поиска виноватых. Это не место для обвинений, а возможность совместного улучшения процессов и повышения надежности всей системы. Такой подход:
- Увеличивает доверие в команде, так как инженеры чувствуют себя безопасно, высказывая свои мысли и идеи.
- Способствует честному анализу инцидентов и их реальных причин.
- Позволяет всей команде извлечь ценные уроки и избежать подобных проблем в будущем.
💀Составляющие хорошего постмортема
Успешный постмортем состоит из нескольких важных этапов:
1️⃣ Описание инцидента. Кратко и четко изложите, что произошло. Например: «API перестало отвечать на запросы из-за превышения лимита соединений в базе данных».
2️⃣ Причины. Опишите, какие факторы привели к инциденту. Это может быть комбинация технических проблем, недоработок в процессах или неожиданного поведения системы.
3️⃣ Реакция команды. Зафиксируйте действия, которые предпринимались для устранения проблемы, и как быстро был восстановлен сервис.
4️⃣ Уроки. Что можно улучшить в будущем? Нужно ли пересмотреть мониторинг, переработать конфигурации или оптимизировать процессы развертывания?
5️⃣ Действия на будущее. Определите конкретные шаги, которые помогут избежать повторения инцидента. Это может включать добавление мониторинга для критичных метрик, улучшение документации или изменение архитектурных решений.
💀Автоматизация и инструментальная поддержка
Для постмортемов часто используют автоматизированные системы для сбора данных и логов, чтобы сэкономить время и не упустить важные детали инцидента. Рекомендуется настроить процесс так, чтобы все метрики, логи и события автоматически собирались в едином хранилище, что значительно упростит анализ. Также популярны инструменты для отслеживания выполнения всех шагов плана улучшений, определенных по результатам постмортема. Хотя отсутствие метрик и логов как раз может стать кейпоинтом в одном из ваших первых посмортемов. =)
💀 Ретроспективы — следите за прогрессом
Задача лида команды после проведения постмортема провести ретроспективу через определенное время. Это позволит оценить, были ли внедрены предложенные улучшения и помогли ли они. Если ситуация повторилась, это повод углубиться в анализ и пересмотреть ранее принятые меры.
💀 Польза посмортемов для всех
Постмортем ([лат.] «после смерти») — это анализ инцидента, произошедшего в системе, и его последствий. В сфере DevOps/SRE равно как и в разработке продукта постмортемы играют ключевую роль для повышения устойчивости и надежности инфраструктуры. Выделим несколько ключевых моментов о постмортемах и как сделать их полезным инструментом для роста вашей команды.
💀 Принципы «Blameless» постмортемов
Ключевое правило постмортемов — это принцип «без обвинений». Цель анализа инцидента — понять, что пошло не так, выявить первопричину и разработать меры для предотвращения подобных случаев в будущем. Важно не сосредотачиваться на том, кто допустил ошибку, а на том, что можно улучшить в процессах и инструментах.
Для создания здоровой культуры в компании постмортемы должны проводиться без поиска виноватых. Это не место для обвинений, а возможность совместного улучшения процессов и повышения надежности всей системы. Такой подход:
- Увеличивает доверие в команде, так как инженеры чувствуют себя безопасно, высказывая свои мысли и идеи.
- Способствует честному анализу инцидентов и их реальных причин.
- Позволяет всей команде извлечь ценные уроки и избежать подобных проблем в будущем.
💀Составляющие хорошего постмортема
Успешный постмортем состоит из нескольких важных этапов:
1️⃣ Описание инцидента. Кратко и четко изложите, что произошло. Например: «API перестало отвечать на запросы из-за превышения лимита соединений в базе данных».
2️⃣ Причины. Опишите, какие факторы привели к инциденту. Это может быть комбинация технических проблем, недоработок в процессах или неожиданного поведения системы.
3️⃣ Реакция команды. Зафиксируйте действия, которые предпринимались для устранения проблемы, и как быстро был восстановлен сервис.
4️⃣ Уроки. Что можно улучшить в будущем? Нужно ли пересмотреть мониторинг, переработать конфигурации или оптимизировать процессы развертывания?
5️⃣ Действия на будущее. Определите конкретные шаги, которые помогут избежать повторения инцидента. Это может включать добавление мониторинга для критичных метрик, улучшение документации или изменение архитектурных решений.
💀Автоматизация и инструментальная поддержка
Для постмортемов часто используют автоматизированные системы для сбора данных и логов, чтобы сэкономить время и не упустить важные детали инцидента. Рекомендуется настроить процесс так, чтобы все метрики, логи и события автоматически собирались в едином хранилище, что значительно упростит анализ. Также популярны инструменты для отслеживания выполнения всех шагов плана улучшений, определенных по результатам постмортема. Хотя отсутствие метрик и логов как раз может стать кейпоинтом в одном из ваших первых посмортемов. =)
💀 Ретроспективы — следите за прогрессом
Задача лида команды после проведения постмортема провести ретроспективу через определенное время. Это позволит оценить, были ли внедрены предложенные улучшения и помогли ли они. Если ситуация повторилась, это повод углубиться в анализ и пересмотреть ранее принятые меры.
💀 Польза посмортемов для всех
🔥4👏1
✅ Инженеры могут улучшить качество своей работы за счет углубленного анализа причинных факторов инцидентов.
✅ Помогают выявить недостатки в коде, которые могут вызвать инциденты в будущем, и дают возможность быстро их устранить.
✅ Это отличная возможность для разработки новых инструментов и процессов, улучшающих стабильность системы.
✅ Позволяют улучшать процессы мониторинга и алертинга, что предотвращает повторение проблем.
✅ Дают новые знания о том, как системы ведут себя в реальных условиях, и что можно улучшить в архитектуре и инфраструктуре.
✅ Помогают повысить общую надежность системы и уверенность в поддержке её работы при высоких нагрузках.
✅ Анализ инцидентов снижает риски повторных сбоев, что напрямую влияет на качество предоставляемых услуг и удовлетворенность клиентов.
✅ Понимание корневых причин и внедрение улучшений обеспечивает стабильную работу сервисов, что способствует росту репутации компании.
✅ Шаринг знаний между котлегами.
💀💀💀 Кстати, деплой в пятницу, как раз может стать поводом написать свой первый посмотрем 💀💀💀
✅ Помогают выявить недостатки в коде, которые могут вызвать инциденты в будущем, и дают возможность быстро их устранить.
✅ Это отличная возможность для разработки новых инструментов и процессов, улучшающих стабильность системы.
✅ Позволяют улучшать процессы мониторинга и алертинга, что предотвращает повторение проблем.
✅ Дают новые знания о том, как системы ведут себя в реальных условиях, и что можно улучшить в архитектуре и инфраструктуре.
✅ Помогают повысить общую надежность системы и уверенность в поддержке её работы при высоких нагрузках.
✅ Анализ инцидентов снижает риски повторных сбоев, что напрямую влияет на качество предоставляемых услуг и удовлетворенность клиентов.
✅ Понимание корневых причин и внедрение улучшений обеспечивает стабильную работу сервисов, что способствует росту репутации компании.
✅ Шаринг знаний между котлегами.
💀💀💀 Кстати, деплой в пятницу, как раз может стать поводом написать свой первый посмотрем 💀💀💀
🔥3
Накатал некий аналог service discovery для VMs и Nodes в кластере proxmox ( если вы не юзаете SDN). Принцип работы максимально простой. Фигачите обслуживание зоны (например proxmox.example.com) в proxmox-service-discovery (желательно в 2 экземплярах конечно - ну вы поняли почему). Дальше тула забирает по API все нужные данные для отдачи IP адреса и отдается по 53 (UDP, DNS)
Мапа из A записей в памяти собирается из нод, имен VM и тегов ( если нужно )
Сама тула тут https://github.com/nrukavkov/proxmox-service-discovery
Мапа из A записей в памяти собирается из нод, имен VM и тегов ( если нужно )
Сама тула тут https://github.com/nrukavkov/proxmox-service-discovery
🔥3
В эту прекрасную пятницу ( а прекрасная она потому что на следующей неделе я ухожу в отпуск ), делюсь порцией крутых статей и видосов
1️⃣ https://habr.com/ru/articles/852536/ - Maxpain рассказывает как искал нашел баг в параметре ядра linux и раскопал причину медленной работы дисков в Talos Linux. Много графики, полезных тулов и в целом читается на одном дыхании.
2️⃣ https://github.com/rcoh/angle-grinder - Angle grinder предназначен для случаев, когда у вас нет данных в graphite/honeycomb/kibana/sumologic/splunk/и т.д., но вы все равно хотите иметь возможность выполнять сложную аналитику. Позволяет вам в реальном времени анализировать, агрегировать, суммировать, усреднять, находить минимум и максимум, процентиль и сортировать ваши данные.
3️⃣ https://andrewlock.net/working-with-stacked-branches-in-git-is-easier-with-update-refs/ - Andrew Locks рассказал про фичу --update-refs для ребейзов в Git 2.38. Автор показывает различные сценарии использования --update-refs. Если вы хотите чего то нового в git - то вот оно!
4️⃣ Ну и из лайтового могу порекомендовать просмотреть видос на 20 минут про Redis. Автор (канал suchkov tech) отлично показал на примере как работает редиска на живом приложении и как в принципе кеш позволяет ускорить работу приложения минимум в несколько раз https://www.youtube.com/watch?v=QpBaA6B1U90
Ну а на этом все - всем спасибо и хорошей пятницы! 🤗️️️️️️
1️⃣ https://habr.com/ru/articles/852536/ - Maxpain рассказывает как искал нашел баг в параметре ядра linux и раскопал причину медленной работы дисков в Talos Linux. Много графики, полезных тулов и в целом читается на одном дыхании.
2️⃣ https://github.com/rcoh/angle-grinder - Angle grinder предназначен для случаев, когда у вас нет данных в graphite/honeycomb/kibana/sumologic/splunk/и т.д., но вы все равно хотите иметь возможность выполнять сложную аналитику. Позволяет вам в реальном времени анализировать, агрегировать, суммировать, усреднять, находить минимум и максимум, процентиль и сортировать ваши данные.
3️⃣ https://andrewlock.net/working-with-stacked-branches-in-git-is-easier-with-update-refs/ - Andrew Locks рассказал про фичу --update-refs для ребейзов в Git 2.38. Автор показывает различные сценарии использования --update-refs. Если вы хотите чего то нового в git - то вот оно!
4️⃣ Ну и из лайтового могу порекомендовать просмотреть видос на 20 минут про Redis. Автор (канал suchkov tech) отлично показал на примере как работает редиска на живом приложении и как в принципе кеш позволяет ускорить работу приложения минимум в несколько раз https://www.youtube.com/watch?v=QpBaA6B1U90
Ну а на этом все - всем спасибо и хорошей пятницы! 🤗️️️️️️
👍4🔥2🦄1
Отпуск “потрачено”. Press F
👨💻 Нашел хипстерский htop под macos https://github.com/Abdenasser/neohtop. Пользоваться, конечно не буду, старый добрый htop все равно лучше - все таки в консоли привычнее. Но дизайн прикольный. А вам как?
#tools #macos
👨💻 Нашел хипстерский htop под macos https://github.com/Abdenasser/neohtop. Пользоваться, конечно не буду, старый добрый htop все равно лучше - все таки в консоли привычнее. Но дизайн прикольный. А вам как?
#tools #macos
👍4👏1
Сначала Линупс Торвальдс выпилил код российских разработчиков из ядра. Теперь вот тут отклонили PR за русскость https://github.com/reactor/reactor-core/pull/3897#issuecomment-2460103961.
А сегодня я орнул. Короче, есть такая прикольная штука для доставки миграций в базы bytebase зовется. Штука реально крутая, работать можно практически с любой субд, есть gitops, разные флоу, роли права доступа и тд. Ну красота в-общем. Но есть один косячек который глаз мозолит - поскольку у нас оно запущено в кубе, то конечно хочется что бы контейнер bytebase отдавал в логи в json. Пошел я искать как можно это реализовать и нашел кусочек недокументированного кода, где задать вывод лога в json можно сделать через параметр saas. Причем параметр влияет еще на кучу всего в приложении и юзается для их клаудовой версии. Ну думаю "непорядок" - надо запилить пулик и вынести все в отдельный параметр.
Закидываю пулик https://github.com/bytebase/bytebase/pull/14375 и получают фейл чекам verification/cla-signed и коммент
We require contributors to sign our Contributor License Agreement, and we don't have yours on file. In order for us to review and merge your code, please sign CLA and add your name to contributors list.
Там ссылка на гугл форму что я согласен контибутить. А также надо заполнить из какой я страны, мой адрес и почта. И надо добавить себя отдельный реп с контибюторами.
OpenSource явно свернул куда то не туда, скоро скрин паспорта походу надо приложить будет. 💩 А так инструмент, конечно, классный - рекомендую кто не юзал. Всем хорошей пятницы.
А сегодня я орнул. Короче, есть такая прикольная штука для доставки миграций в базы bytebase зовется. Штука реально крутая, работать можно практически с любой субд, есть gitops, разные флоу, роли права доступа и тд. Ну красота в-общем. Но есть один косячек который глаз мозолит - поскольку у нас оно запущено в кубе, то конечно хочется что бы контейнер bytebase отдавал в логи в json. Пошел я искать как можно это реализовать и нашел кусочек недокументированного кода, где задать вывод лога в json можно сделать через параметр saas. Причем параметр влияет еще на кучу всего в приложении и юзается для их клаудовой версии. Ну думаю "непорядок" - надо запилить пулик и вынести все в отдельный параметр.
Закидываю пулик https://github.com/bytebase/bytebase/pull/14375 и получают фейл чекам verification/cla-signed и коммент
We require contributors to sign our Contributor License Agreement, and we don't have yours on file. In order for us to review and merge your code, please sign CLA and add your name to contributors list.
Там ссылка на гугл форму что я согласен контибутить. А также надо заполнить из какой я страны, мой адрес и почта. И надо добавить себя отдельный реп с контибюторами.
OpenSource явно свернул куда то не туда, скоро скрин паспорта походу надо приложить будет. 💩 А так инструмент, конечно, классный - рекомендую кто не юзал. Всем хорошей пятницы.
😱3🤯2
Давайте познакомимся с таким инструментом как grafana k6. С помощью него вы можете производительность ваших приложений и тестирование хаоса (Это метод, используемый для проверки устойчивости программных систем путем внесения непредвиденных сбоев или сбоев. Целью хаотического тестирования является выявление слабых мест и повышение устойчивости приложения)
Основной фичей инструмента является то, что вы можете писать довольно сложные сценарии тестирования используя javascript. k6 легко запускается из командной строки и хорошо интегрируется в CI/CD пайплайны, а также эмулирует работу виртуальных пользователей.
Ниже пример моего кейса. Надо было протестировать как себя ведет балансировщик. Поскольку балансер еще работает не в боевом режиме, надо отправить на IP адрес балансера заголовок с нужным хостом и игнорированием https. В примере мы в течении 30s плавно повышаем нагрузку до 1000 виртуальных пользователей, держим 30 секунд и далее в течении 20 секунд уменьшаем нагрузку до 0.
В результате вы получите супер подробный отчет по производительности.
На самом деле это довольно базовый сценарий, но сила k6 в возможности наращивать и усложнять логику, ограниченную только вашей фантазией. Примеры использования вы найдете в официальной документации https://grafana.com/docs/k6/next/get-started/running-k6/
Основной фичей инструмента является то, что вы можете писать довольно сложные сценарии тестирования используя javascript. k6 легко запускается из командной строки и хорошо интегрируется в CI/CD пайплайны, а также эмулирует работу виртуальных пользователей.
Ниже пример моего кейса. Надо было протестировать как себя ведет балансировщик. Поскольку балансер еще работает не в боевом режиме, надо отправить на IP адрес балансера заголовок с нужным хостом и игнорированием https. В примере мы в течении 30s плавно повышаем нагрузку до 1000 виртуальных пользователей, держим 30 секунд и далее в течении 20 секунд уменьшаем нагрузку до 0.
import http from "k6/http";
import { check, sleep } from "k6";
// Test configuration
export const options = {
thresholds: {
// Assert that 99% of requests finish within 3000ms.
http_req_duration: ["p(99) < 3000"],
},
stages: [
{ duration: "10s", target: 1000 },
{ duration: "30s", target: 1000 },
{ duration: "20s", target: 0 },
],
// ignore ssl valudation
insecureSkipTLSVerify: true,
};
// Simulated user behavior
export default function () {
const url = "https://my.loadbalancer.ip.address"; // Set load balancer host
// set header hosts
const headers = {
Host: "example.com",
};
let res = http.get(url, { headers });
check(res, { "status was 200": (r) => r.status == 200 });
sleep(1);
}
В результате вы получите супер подробный отчет по производительности.
На самом деле это довольно базовый сценарий, но сила k6 в возможности наращивать и усложнять логику, ограниченную только вашей фантазией. Примеры использования вы найдете в официальной документации https://grafana.com/docs/k6/next/get-started/running-k6/
👍4🔥2🆒1
Нашел консольный аналог postman - как вам? По-моему выглядит круто, там даже command palette есть 🤯Правда ставится через uv. 🙁
https://github.com/darrenburns/posting
#tools
https://github.com/darrenburns/posting
#tools
👍5🔥2
Мониторинг и алертинг - это база. Без них не может нормально ехать ни один продукт и ни один бизнес. Если говорить про IT, то чтобы иметь полную картину у вас должны быть:
🟢 Infrastructure-related alerts - например, высокая утилизация CPU на ноде
🟢 Application-related alerts - например, прилка начала сыпать 500-ми ошибками
🟢 Business-related alerts - например, снижение конверсии
✍️ Давайте разберем простой кейс, вам прилетел алерт на CPU от ноды с postre в проде. Дежурный инженер открывает борду в grafana ( или zabbix ), смотрит какие то общие показатели. Потом подключается к базе, смотрит какие запросы сейчас обрабатываются, читает логи и тд. И принимает дальнейшие решения по тому в кого эскалировать проблему или решает вопрос сам. И вот этот порядок действий практически всегда один и тот же.
🔛 Как было бы круто дообогатить алерт уже подготовленной информацией. Например, получить вместе с алертом список выполняющихся сейчас запросов в базе и их потребление по ресурсам. (Например, через
🧠Вот ребята из keephq тоже так подумали и запилили просто офигенскую прилу, добавив нереальное количество интеграций (провайдеров), которые можно интегрировать в различные флоу обработки алертов
Просто взгляните на список провайдеров: AKS, AppDynamics, Auth0, Axiom, Azure, BigQuery, Centreon, Chat, Checkmk, Cilium, Clickhouse, Cloud, Cloudwatch, Coralogix, Datadog, Discord, Elastic, GCP, GKE, GitHub, GitLab, Google, Grafana, Graylog, Incident, Jira, Kafka, Kubernetes, Linear, LinearB, Mailchimp, Manager, Mattermost, Microsoft, MongoDB, Monitor, Monitoring, MySQL, Netdata, New, Now, On-Prem, OnCall, OpenAI, OpenObserve, Openshift, OpsGenie, PagerDuty, PagerTree, Pipelines, Planner, PostgreSQL, Pushover, QuickChart, Redmine, Relic, Resend, Rollbar, SIGNL4, SMTP, SSH, SendGrid, Service, SignalFx, Slack, Snowflake, Splunk, Squadcast, Statuscake, SumoLogic, Teams, Telegram, Trello, Twilio, UptimeKuma, Webhook, Zenduty
https://github.com/keephq/keep
Я пока сам не тестровал, но выглядит это просто 🔥 В ближайшее время буду поднимать и тестировать, а результатами поделюсь с вами 👍
🟢 Infrastructure-related alerts - например, высокая утилизация CPU на ноде
🟢 Application-related alerts - например, прилка начала сыпать 500-ми ошибками
🟢 Business-related alerts - например, снижение конверсии
✍️ Давайте разберем простой кейс, вам прилетел алерт на CPU от ноды с postre в проде. Дежурный инженер открывает борду в grafana ( или zabbix ), смотрит какие то общие показатели. Потом подключается к базе, смотрит какие запросы сейчас обрабатываются, читает логи и тд. И принимает дальнейшие решения по тому в кого эскалировать проблему или решает вопрос сам. И вот этот порядок действий практически всегда один и тот же.
🔛 Как было бы круто дообогатить алерт уже подготовленной информацией. Например, получить вместе с алертом список выполняющихся сейчас запросов в базе и их потребление по ресурсам. (Например, через
SELECT pid AS process_id, query AS active_query FROM pg_stat_activity WHERE state = 'active'; )🧠Вот ребята из keephq тоже так подумали и запилили просто офигенскую прилу, добавив нереальное количество интеграций (провайдеров), которые можно интегрировать в различные флоу обработки алертов
Просто взгляните на список провайдеров: AKS, AppDynamics, Auth0, Axiom, Azure, BigQuery, Centreon, Chat, Checkmk, Cilium, Clickhouse, Cloud, Cloudwatch, Coralogix, Datadog, Discord, Elastic, GCP, GKE, GitHub, GitLab, Google, Grafana, Graylog, Incident, Jira, Kafka, Kubernetes, Linear, LinearB, Mailchimp, Manager, Mattermost, Microsoft, MongoDB, Monitor, Monitoring, MySQL, Netdata, New, Now, On-Prem, OnCall, OpenAI, OpenObserve, Openshift, OpsGenie, PagerDuty, PagerTree, Pipelines, Planner, PostgreSQL, Pushover, QuickChart, Redmine, Relic, Resend, Rollbar, SIGNL4, SMTP, SSH, SendGrid, Service, SignalFx, Slack, Snowflake, Splunk, Squadcast, Statuscake, SumoLogic, Teams, Telegram, Trello, Twilio, UptimeKuma, Webhook, Zenduty
https://github.com/keephq/keep
Я пока сам не тестровал, но выглядит это просто 🔥 В ближайшее время буду поднимать и тестировать, а результатами поделюсь с вами 👍
🔥11👍1🍓1
Всем привет! А давайте разыграем новенькую обложку на паспорт с лого github 🍾
Оставляй коммент "хотеть это" (или любой другой) и в понедельник выберем победителя великим рандомом. 😁
Оставляй коммент "хотеть это" (или любой другой) и в понедельник выберем победителя великим рандомом. 😁
👍3🐳2
