Size: a a a

Админим с Буквой

2021 September 21
Админим с Буквой
Мониторинг postgres

Зацепил тут взглядом недавно прикольный экспортёр для postgresql/patroni/pgbouncer/os-metrics

в общем не экспортёр, а целый комбаин. Понравился тем что умеет по полочкам разложить какой пользователь сколько проводит временив  запросах, какие конкретно запросы вызывают наибольшее время, а какие самые частые, в какую таблицу с какой частотой выполняются селекты-инсерты и многое другое. Попутно написал для этой штуки маленькую ансибловую роль. Попробуйте и обязательно поставьте автору звёздочку на гитхабе =)

ansible role:
https://github.com/bykvaadm/ansible-pgscv

pgscv github repo:
https://github.com/weaponry/pgscv

grafana dashboard
https://grafana.com/grafana/dashboards/14540

wiki
https://github.com/weaponry/pgscv/wiki

habr
https://habr.com/ru/post/559550/

#postgresql #prometheus
источник
2021 September 24
Админим с Буквой
В команду Юлы нужен DevOps-инженер!

Наш идеальный кандидат на «ты» с Kubernetes, любит новые и интересные технологии, хочет их внедрять и применять. Большим плюсом будет опыт из смежных направлений разработки и широкий кругозор, ведь задачи могут быть самые разные – и трафик поанализировать, и подебажить упавшую сборку, и помочь коллегам с внедрением CI-инструментов.
Если тебе это интересно, ищи подробности (стек, требования, условия) по ссылке.
источник
2021 September 27
Админим с Буквой
Не пропустите вебинар «Выбираем правильно очередь сообщений» от Mail․ru Cloud Solutions

🗓 30 сентября, 17:00

При разработке распределенных приложений не обойтись без брокера очередей. Этот простой инструмент позволяет балансировать нагрузку, обеспечивает производительность и надежность системы.

На вебинаре вы узнаете:

— На что следует обратить внимание при выборе брокера очередей.
— Для каких задач их наиболее эффективно использовать.
— В чем отличия RabbitMQ, Kafka, облачных очередей и других аналогичных сервисов.

В конце вебинара вы сможете задать вопросы Владимиру Перепелице, архитектору Mail․ru Cloud Solutions и Tarantool.

👉 Регистрируйтесь: https://vk.cc/c5YzL7
источник
Админим с Буквой
Часовые столбики

Появилась задача нарисовать график, который будет показывать по-часовую агрегацию количества событий и сравнивать результат с теми же часами до других дней. В моём примере это -1, -7, -28 т.е. вчера, неделю назад и месяц назад.

Пример событий, для одного из графиков - успешные создания документов. т.е. нужно построить график столбиков (точек), просуммировав события за час и то же самое за вчера и позавчера, а потом наложить результаты друг на друга:

часы - события
0 - 10
1 - 24
2 - 13
...

Данные в нашем случае хранятся в postgresql, имеют колонку с необходимым статусом и колонку с таймштампом, когда событие случилось. Оказалось, что не прибегая ни к какому прометеусу, sql-exporter'у можно всё это нарисовать.

Для этого подключаем в качестве datasource вашу постгрю, указав специально созданного пользователя, которому нужно выдать select на необходимую таблицу.

Создаём как обычно дашборд, новый график и выбираем наш датасорс. При написании запроса я переключился в "text edit mode" потому что так сильно удобнее - писать запрос по сути как в саму постгрю. и далее можно создать нужные запросы.

первый запрос вот такой:

SELECT
 $__timeGroupAlias(created_at,1h,0),
 count(*) AS "0 day"
FROM smtdp_applicant
WHERE
 created_at BETWEEN $__timeFrom()::timestamptz and $__timeTo()::timestamptz
 and xxxx (наши условия фильтрования событий)
GROUP BY 1
ORDER BY 1

где

$__timeGroupAlias - специальная переменная графаны, куда мы передаём имя колонки с таймштампами (created_at) и параметр как мы хотим объединять (1h) - чтобы указать графане как мы хотим сгруппировать получившиеся после запроса value.

count(*) AS "0 day" - высчитываем количество событий и именуем этот результат на графике как "0 day"

$__timeFrom() и $__timeTo() - специальные переменные графаны в которые подставится таймштамп от масштаба графика. т.е. last 24h разложится на from и to, куда подставится таймштамп времени сколько сейчас и было сутки назад и постгрю полетит запрос xxxx::timestamptz.

А вот 2 и последующие запросы будут чуть интереснее:

SELECT
 $__timeGroupAlias(created_at + interval '24 hours',1h,0),
 count(*) AS "-1 day"
FROM smtdp_applicant
WHERE
 created_at BETWEEN $__timeFrom()::timestamptz - INTERVAL '1 DAY' and $__timeTo()::timestamptz - INTERVAL '1 DAY'
 and xxx
GROUP BY 1
ORDER BY 1

где
created_at BETWEEN $__timeFrom()::timestamptz - INTERVAL '1 DAY' and $__timeTo()::timestamptz - INTERVAL '1 DAY' - первая мякотка - мы сделаем запрос от нашего окна наблюдения на сутки влево. timestamptz нужно для того чтобы из этого таймштампа вычесть на уровне постгри сутки, 7 и 28. преобразование типов и всё такое.
$__timeGroupAlias(created_at + interval '24 hours',1h,0), - вторая мякотка. позволяет шифтануть полученный результат на указанный интервал. в нашем случае - на сутки вправо.

Таким образом мы получаем 2 запроса которые получают события за окно наблюдения "сутки" и "прошедшие сутки" и накладывают результат один на другой. повторяем то же самое для -7 и -28 и получаем нужный результат. Все картинки приложу отдельно.

#grafana #postgresql
источник
Админим с Буквой
источник
Админим с Буквой
источник
Админим с Буквой
источник
2021 September 28
Админим с Буквой
​​Друзья, у нас замурчательные новости!😻

30 сентября в 19:00 ребята из Слёрм и Tarantool соберутся в питерском котокафе, чтобы посчитать всех кошек города, а также найти каждую из них на карте! Для решения этой технической задачи они будут использовать немного Go и базу данных Tarantool.

Мероприятие бесплатное, онлайн-трансляция доступна всем, а для желающих пообщаться вживую есть 20 мест в кафе.

Не тяни кота за хвост, регистрируйся на странице: https://slurm.club/3zOcxLN
источник
2021 October 03
Админим с Буквой
вопросы на собеседование

Наброски вопросов на проверку софт скиллов нового сотрудника. список далеко не полный, ясное дело, но как скелет сойдёт.

умение оглядываться назад:
- какое заметное достижение за время работы в компании

умение оценивать текущую ситуацию:
- какое самое проблемное место в текущей инфраструктуре
- какие процессы не устраивают сейчас больше всего
- почему ищешь новое место

обучение и саморазвитие:
- что интересного изучил за последнее время, о чём хочется рассказать?
- интересуют ли какие-то курсы на которые хочется сходить?
- какие ожидания в профессиональном плане от нового рабочего места?
- есть ли какие-то вклады в opensource, статьи, выступления, видеозаписи?

расстановка приоритетов:
- представим ситуацию что в текущем спринте нет свободных слотов. приходит обычный сотрудник и просит ASAP сделать задачу. Как будем поступать?

умение работать в команде:
- сейчас в каком составе работаешь?
- есть ли обсуждения, review работы (MR), как регулярно?
- как вы обмениваетесь опытом? (Документация)

дежурства:
- готовность реагировать во внерабочее время
- допустимое количество обращений во внерабочее время

умение планировать будущее:
- если случаются инциденты, как мы с ними работаем?
- в каком формате происходит распределение задач
- какие задачи ты выбираешь делать и в каком порядке

самостоятельность:
- приведи пример улучшений которые были предложены и реализованы без задач
источник
2021 October 05
Админим с Буквой
​​DevOps-конференция DevOops 2021  (https://bit.ly/3yAA6aE)— 8-11 ноября, онлайн.

Вас будет ждать 4 дня докладов и воркшопов о культуре, процессах, инженерных решениях, лучших практиках и пост-мортемах.

Среди спикеров:
✔️Саша Розенбаум, старший менеджер в команде Managed OpenShift Black в Red Hat, организатор DevOpsDays Chicago, председатель DeliveryConf;
✔️Олег Ненашев, работал в core-команде проекта Jenkins в CloudBees, эксперт по автоматизации, инфраструктуре и фреймворкостроении;
✔️Петр Зайцев, сооснователь и генеральный директор компании Percona, эксперт в опенсорс, базах данных, оптимизации производительности MySQL, соавтор книги «MySQL. Оптимизация производительности», одной из самых популярных книг по теме.

Специально для нашего канала организаторы сделали промокод bykvaadm2021JRGpc — дает скидку на Personal Standard билет 🔥

Подробнее почитать о принятых в программу докладах и купить билет с очень приятной скидкой можно на сайте (https://bit.ly/3yAA6aE). Учтите, чем ближе конференция, тем выше стоимость билетов — не тяните с выгодной покупкой 😉
источник
2021 October 06
Админим с Буквой
Восстанавливаем /dev/null после своей рукожопости

создали ансиблом кривой симлинк на devnul? получите и распишитесь в том что ссш больше работать не будет. c оговоркой что не будет работать установка новой сессии. текущие не порвутся

mknod /dev/null c 1 3
chmod 666 /dev/null
источник
2021 October 12
Админим с Буквой
несколько полезностей для postgresql

https://pgstats.dev/?version=12
https://www.pgconfig.org/
источник
2021 October 13
Админим с Буквой
Стать программистом за 3 дня

«Невозможно», — могли подумать вы и были правы. Нельзя стать программистом за 3 дня, но разобраться, как устроен мир разработки и сделать к нему первые шаги — вполне реально.

На бесплатном трехдневном курсе Нетологии «Как стать программистом»  (https://netolo.gy/g8E)вы узнаете, чего ждать от профессии разработчика, подходит ли она вам и как сделать самое сложное — начать.

Сделайте первый шаг к большим возможностям, а мы поможем двигаться дальше. ↓
https://netolo.gy/g8E
источник
Админим с Буквой
21 октября Cloud Builders Сommunity приглашает на Build-up: DevOps Edition, тема билдапа - Azure!

В программе:

— Azure Kubernetes Service (AKS) CI / CD with GitHub - Томас Стрингер, Principal Software Engineer Lead at Microsoft

— Fireside chat с Диланом Битти, Systems architect and developer at Ursatile. С Диланом поговорим про Azure DevOps в формате fireside chat — неформальной дискуссии между модератором, спикером и участниками.

— Azure Policy + Terraform = Policy-As-Code - Александр Карпенко, Senior DevOps Engineer at Intellias

— Секретный спикер, который будет анонсирован позже.

📍Митап пройдет 21 октября в 19:00, онлайн. Участие бесплатное, язык - английский.

👉 Регистрация
источник
2021 October 15
Админим с Буквой
nslookup via textfile exporter

#!/bin/sh
prom_file="nslookup_exporter.prom"
TEXTFILE_COLLECTOR_DIR="/var/prometheus/textfile_exporter"
lookup () {
rm ${TEXTFILE_COLLECTOR_DIR}/${prom_file}.* 2>/dev/null || true
echo "# HELP node_nslookup dns lookup time in ms" >> "${TEXTFILE_COLLECTOR_DIR}/${prom_file}.$$"
echo "# TYPE node_nslookup gauge" >> "${TEXTFILE_COLLECTOR_DIR}/${prom_file}.$$"
r="api.cloudpayments.ru"; query=$(dig $r | awk '/Query time/||/SERVER/'); echo $query | awk -F'[ #]' -v "r=$r" '{print "node_nslookup{ns=\""$8"\",record=\""r"\"} "$4}' >> "${TEXTFILE_COLLECTOR_DIR}/${prom_file}.$$"
r="api.cloudpayments.ru"; query=$(dig $r @8.8.8.8 | awk '/Query time/||/SERVER/'); echo $query | awk -F'[ #]' -v "r=$r" '{print "node_nslookup{ns=\""$8"\",record=\""r"\"} "$4}' >> "${TEXTFILE_COLLECTOR_DIR}/${prom_file}.$$"
mv "${TEXTFILE_COLLECTOR_DIR}/${prom_file}.$$" "${TEXTFILE_COLLECTOR_DIR}/${prom_file}"
}
for i in $(seq 6); do
 lookup
 sleep 10s
done


вызываем кроном раз в минуту, в результате имеем через нод экспортер метрики

# HELP node_nslookup dns lookup time in ms
# TYPE node_nslookup gauge
node_nslookup{ns="1.2.3.4",record="api.cloudpayments.ru"} 0
node_nslookup{ns="8.8.8.8",record="api.cloudpayments.ru"} 15
источник
2021 October 19
Админим с Буквой
источник
Админим с Буквой
источник
Админим с Буквой
источник
Админим с Буквой
источник
Админим с Буквой
источник