Latest Posts

Локальная отладка GitHub Actions с act

Не так давно потребовалось понять причину почему один из введенных actions для GitHub Actions перестал работать. Для того, чтобы проверить работу action их нужно для начала запустить локально. Это можно сделать при помощи утилиты act. Важно выбрать правильный runner для…
Read more

Golang — Упаковка ресурсов и статических файлов в бинарник с go rice

Задача упаковки статических ресурсов в один жирный бинарник стоит не так часто, но в одном из проектов все-таки это понадобилось. Посмотрев на разные библиотеки из awesome go, остановился на наверное самом простом и более для меня понятном go rice. В…
Read more

Разработка HomeKit аксессуара на Golang

https://github.com/brutella/hc — прекрасная библиотека для написания обработчиков своих аксессуаров по протоколу HomeKit. Что предоставляет библиотека? Удобный интерфейс для объявления своего аксессуара и обработка сигналов с пульта управления Home App в ios. Давайте попробуем написать новый обработчик аксессуара и добавить его внутри…
Read more

2D игры на Golang c Ebiten. Введение

Решил попробовать пописать простые 2D игры на Golang. Основная цель — развлечение и более углубленное понимание того как можно писать простые любительские 2D игры на Go. В начале пути Скорее всего это будет цикл небольших, но полезных статей для всех…
Read more

Скрипт проверки GitHub rate limit

GitHub API имеет лимиты на запросы в час — 12 500 максимум и 5000 на одного пользователя. В некоторых случаях количество лимитов недостаточно и вам необходимо знать текущий баланс кредитов. Для проверки таких «кредитов» на API запросы напишем небольшой bash…
Read more

Подсветка текста в Bash скриптах

Удобный сниппет для подсвечивания текста разными цветами в bash скриптах, рассмотрим пример: Создадим файл t.sh:

Итого при запуске скрипта мы можем видеть текст разного цвета:

Мониторинг Nginx при помощи stub_status и Prometheus Exporter. Часть 2

Для получения данных с Nginx status монитора в Prometheus необходим запуск Prometheus exporter в Kubernetes кластере. Напишем deployment манифест для запуска экспортера в Prometheus. Создадим файл exporter.yaml:

Для того, чтобы Prometheus мог забирать данные с pod-ов очень важно добавить…
Read more

Мониторинг Nginx при помощи stub_status и Prometheus Exporter

Не так давно возникла задача мониторинга проекта, который не бежит внутри Kubernetes и простые настройки Prometheus не совсем подходят. Знать нагрузки на сервис интересно, но не хочется много накручивать и писать дополнительный код (к тому же проекты работают весьма успешно…
Read more

Golang — использование rate limiter в коде

Rate limiting — ограничение скорости запросов в определенной системе. К примеру вы можете поставить ограничения на ваш веб сервер — не более 10 запросов в секунду. Возможно создание ограничения только для определенного клиента или типа машины. В Golang добавление rate limit…
Read more

Golang — функция вывода user IP

В случае использования вашего приложения через load balancer или через различные прокси вида Cloudflare задача вывода клиентского IP адреса заключается в правильной выборке header. От X-Real-Ip до CF_CONNECTING_IP или же X-Original-Forwarded-For. Для этого я написал простую функцию по выборке IP адреса:

Алгоритм…
Read more