Author Archive: Sassoft

Golang пример unmarshal json в map

req, _ := http.NewRequest(http.MethodGet, «https://api.example.com/messages», nil) resp,_ := httpClient.Do(req) bodyBytes, err := ioutil.ReadAll(resp.Body) var data map[string]interface{} err = json.Unmarshal(bodyBytes, &data) if err != nil { log.Fatal(err) } logs := data[«messages»] for _, log := range logs.([]interface{}) { log = log.(map[string]interface{})[«message»]…
Read more

Golang пример http клиента с Basic авторизацией

Пример использования стандартного http клиента для проведения GET запросов с Basic авторизацией: basicAuth := «Basic » + basicAuth(«user», «password») var netClient = &http.Client{ Timeout: time.Second * 10, } url := «https://sassoft.ru/some-endpoint» req, err := http.NewRequest(«GET», url, nil) if err !=…
Read more

Отправка в логи Graylog из консоли

Полезная команда для отправки по UDP логов в ваш сервер логов (на примере Graylog сервера): echo ‘{«version»: «1.1»,»host»:»example.org»,»short_message»:»A short message that helps you identify what is going on»,»full_message»:»Backtrace here\n\nmore stuff»,»level»:1,»_user_id»:9001,»_some_info»:»foo»,»_some_env_var»:»bar»}’ | gzip | nc -u -w 1 graylog-input.yourserver.com 12201  

Простой pipeline для Kubernetes deployment в gitlab-ci

Для деплоя в Kubernetes понадобилось написать простой двухшаговый pipeline, который будет собирать Docker контейнер на первом шаге и при помощи kubectl обновлять конфигурацию deployment в шаге два. Скрипты реализации build и deploy в этой статье я упущу и только покажу…
Read more

aleksandrzhiliaev/checker — мониторинг для веб сайта

Checker —  простейшая библиотека на Go, опрашивающая заданный http адрес с некоторым заданным периодом времени и отправляющая метрики на различные бекенды в зависимости от конфигурации: stdout — отправка названия сайта и статус кода сервиса StatsD — отправка метрики формата: example_com.status_code…
Read more

HA Proxy load balancer и docker

Недавно потребовался load balancer, который прост в настройке (привет любителям пописать конфиги в nginx) и удобен в установке. Выбор пал на HA Proxy — очень удобный TCP, HTTP прокси и load balancer сервер. Также было важно правильно настроить сервер в…
Read more

Деплоим локальный сервис в Kubernetes при помощи Minikube. Установка Ingress

В прошлой статье мы установили сервис echoserver и открыли порт 31933 для общения приложения с внешним миром. Но как видно использовать IP адрес и порт неудобно конечным пользователям. Давайте сделаем так, чтобы наше приложение отвечало нам если мы пишем http://example.test…
Read more

Деплоим локальный сервис в Kubernetes при помощи Minikube

Для работы требуется установленный Minikube и kubectl. Запустим приложение echoserver — простой сервис, который будет отдавать нам данные нашего запроса и параметры сервера: kubectl run hello-minikube —image=gcr.io/google_containers/echoserver:1.4 —port=8080 Для того, чтобы сервис стал доступен внешнему миру есть два способа —…
Read more

Monkey patching в Golang

Наткнулся на очень интересную библиотеку, позволяющую переопределять функции и методы у объектов для написания юнит тестов перед компиляцией. В PHP, Ruby или Python это делается довольно просто парой строк. Т.к го все же язык компилируемый и со строгой типизацией тут…
Read more

Marketplace. Скрипт учета депозитов

Скрипт: Скрипт учета криптодепозитов. Скрипт позволяет проводить приём, учёт и начисление процентов на различные депозиты в разных валютах. Текущие поддерживаемые валюты: Webmoney WMZ,WME,WMR,WMU,WMG,WMX — с ограничениями Яндекс.Деньги — с ограничениями Qiwi Perfect Money Bitcoin Ethereum Litecoin Monero Ripple Bytecoin Stellar…
Read more