Forwarded from Библиотека Go-разработчика | Golang
🔧 Быстрый способ конвертации JSON в Go-структуры
Нашли для вас удобный проект, который конвертирует JSON в структуры Go.
Как это выглядит
1️⃣ Вставляем свой JSON в форму на странице
2️⃣ На выходе получаем готовую структуру
Инструмент не без ошибок, но отлично работает в 99% случаев.
➡️ Попробовать JSON-to-Go
🐸 Библиотека Go разработчика #буст
Нашли для вас удобный проект, который конвертирует JSON в структуры Go.
Как это выглядит
{
"name": "Prog Lib",
"age": 30,
"email": "coolproger@example.com",
"is_active": true,
"tags": ["golang", "developer"],
"profile": {
"github": "https://github.com/proglib"
}
}type AutoGenerated struct {
Name string `json:"name"`
Age int `json:"age"`
Email string `json:"email"`
IsActive bool `json:"is_active"`
Tags []string `json:"tags"`
Profile struct {
Github string `json:"github"`
} `json:"profile"`
}Инструмент не без ошибок, но отлично работает в 99% случаев.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1
Forwarded from IT Friday (Sabbath)
Свеженькое издание System Design - The Big Archive от Alex Xu - автора книг по System Design и блога ByteByteGo. Любителям лаконичной и наглядной инфографики по архитектуре, ДевоПсу в целом по айтишечке 😃
Прикольно позалипать, да и в целом можно использовать для обучений.
Прикольно позалипать, да и в целом можно использовать для обучений.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Мониторим ИТ
tailpipe
Утилита для селекта из логов. Есть готовые пресеты для обнаружения результатов, соответствующих MITRE ATT&CK. Работает локально, использует аналитику в памяти DuckDB и оптимизированное хранилище Parquet.
Репыч на Гитхабе
Утилита для селекта из логов. Есть готовые пресеты для обнаружения результатов, соответствующих MITRE ATT&CK. Работает локально, использует аналитику в памяти DuckDB и оптимизированное хранилище Parquet.
Репыч на Гитхабе
Forwarded from Sysadmin Tools 🇺🇦
Why VictoriaLogs is a better alternative to Grafana Loki?
https://itnext.io/why-victorialogs-is-a-better-alternative-to-grafana-loki-7e941567c4d5
#logs #loki #victorialogs
https://itnext.io/why-victorialogs-is-a-better-alternative-to-grafana-loki-7e941567c4d5
#logs #loki #victorialogs
👎4👍1
Не часто советую учебные курсы, но тут нашел интересную возможность пройти бесплатно вводный курс по DevOps. Классно, что есть расширенный чек-лист, который поможет сориентироваться в мире DevOps и понять куда двигаться. И, похоже, на собесах может помочь.
А у самой платформы не сотни менторов, а один, он же основатель. Еще увидел у него классную программу наставничества, формат действительно эффективный.
Ну и можете заглянуть в телеграм-канал, там много, на мой взгляд, полезных публикаций.
Наслаждайтесь 😄
#реклама
А у самой платформы не сотни менторов, а один, он же основатель. Еще увидел у него классную программу наставничества, формат действительно эффективный.
Ну и можете заглянуть в телеграм-канал, там много, на мой взгляд, полезных публикаций.
Наслаждайтесь 😄
#реклама
👎9👍2
Forwarded from Мониторим ИТ
Open-source инструменты для визуализации данных
В статье рассмотрены D3.js, Apache Superset, Metabase, Grafana (куда ж без нее), Redash и RAWGraphs.
В статье рассмотрены D3.js, Apache Superset, Metabase, Grafana (куда ж без нее), Redash и RAWGraphs.
Forwarded from DevOps FM
На канале DevOps FM — подборка свежих статей и релизов.
🟡 Опубликована Debian 12.10
Новый релиз включает в себя улучшенный установочный носитель, 66 багфиксов и 44 обновления с устранением уязвимостей. Версия 12.10 является последней в ветке, следующий мажорный выпуск Debian 13 должен выйти во второй половине 2025 года.
Полный список фиксов — тут.
⚫️ В блоге CNCF рассказали о создании масштабируемых, гибких и безопасных API с использованием Kubernetes и микросервисов. В статье обсуждаются инструменты и практики для обеспечения высокой доступности и эффективности API, а также рекомендации по обеспечению безопасности с помощью Kubernetes.
🟡 Релизнули Git v2.49. В обновление вошли 460 функций и исправления ошибок от 89 разработчиков. Из интересного:
• Добавили новый инструмент
•
• Ускорили упаковку благодаря
• Были добавлены первые фрагменты кода Rust.
⚫️ OpenSearch поделились новой функцией векторного поиска с GPU ускорением, которая будет добавлена в предстоящем релизе OpenSearch 3.0. Функция необходима для ускорения обработки больших объёмов векторных данных. Для этого обновили архитектуру, алгоритмы взаимодействия и сделали сравнительный анализ.
Подробное описание и результаты анализа смотрим в блоге.
#Devops #Git #OpenSearch
🟡 Опубликована Debian 12.10
Новый релиз включает в себя улучшенный установочный носитель, 66 багфиксов и 44 обновления с устранением уязвимостей. Версия 12.10 является последней в ветке, следующий мажорный выпуск Debian 13 должен выйти во второй половине 2025 года.
Полный список фиксов — тут.
⚫️ В блоге CNCF рассказали о создании масштабируемых, гибких и безопасных API с использованием Kubernetes и микросервисов. В статье обсуждаются инструменты и практики для обеспечения высокой доступности и эффективности API, а также рекомендации по обеспечению безопасности с помощью Kubernetes.
🟡 Релизнули Git v2.49. В обновление вошли 460 функций и исправления ошибок от 89 разработчиков. Из интересного:
• Добавили новый инструмент
git backfill;•
git clone научился делать shallow clone для одного коммита;• Ускорили упаковку благодаря
name‑hash v2;• Были добавлены первые фрагменты кода Rust.
⚫️ OpenSearch поделились новой функцией векторного поиска с GPU ускорением, которая будет добавлена в предстоящем релизе OpenSearch 3.0. Функция необходима для ускорения обработки больших объёмов векторных данных. Для этого обновили архитектуру, алгоритмы взаимодействия и сделали сравнительный анализ.
Подробное описание и результаты анализа смотрим в блоге.
#Devops #Git #OpenSearch
🔥1
Forwarded from PythonDigest
Наш архитектурный подход к Python приложениям
https://ift.tt/GLgadCO
Мы долгие годы писали сервисы исходя из каких-то своих внутренних ощущений правильности их написания. Но синхронизироваться по хорошим практикам в разных командах бывает довольно сложно и часто хорошие практики не выходили за рамки одной команды, а такого хотелось бы избежать. Поэтому мы решили объединить все хорошие по нашему мнению практики в единый справочник. Этот справочник получил название «Архитектурный гайд». Про него и поговорим в данной статье.
https://ift.tt/GLgadCO
Мы долгие годы писали сервисы исходя из каких-то своих внутренних ощущений правильности их написания. Но синхронизироваться по хорошим практикам в разных командах бывает довольно сложно и часто хорошие практики не выходили за рамки одной команды, а такого хотелось бы избежать. Поэтому мы решили объединить все хорошие по нашему мнению практики в единый справочник. Этот справочник получил название «Архитектурный гайд». Про него и поговорим в данной статье.
Forwarded from linkmeup
Вполне годный тренажёр для осваивающих SQL-запросы. Всё обёрнуто в игрофикацию, что типа ты не просто селекты пишешь, а прям расследование расследуешь и делом занят.
При желании, код и вся требуха есть на гитхабе, так что можно улучшить и углубить.
https://www.sqlnoir.com/
P.S. Если вы вдруг не знали, то когда-то там давно язык SQL задумывался как простой и понятный инструмент для туповатого менеджерского состава. Чтобы не отвлекали от работы уважаемых программистов, а сами там себе вьюху накидали с сортировкой и были счастливы. Но, как обычно, что-то пошло не так.
При желании, код и вся требуха есть на гитхабе, так что можно улучшить и углубить.
https://www.sqlnoir.com/
P.S. Если вы вдруг не знали, то когда-то там давно язык SQL задумывался как простой и понятный инструмент для туповатого менеджерского состава. Чтобы не отвлекали от работы уважаемых программистов, а сами там себе вьюху накидали с сортировкой и были счастливы. Но, как обычно, что-то пошло не так.
SQLNoir
Interactive SQL Game | Learn SQL by Solving Detective Cases | SQLNoir
SQLNoir is an interactive SQL game where you solve crimes and mysteries using SQL queries. Learn SQL by playing detective in this engaging SQL learning game.
👍1
Forwarded from Мониторим ИТ
Prometheus Alerting 101: Rules, Recording Rules, and Alertmanager
В статье обсуждаются особенности работы Alertmanager относительно его компонентов.
Другие статьи цикла:
Counters, Gauges, Histograms & Summaries
Instant Queries and Range Queries Explained
В статье обсуждаются особенности работы Alertmanager относительно его компонентов.
Другие статьи цикла:
Counters, Gauges, Histograms & Summaries
Instant Queries and Range Queries Explained
Forwarded from /usr/bin
Как NGINX обрабатывает TCP/UDP
В этой статье рассмотрено, как NGINX обрабатывает TCP/UDP‑соединения: от принятия запроса до логирования.
В этой статье рассмотрено, как NGINX обрабатывает TCP/UDP‑соединения: от принятия запроса до логирования.
Forwarded from Кубертатный период (Pavel Klyuev)
А вы знали, что
kubectl explain выдает полную спеку ресурса с описанием всех параметров?Например
kubectl explain pods.spec.containers--recursive, то покажет все возможные поля с описанием.
А так же, есть плагин https://github.com/keisku/kubectl-explore
What’s lacking in the original kubectl-explain?
- kubectl explain requires knowing in advance the resource name/fields.
- kubectl explain requires typing the accurate path to the resource name/field, which is a tedious and typo-prone.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥3
Forwarded from DevOps&SRE Library
Learn Kustomize for Kubernetes — mini course
https://medium.com/@josip.cloud/learn-kustomize-for-kubernetes-course-part-1-6cc4ab945f9d
https://medium.com/@josip.cloud/learn-kustomize-for-kubernetes-course-part-1-6cc4ab945f9d
Forwarded from Кубертатный период (Pavel Klyuev)
А вы знали, что
kubectl explain выдает полную спеку ресурса с описанием всех параметров?Например
kubectl explain pods.spec.containers--recursive, то покажет все возможные поля с описанием.
А так же, есть плагин https://github.com/keisku/kubectl-explore
What’s lacking in the original kubectl-explain?
- kubectl explain requires knowing in advance the resource name/fields.
- kubectl explain requires typing the accurate path to the resource name/field, which is a tedious and typo-prone.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👎4
Forwarded from /usr/bin
Семь фаз вакуумирования в PostgreSQL
В статье описан алгоритм вакуумирования PostgreSQL и приводится сравнение числа сканирований индексов в 17 версии PostgreSQL и предыдущих версиях.
Есть пять фаз вакуумирования каждой таблицы, mwiew, toast и индексов на них: SCAN_HEAP, VACUUM_INDEX, VACUUM_HEAP, INDEX_CLEANUP, VACUUM TRUNCATE. Помимо них есть подготовительная фаза инициализации и завершающая фаза. Читать дальше.
В статье описан алгоритм вакуумирования PostgreSQL и приводится сравнение числа сканирований индексов в 17 версии PostgreSQL и предыдущих версиях.
Есть пять фаз вакуумирования каждой таблицы, mwiew, toast и индексов на них: SCAN_HEAP, VACUUM_INDEX, VACUUM_HEAP, INDEX_CLEANUP, VACUUM TRUNCATE. Помимо них есть подготовительная фаза инициализации и завершающая фаза. Читать дальше.
👍1
Forwarded from Технологический Болт Генона
Тут Флант Prometheus форкнули переписали с кучей оптимизаций. Пост на Хабре большой с кучей подробностей + провели сравнение с VictoriaMetrics. Сам я ещё, естественно, не успел попробовать, но выглядит многообещающе
Deckhouse Prom++: мы добавили плюсы к Prometheus и сократили потребление памяти в 7,8 раза
https://habr.com/ru/companies/flant/articles/878282/
+
Deckhouse Prom++
https://github.com/deckhouse/prompp/
Чат: @prom_plus_plus
Если подобным образом проанализировать все лейблы на реальных данных, получится, что:
- 32,7 % из них имеют всего одно возможное значение, например true или 0;
- 60 % — от 2 до 255 значений, то есть укладываются в 1 байт;
- 7,3 % — от 256 до 5275 значений;
- 0 % — больше 65 535 значений.
Это значит, что все возможные значения укладываются в два байта.
Мы решили хранить все ID (#0, #1, #2 и т. д.) не в четырёхбайтных значениях, а как два бита, указывающие количество байт, в которые укладывается число, плюс значение.
Это дало нам очередной выигрыш по памяти — теперь весь labelset для 1 миллиона метрик стал занимать 30 МБ. Это в 30 раз лучше стартовых 762 МБ.
. . .
Оптимальное хранение строк дало приличный выигрыш и в индексе. Если раньше в нём были строки и хэш-таблицы, которые не особенно оптимально хранятся в памяти, то в нашей реализации есть ID, которые выдаются по порядку. Это позволяет хранить в кэше четырехбайтные числа uint32 и заменить хэш-таблицы на sparse-векторы и Bitset.
В итоге основным потребителем памяти у нас стали точки. Prometheus хранит их достаточно компактно: он использует Gorilla Encoding и битовые операции. Это не значит, что оптимизировать нечего, но для этого надо внимательно посмотреть на данные.
. . .
Оказалось, что уникальных последовательностей временных меток всего 10 % от миллиона. Эта оптимизация позволила выиграть 55,5 % по памяти просто за счёт дедупликации.
. . .
После всех преобразований мы получили выигрыш по хранению точек почти в три раза: изначальные 787,72 МБ превратились в 283,9 МБ. При этом чем больше данных и серий, тем лучше срабатывает наша оптимизация. Если на одном миллионе метрик мы выиграли по хранению точек в 2,7 раза, то на трёх миллионах это будет уже три с небольшим раза.
. . .
В процессе работы Prometheus пишет WAL. Мы оптимизировали журнал предзаписи примерно в 19 раз. Изначальные 6,2 ГБ без сжатия в Prometheus v2 для 1 миллиона метрик превратились в 153 МБ в Deckhouse Prom++.
Deckhouse Prom++: мы добавили плюсы к Prometheus и сократили потребление памяти в 7,8 раза
https://habr.com/ru/companies/flant/articles/878282/
+
Deckhouse Prom++
https://github.com/deckhouse/prompp/
Чат: @prom_plus_plus
👍17❤1👎1