• Vue + cordova оптимальный процесс разработки?

    redflasher
    @redflasher
    ссылка не рабочая(
    вероятно эта актуальная: https://github.com/vuetifyjs
  • Как подключить zabbix-мониторинг postgres, запущенные с помощью docker-compose?

    redflasher
    @redflasher Автор вопроса
    Vitaly Karasik, спасибо за обсуждение!
    Насчет Prometheus или Stackdriver - может в будущем посмотрю. Это пока мой первый опыт работы с системой мониторинга (не считая munin, который наверняка и хорош, но чет не сильно мне был понятен, как не профессиональному админщику).
  • Как подключить zabbix-мониторинг postgres, запущенные с помощью docker-compose?

    redflasher
    @redflasher Автор вопроса
    для работы в такой конфигурации

    если речь о двух изолированных контенерах, в одном общем docker-compose,
    то нужен и сам плагин для мониторинга Postgres (а это по сути что-то вроде bash-скрипта), и сам софт, который он использует.
    Для примера, вот сама команда pgsql.ping:
    UserParameter=pgsql.ping[*],/bin/echo -e "\\\timing \n select 1" | psql -qAtX $1 | tail -n 1 |cut -d' ' -f2|sed 's/,/./'


    Или вот кусок самого плагина для мониторинга Postgres:
    spoiler

    # Background writer statistics. https://www.postgresql.org/docs/9.6/static/monitor...
    UserParameter=pgsql.bgwriter[*],psql -qAtX $1 -c "SELECT row_to_json(j) FROM (SELECT checkpoints_timed, checkpoints_req, checkpoint_write_time, checkpoint_sync_time, current_setting('block_size')::int*buffers_checkpoint AS buffers_checkpoint, current_setting('block_size')::int*buffers_clean AS buffers_clean, maxwritten_clean, current_setting('block_size')::int*buffers_backend AS buffers_backend, buffers_backend_fsync, current_setting('block_size')::int*buffers_alloc AS buffers_alloc FROM pg_stat_bgwriter) AS j"

    # pg_buffercache - extension which allow examining what's happening in the shared buffer cache in real time. https://www.postgresql.org/docs/9.6/static/pgbuffe...
    UserParameter=pgsql.buffercache[*],psql -qAtX $1 -c "SELECT row_to_json(j) FROM (SELECT current_setting('block_size')::int*count(*) AS total, current_setting('block_size')::int*sum(CASE WHEN isdirty THEN 1 ELSE 0 END) AS dirty, current_setting('block_size')::int*sum(CASE WHEN isdirty THEN 0 ELSE 1 END) AS clear, current_setting('block_size')::int*sum(CASE WHEN reldatabase IS NOT NULL THEN 1 ELSE 0 END) AS used, current_setting('block_size')::int*sum(CASE WHEN usagecount>=3 THEN 1 ELSE 0 END) AS popular FROM pg_buffercache) AS j"

    # General info
    UserParameter=pgsql.ping[*],/bin/echo -e "\\\timing \n select 1" | psql -qAtX $1 | tail -n 1 |cut -d' ' -f2|sed 's/,/./'
    UserParameter=pgsql.uptime[*],psql -qAtX $1 -c "select date_part('epoch', now() - pg_postmaster_start_time())::int"
    UserParameter=pgsql.cache.hit[*],psql -qAtX $1 -c "select round(sum(blks_hit)*100/sum(blks_hit+blks_read), 2) from pg_stat_database"


    Тут можно увидеть, что плагин состоит из множества строк, начинающихся с UserParameter, каждая из которых - отдельная команда типа того же pgsql.ping.
    И там же видно, что каждая команда обращается к программе "psql", отсутствующей по умолчанию в контейнере zabbix-agent.
    Возможно есть смысл поставить psql отдельно, без установки всего postgres-сервера, в контейнер к zabbix-agent'у.
    Но я пока решил ставить дополнительный zabbix-agent в контейнер с postgres.
  • Как подключить zabbix-мониторинг postgres, запущенные с помощью docker-compose?

    redflasher
    @redflasher Автор вопроса
    Vitaly Karasik, к сожалению такой вариант не работает, по той причине, что zabbix-get существует в контейнере с zabbix-agent'ом, а psql - в контейнере с postgres.
    А вызываемая zabbix-agent'ом UserParameter-команда
    -k pgsql.ping['-h database -p 5432 -U postgres -d mydb']

    пытается вызвать как раз psql, которого в контейнере с zabbix-agent'ом не имеется.
    Так что, похоже, решением все-таки может быть только предложение Pavel .

    --
    я пытался решить через curl(который, вместе с jq, тоже надо было еще доставить в контейнер с zabbix-agent'ом), и получалось что-то вроде такого монстра:

    curl -s --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{"Detach": false, "Tty":false}' -X POST localhost:4243/exec/$(curl -s -H 'Content-Type: application/json' --unix-socket /var/run/docker.sock localhost:4243/containers/zabbix-agent/exec?stdout=1 -d '{"AttachStdout":true, "Cmd":["date"]}' | jq '.Id' | sed -e 's/^"//' -e 's/"$//')/start 2>&1 | cat


    это уже финальный вариант (если не считать, что выполняется пока только лишь команда "date", а не psql, и к тому же не в том контейнере), но он состоит из 2 запросов Docker API и его можно разложить на:

    1. шлем запрос на выполнение команды:
      curl -H 'Content-Type: application/json' --unix-socket /var/run/docker.sock localhost:4243/containers/zabbix-agent/exec?stdout=1 -d '{"AttachStdout":true, "Cmd":["date"]}' | jq '.Id' | sed -e 's/^"//' -e 's/"$//'

      и получаем в ответ Id запроса

    2. запускаем саму команду
      curl -s --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{"Detach": false, "Tty":false}' -X POST localhost:4243/exec//start 2>&1 | cat

  • Как подключить zabbix-мониторинг postgres, запущенные с помощью docker-compose?

    redflasher
    @redflasher Автор вопроса
    спасибо, думаю надо копать в этом направлении.
  • Как написать ботом ответ на команду в телеграм?

    redflasher
    @redflasher
    Если использовать веб-хуки, то так (это файл hook.php, на который приходят веб-хуки):

    try {
        $telegram = new Longman\TelegramBot\Telegram($bot_api_key, $bot_username);
    
        $message = Request::getInput();
        $message = json_decode($message);
        $chat_id = $message->message->chat->id;
    
        $text    = 'Ответ!!!';
    
        $data = [
            'chat_id' => $chat_id,
            'text'    => $text,
        ];
    
        return Request::sendMessage($data);
    
    } catch (Longman\TelegramBot\Exception\TelegramException $e) {
        // echo $e->getMessage();
    }
  • Postgresql - почему не получается войти под новыми пользователями?

    redflasher
    @redflasher
    Возможно пользователь(роль) создан без права подключения. Чтобы такое право было, надо добавлять ... WITH LOGIN.
  • Как правильно запускать Pm2 из под Ubuntu/Linux?

    redflasher
    @redflasher
    Алексей, в документации есть параметр --home (или может --dir, не помню точно), который позволяет указать домашнюю директорию скрипта. Его и надо юзать.
  • Кто виноват: pm2, линух или я тупой?

    redflasher
    @redflasher
    У Вас же там 1s аптайма - момент старта, пиковый скачок. Не запускал в режиме cluster. Тут или по поводу этого режима мануалы смотреть надо(может там этот параметр означает что-то другое?), или pm2 "по-своему" смотрит на вещи.
    Но тут явно не проценты 1 машины - в сумме остальных 3 процессов тоже по cpu более 100% получается. И тоже в момент старта.
  • Как зарабатывают создатели децентрализованных приложений?

    redflasher
    @redflasher
    DENIS SHELESTOV, в зависимости от настроек) как правило - владельцу агрегатора, т.е. разработчику.
    Но это конечно еще зависит от того, между кем и кем происходит транзакция - как и в обычных платежных агрегаторах. Если одна из сторон хочет свою комиссию за перевод - то ее комиссия прибавляется к отправляемой покупателем сумме. Но это так, очевидные уже вещи.
    Зарегистрируйтесь в каком-либо агрегаторе, поддерживающем крипто-валюту и посмотрите сами. В free-kassa.ru например(там биткоины точно есть).
  • Как вывести блок в зависимости от даты?

    redflasher
    @redflasher
    Эрлан Капаров, Жесть)
    Ну, тогда Вы можете попробовать парсить:
    ...
    var newsDate = $(".news-item_title").html();//выбрали из всего только дату в формате дд.мм.гггг
    //и далее парсим строку
    var dateArr = newsDate.split(".");//получаем массив из 3 ячеек - день, месяц, год
    //и далее создаем нормальную дату в js:
    var realNewsDate = new Date();
    realNewsDate.setDay(dateArr[0]);
    realNewsDate.setMonth(dateArr[1]);
    realNewsDate.setYear(dateArr[2]);
    //и только потом сравниваем полученную дату с текущей, как описывал выше
    ...
  • Как вывести блок в зависимости от даты?

    redflasher
    @redflasher
    Эрлан Капаров, а откуда вообще данные берутся? И что Вы программируете?(фронтенд сайта или, может, плагин к браузеру)
  • Как сделать build ios приложения?

    redflasher
    @redflasher
    Дмитрий Цечоев, в настройках проекта XCode есть поле где нужно выбрать разработчика. Сейчас у меня он не установлен - точнее не подскажу. Но в общем если там ничего не выбрать(а по умолчанию при создании проекта там ничего не выбрано), то коду нечем будет подписывать файл. Возможно что копать Вам нужно в этом направлении.
    --
    по поводу "в настройках проекта XCode" - в XCode слева есть панель, где находится список с файлами проекта.
    Там надо щелкнуть на какой-то из файлов(возможно как раз options.plist или что-то в этом роде), чтобы в основном окне открылся список настроек, о котором шла речь выше.
    --
    точного ответа на Ваш вопрос не знаю.
  • Как сделать build ios приложения?

    redflasher
    @redflasher
    Он генерируется XCode на одном из шагов. Наполнение соответственно уже есть в самом файле.
    Больше информации о нем можно узнать из руководство по разработке iOS (я сам ничего по поводу этого файла более сказать не могу - не знаю).
  • Литература по разработке под iOS?

    redflasher
    @redflasher
    Василий Усов "Swift. Основы разработки приложений под iOS и macOS", 2017г