LazyJournal - это терминальный пользовательский интерфейс (TUI) для journalctl, логов файловой системе и контейнеров Docker для быстрого просмотра и фильтрации, написанный на языке Go с использованием библиотеки gocui.
— Простая установка, для запуска достаточно загрузить в систему один исполняемый файл без зависимостей.
— Проект вдохновлен работами Jesse Duffield, по этому интерфейс будет знаком всем тем, кто уже использует LazyDocker и LazyGit.
— Для всех журналов присутствует возможность динамической фильтрации вывода с поддержкой нечеткого поиска (поиск всех фраз, разделенных пробелом в любом месте строки) и регулярных выражений (в стиле fzf и grep), а также подсветкой найденных слов.
— Позволяет получить список всех доступных журналов юнитов из journalctl (используется для чтения логов из подсистемы systemd).
— Возможность просматривать все доступные лог-файлы из каталога /var/log с сортировкой по дате изменения (например, для Apache, Nginx или СУБД), включая доступ к архивным логам.
— Поддержка логов контейнеров Docker.
— Проект будет полезен в первую очередь для системных администраторов Linux, больше не нужно вручную искать журналы в системе и каждый раз вызывать grep.
GitHub: https://github.com/Lifailon/lazyjournal
— Простая установка, для запуска достаточно загрузить в систему один исполняемый файл без зависимостей.
— Проект вдохновлен работами Jesse Duffield, по этому интерфейс будет знаком всем тем, кто уже использует LazyDocker и LazyGit.
— Для всех журналов присутствует возможность динамической фильтрации вывода с поддержкой нечеткого поиска (поиск всех фраз, разделенных пробелом в любом месте строки) и регулярных выражений (в стиле fzf и grep), а также подсветкой найденных слов.
— Позволяет получить список всех доступных журналов юнитов из journalctl (используется для чтения логов из подсистемы systemd).
— Возможность просматривать все доступные лог-файлы из каталога /var/log с сортировкой по дате изменения (например, для Apache, Nginx или СУБД), включая доступ к архивным логам.
— Поддержка логов контейнеров Docker.
— Проект будет полезен в первую очередь для системных администраторов Linux, больше не нужно вручную искать журналы в системе и каждый раз вызывать grep.
GitHub: https://github.com/Lifailon/lazyjournal
GitHub
GitHub - Lifailon/lazyjournal: A TUI for reading logs from journald, auditd, file system, Docker containers, Compose stacks, Podman…
A TUI for reading logs from journald, auditd, file system, Docker containers, Compose stacks, Podman and Kubernetes pods with support for output coloring and multiple filtering modes. - Lifailon/la...
👍11❤2
Forwarded from DevOps Deflope News
Методология Twelve-Factor App теперь доступна как Open Source.
Сам манифест выложен на GitHub. Ожидается, что это привлечёт сообщество к совместной работе и поможет актуализировать принципы.
Сам манифест выложен на GitHub. Ожидается, что это привлечёт сообщество к совместной работе и поможет актуализировать принципы.
12factor.net
The Twelve-Factor App
A methodology for building modern, scalable, maintainable software-as-a-service apps.
❤2
Forwarded from /usr/bin
cgroups и namespaces в Linux: как это работает?
В статье рассмотрена изоляция процессов и управление ресурсами в Linux, изучив возможности cgroups и namespaces. Разбераются, как работают контейнеры изнутри и учат создавать собственное изолированное окружение без Docker. Читать на Хабре.
В статье рассмотрена изоляция процессов и управление ресурсами в Linux, изучив возможности cgroups и namespaces. Разбераются, как работают контейнеры изнутри и учат создавать собственное изолированное окружение без Docker. Читать на Хабре.
Смотрим что происходит у коллег из Казахстана, недавно там прошла codetalks.kz смотрим записи тут https://youtube.com/@codetalkskz?si=nN4GJHTb9EkBk5JYl
👍2
Forwarded from Кубертатный период (Pavel Klyuev)
VictoriaMetrics реализуют собственную библиотеку стандарта OpenTelemetry, так как, по мнению разработчиков, OpenTelemetry излишне сложный и перегружен функциональностью, которая редко используется на практике, а также призывают сообщество к упрощению стандартов и повышения производительности.
https://www.datanami.com/2024/04/01/opentelemetry-is-too-complicated-victoriametrics-says/
https://www.datanami.com/2024/04/01/opentelemetry-is-too-complicated-victoriametrics-says/
👍14
Forwarded from Двач
Google представил самого мощного ИИ-репетитора — LearnLM 1.5 Pro
Это настоящий монстр из нескольких нейросетей, который находит подход к каждому ученику, вдохновляет на обучение и значительно облегчает освоение материала.
🟠 ИИ способен разбирать любые вопросы, примеры, уравнения и задачи, предоставляя подробные объяснения;
🟠 Поддерживает контекст на 32 тысячи токенов, что позволяет эффективно погружаться в сложные темы и изучать объёмные материалы;
🟠 Создаёт персональный план обучения, детально раскрывает сложные аспекты и фокусируется на важных для вас деталях;
🟠 И всё это – бесплатно и на русском языке.
Пользуемся с VPN тут:
Это настоящий монстр из нескольких нейросетей, который находит подход к каждому ученику, вдохновляет на обучение и значительно облегчает освоение материала.
Пользуемся с VPN тут:
aistudio.google.com/prompts/new_chatPlease open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👎3❤1
Forwarded from DevOps&SRE Library
cubefs
https://github.com/cubefs/cubefs
As an open-source distributed storage, CubeFS can serve as your datacenter filesystem, data lake storage infra, and private or hybrid cloud storage. In particular, CubeFS enables the separation of storage/compute architecture for databases and AI/ML applications.
https://github.com/cubefs/cubefs
Forwarded from Bash Days | Linux | DevOps (Роман Шубин)
Здрасти. Как-то я писал про
Ниже скрипт который автоматически пронумерует системные вызовы для последующих инъекций.
Сохраняем это безобразие в файл
Теперь получаем такой выхлоп:
Смотрим второй столбик, включаем логику и видим, что системные вызовы нумеруются.
Например, возьмем системный вызов
ㅤ
Теперь берем нужный номер системного вызова и применяем инъекцию. Как это сделать и для чего, опять же показывал на примерах (ссылки в начале этого поста).
Тема крутая, не нужно ебаться и считать руками.
Весь вывод
А чтобы получить только трассировку, можно сделать так:
Если бесит подсветка, выпили из перловского скрипта управляющий символ «
Такие дела, изучай!
tags: #linux #debug
—
🔔 @bashdays➡️ @gitgate
strace и как применять инъекции. Если пропустил, то читай тут и тут.Ниже скрипт который автоматически пронумерует системные вызовы для последующих инъекций.
#!/usr/bin/perl
use strict;
use warnings;
my %numbs;
select STDERR;
while(<STDIN>) {
if( /^[0-9]++\s++([a-z0-9_]++(?=\())/ ) {
my $t = ++$numbs{$1};
s/\s+/ \e[31m$t\e[m /;
die $! if( keys %numbs == 1000 );
}
print;
}
exit(0);
Сохраняем это безобразие в файл
num_syscalls и делаем chmod +x, ну а дальше запускаем в связке с strace:strace -o'|./num_syscalls' -yf sh -c 'ls|cat'
Теперь получаем такой выхлоп:
456107 48 close(3</usr/) = 0
456107 52 rt_sigreturn({mask=[]})
456107 63 openat(AT_FDCWD</usr/local/sbin>)
456107 53 newfstatat(3)
456107 64 openat(AT_FDCWD</usr/local/sbin>)
Смотрим второй столбик, включаем логику и видим, что системные вызовы нумеруются.
Например, возьмем системный вызов
openat, видим 63, 64. Это значит что openat был вызван 64 раза. А newfstatat 53.ㅤ
Теперь берем нужный номер системного вызова и применяем инъекцию. Как это сделать и для чего, опять же показывал на примерах (ссылки в начале этого поста).
Тема крутая, не нужно ебаться и считать руками.
Весь вывод
strace отправляется в stderr, чтобы иметь возможность разделять вывод трассировки и вывод исследуемой программы.А чтобы получить только трассировку, можно сделать так:
strace -o'|./num_syscalls' -yf ls > /dev/null
Если бесит подсветка, выпили из перловского скрипта управляющий символ «
\e[31m\[em».Такие дела, изучай!
tags: #linux #debug
—
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
Forwarded from Go Library
Writing integration tests for a Go CLI application
https://lucapette.me/writing/writing-integration-tests-for-a-go-cli-application
https://lucapette.me/writing/writing-integration-tests-for-a-go-cli-application
Forwarded from Полезняшки от "Разбора Полетов"
Habr
Катастрофа в российской зоне проекта NTPPool.org
Привет, Хабр! Своим первым постом на площадке я хочу привлечь внимание к катастрофе, сложившейся на данный момент в RU-зоне проекта NTPPool.org . Я думаю, что проект в представлении не нуждается, тем...
👍2
Forwarded from Кубернетичек
Давно не читал отличных статей. Тут линкендин выпустила статью про то, почему они написали свой стейтфулсет контроллер. Подходил к ее прочтению очень скептически. Обычно в таких статьях "уникальная проблема", которую никак не решить кроме написания своего уникального, воздушного и прекрасного или выбрать свой уникальный путь. Как это сделали недавно Яндекс, GitPod и Crafting-Code (ссылок давать не буду, это можно нагуглить, если такое желание имеется).
Но тут все понятно. У стейтфулсета есть много проблем. Это и то, что pvc template имьютебл, отсутствие шардирования, возможности делать канарейку, ограничения по работе с несколькими версиями подов. Линкендин еще добавил невозможность управления хостами при запланированном или незапланированном обслуживании.
То есть проблема понятна. С ней сталкивались многие.
И линкендин дает решение в архитектуре.
CRD-архитектураихнего Stateful Workload Operator, следующая:
LiStatefulSet – описывает конфигурацию приложения.
Revision – отслеживает версии развертываний.
PodIndex – управляет состояниями подов.
Operation – определяет типы операций: масштабирование, замена, удаление.
StatefulPod – управляет подами и данными.
Ну и мелочи вроде self-healing и выведения нод из обслуживания временно или на постоянной основе. Есть схемочки, стрелочки.
Так что если у вас, как и у меня есть похожая задача, можно сохранить человекочасы на дизайне. Enjoy.
Но тут все понятно. У стейтфулсета есть много проблем. Это и то, что pvc template имьютебл, отсутствие шардирования, возможности делать канарейку, ограничения по работе с несколькими версиями подов. Линкендин еще добавил невозможность управления хостами при запланированном или незапланированном обслуживании.
То есть проблема понятна. С ней сталкивались многие.
И линкендин дает решение в архитектуре.
CRD-архитектура
LiStatefulSet – описывает конфигурацию приложения.
Revision – отслеживает версии развертываний.
PodIndex – управляет состояниями подов.
Operation – определяет типы операций: масштабирование, замена, удаление.
StatefulPod – управляет подами и данными.
Ну и мелочи вроде self-healing и выведения нод из обслуживания временно или на постоянной основе. Есть схемочки, стрелочки.
Так что если у вас, как и у меня есть похожая задача, можно сохранить человекочасы на дизайне. Enjoy.
🔥8❤1
Чем заменить сервис New Relic, при этом сохранить контроль над данными📊, гибкость настройки и локальную поддержку?
На этот вопрос ответили на митапе GMonit вместе с экспертом из АШАН:
📌 Сравнили функционал New Relic с российским APM-инструментом мониторинга на примере observability платформы GMonit.
📌 Рассказали, как с помощью APM-инструмента можно настроить мониторинг в считанные минуты, отследить корневые ошибки на уровне кода и ускорить работу с инцидентами в несколько раз.
📌 Показали на реальном примере, как GMonit позволил компании АШАН комплексно оценить влияние ИТ на e-com и определить векторы для оптимизации работы сервисов.🔝
Видеозапись онлайн-мероприятия можно посмотреть на удобной для вас площадке:
🎥 ВКонтакте
🎥 Rutube
🎥 YouTube
На этот вопрос ответили на митапе GMonit вместе с экспертом из АШАН:
📌 Сравнили функционал New Relic с российским APM-инструментом мониторинга на примере observability платформы GMonit.
📌 Рассказали, как с помощью APM-инструмента можно настроить мониторинг в считанные минуты, отследить корневые ошибки на уровне кода и ускорить работу с инцидентами в несколько раз.
📌 Показали на реальном примере, как GMonit позволил компании АШАН комплексно оценить влияние ИТ на e-com и определить векторы для оптимизации работы сервисов.🔝
Видеозапись онлайн-мероприятия можно посмотреть на удобной для вас площадке:
🎥 ВКонтакте
🎥 Rutube
🎥 YouTube
VK Видео
Как АШАН заменил New Relic на российский аналог GMonit для мониторинга приложений
Во время митапа рассказали, как быстро заменить зарубежные системы мониторинга (например, New Relic) на решение GMonit. Показали, как GMonit позволяет настроить мониторинг в считанные минуты, отследить корневые ошибки на уровне кода, добавить алертинг для…
👍3👎2🔥1
Мне тут сообщили, что многие тут хотят серьезно прокачать свой DevOps. Но не знают где взять информацию и четкий план.
💪 Советую бесплатный мета-курс Devops Roadmap - это расширенный чек-лист, который поможет сориентироваться в мире DevOps и стать крутым спецом.
👀 В мета-курсе перечислены все основные разделы и навыки, которыми должен обладать DevOps инженер: от Linux до программирования в удобном формате.
✔️А еще он будет полезен при подготовке к собеседованиям.
👽 Кстати, бонусом крутой канал о девопс. Там тоже самые свежие IT-новости, полезные советы от DevOps-инженера с 20-летним стажем, эксклюзивные материалы, релизы топовых инструментов, обзоры вакансий и личный взгляд на девопс-сферу.
📌 Ну а тем, кто хочет двигаться под руководством опытного наставника, моего коллеги - индивидуальная программа.
💪 Советую бесплатный мета-курс Devops Roadmap - это расширенный чек-лист, который поможет сориентироваться в мире DevOps и стать крутым спецом.
👀 В мета-курсе перечислены все основные разделы и навыки, которыми должен обладать DevOps инженер: от Linux до программирования в удобном формате.
✔️А еще он будет полезен при подготовке к собеседованиям.
👽 Кстати, бонусом крутой канал о девопс. Там тоже самые свежие IT-новости, полезные советы от DevOps-инженера с 20-летним стажем, эксклюзивные материалы, релизы топовых инструментов, обзоры вакансий и личный взгляд на девопс-сферу.
📌 Ну а тем, кто хочет двигаться под руководством опытного наставника, моего коллеги - индивидуальная программа.
👎10👍2
Forwarded from k8s (in)security (Дмитрий Евдокимов)
kondense - это проект на
Многим такое полезно, но в данной реализации как по нам все омрачается правами
Хоть проект и полезный, но с учетом вопросов ИБ к нему врят ли его можно рекомендовать. Явно нужно ждать другой реализации. Но сам факт появление подобных проектов вокруг фичи InPlacePodVerticalScaling это отлично.
Go выполненный в виде sidecar контейнера, который помогает автоматически управлять ресурсами контейнеров в Kubernetes без их перезапуска. На пример, освобождать не используемое количество выделенной контейнеру memory и CPU. Для этого используется не так давно появившееся фича InPlacePodVerticalScaling.Многим такое полезно, но в данной реализации как по нам все омрачается правами
ServiceAccount, которыми должен владеть Pod - это: "get", "list", "watch", "patch" на "pod" и (самое печальное) "create" на "pods/exec" (тут исходник, объясняющий зачем это)... С учетом этого также получается, что все сервисы теперь должны в своих NetworkPolicy иметь доступ к Kubernetes API.Хоть проект и полезный, но с учетом вопросов ИБ к нему врят ли его можно рекомендовать. Явно нужно ждать другой реализации. Но сам факт появление подобных проектов вокруг фичи InPlacePodVerticalScaling это отлично.
Forwarded from Clean Code
Лучший Гайд по Kafka для Начинающих За 1 Час
Работа с Kafka - ключевое умение для любого современного разработчика! В этом видео разберем основные особенности этой замечательной технологии, я расскажу о гарантиях, топиках, репликациях, а также как масштабировать Kafka! Будет невероятно полезно! Приятного просмотра!
📺 YouTube
Clean Code #видео #kafka
Работа с Kafka - ключевое умение для любого современного разработчика! В этом видео разберем основные особенности этой замечательной технологии, я расскажу о гарантиях, топиках, репликациях, а также как масштабировать Kafka! Будет невероятно полезно! Приятного просмотра!
📺 YouTube
Clean Code #видео #kafka
YouTube
Лучший Гайд по Kafka для Начинающих За 1 Час
Бесплатные материалы и шпаргалки для подготовки к собесам: https://www.faang.school/community?utm_source=youtube_video&utm_medium=organic&utm_campaign=library-java-junior&utm_content=video-60
Работа с Kafka - ключевое умение для любого современного разработчика!…
Работа с Kafka - ключевое умение для любого современного разработчика!…
Forwarded from 🇺🇦 Go performance channel (Oleg)
Go Production Performance Gotcha - GOMAXPROCS
https://metoro.io/blog/go-production-performance-gotcha-gomaxprocs #golang
https://metoro.io/blog/go-production-performance-gotcha-gomaxprocs #golang
metoro.io
Optimizing Go Performance with GOMAXPROCS
Learn how to solve unexpected performance issues in Go applications by correctly configuring the GOMAXPROCS parameter for optimal CPU usage in containers
👍3
Forwarded from Библиотека программиста | программирование, кодинг, разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Технологический Болт Генона
Яндекс признал и осознал, что не может не радовать
Об инциденте с NTP-серверами
https://habr.com/ru/companies/yandex/articles/861538/
Спасибо подписчику за ссылку
15 октября мы раскатили прошивку на 10% устройств. Поэтапная раскатка обновления — это стандартная практика. Она предназначена в том числе для того, чтобы выявлять проблемы новых версий на ранней стадии. И прежде чем увеличивать процент раскатки, мы отсматриваем метрики всех ключевых пользовательских сценариев. Но число генерируемых нами NTP‑запросов исторически никогда не входило в метрики, требующие валидации, потому что NTP‑клиент годами существовал практически без изменений и не приводил к проблемам.
К 24 октября новая прошивка докатилась до 100% колонок. Опять же, критичные для пользователей сценарии покрыты автоматическим мониторингом. Если что‑то важное ломается, мы получаем уведомление. Но, как вы уже догадались, для NTP‑клиента таких уведомлений настроено не было.
. . .
Жалоб было мало, действующий регламент поддержки не был рассчитан на подобные ситуации, поэтому обращения рассматривали не в самом высоком приоритете. К 20 ноября мы нашли ошибку, внесли исправление в код и начали готовить новый релиз.
В выходные 23–24 ноября ситуация с NTP‑серверами обостряется: доступными остаются лишь четыре сервера. К этому моменту мы уже начали раскатывать релиз с исправлением на 10% устройств.
. . .
В воскресенье мы выпустили хотфикс в виде новой рантайм‑конфигурации для NTP‑клиента, который увеличивал период перезапроса с 5 до 600 секунд, уменьшая нагрузку на серверы в 120 раз. Хотфикс не исправлял проблему полностью, но был единственным быстрым способом снять чрезмерную нагрузку с NTP-серверов.
. . .
мы запланировали выделить ресурсы в общий пул NTP‑серверов. Это займёт некоторое время, потому что наши дата‑центры удалены от основных точек обмена трафиком, а для NTP‑серверов RTT (Round Trip Time) это — ключевой фактор качества. Мы установим и запустим мощности на основных точках обмена трафиком.
Для наших устройств мы заведём именную зону в соответствии с гайдлайнами проекта NTPPool.org для бо́льшей прозрачности. Генерируемый ими трафик будет локализован на наших NTP‑серверах, если мы продолжим полагаться на публичную инфраструктуру проекта.
Ещё мы добавим метрики, связанные с NTP, на этап валидации A/Б‑экспериментов, а также реалтайм‑уведомления о неполадках в этом компоненте. В том числе расширим сценарии мониторинга исходящего и входящего служебного трафика устройства в целом. Также поработаем над каналами коммуникаций и поддержкой, чтобы подобные проблемы быстрее до нас эскалировались.
Об инциденте с NTP-серверами
https://habr.com/ru/companies/yandex/articles/861538/
Спасибо подписчику за ссылку
👍12❤1👎1
Forwarded from HABR FEED + OPENNET
Go отлаживать на проде, избавляться от хардкода и переходить на Ginkgo/Gomega: доклады для гоферов #habr
https://habr.com/ru/companies/yadro/articles/861742/
Tags: go, ginkgo, gomega, отладка на проде, платформенная разработка, cel, testify, require, доклады
Author: yadro_team (YADRO)
https://habr.com/ru/companies/yadro/articles/861742/
Tags: go, ginkgo, gomega, отладка на проде, платформенная разработка, cel, testify, require, доклады
Author: yadro_team (YADRO)