Pull to refresh

Comments 10

Заголовок и теги поменяйте/впишите GitLab. Все таки у вас речь идет именно про него и только!
Мне не совсем понятен этот момент
#		Формирование и отправка сообщения в файл
		if out_log_file_name:

Я так понимаю вы формируете что-то вроде json?
Разве нельзя нормально писать через модуль json
json.dump(data,file)


или на худой конец писать в БД
Мне не совсем понятен этот момент

# Формирование и отправка сообщения в файл
if out_log_file_name:

Проверка есть ли в переменной значение, если она пустая, то в файл результат писаться не будет. По поводу json — ничего не формирую, изначально задача стаяла отправлять всё в GreyLog, отправку в файл сделал только ради этой статьи.
Мне не совсем понятен этот момент

# Формирование и отправка сообщения в файл
if out_log_file_name:

Проверка есть ли в переменной значение, если она пустая, то в файл результат писаться не будет. По поводу json — ничего не формирую, изначально задача стаяла отправлять всё в GreyLog, отправку в файл сделал только ради этой статьи.
Я для такого мониторинга использую просто интеграцию по Slack
Интересное решение. Можно подробнее?
При установке через omnibus, конфигурация подключения к postgresql немного иная.
/opt/gitlab/embedded/bin/psql --port 5432 -h /var/opt/gitlab/postgresql -d gitlabhq_production

Немного критики (возможно даже конструктивной).


  • Хардкодить константы — не очень изящное решение. На мой взгляд, куда интереснее брать их из переменных окружения. Всё равно же через systemd запускаете.
  • По psycopg2 Вы не очень внимательно документацию почитали. В частности, вот тут (таких мест несколько, взял первое попавшееся):


    sql_string_find_username="""SELECT extern_uid FROM identities WHERE user_id = (SELECT user_id FROM keys WHERE id = %s);""" %user_key

    Вы наступаете на те самое грабли, про который документация не говорит, а кричит: Never, never, NEVER use Python string concatenation (+) or string parameters interpolation (%) to pass variables to a SQL query string. Not even at gunpoint.


  • Опять же, про psycopg2: задавать соединение можно очень красиво:


    conn = psycopg2.connect(dsn='postgres://user:password@host:5432/database')

    и да, зачем устанавливать соединение в обработчике строки? Мне кажется, что лучше создать одно соединение (или пул, не принципиально) при старте скрипта.
    К слову, и сам объект подключения psycopg2, и его курсор можно использовать как менеджер контекста. Код получается чище, плюс не надо париться о закрытии.


  • Запись в лог — вообще что-то странное :) комментировать не берусь.

А если субъективно, то такие штуки круче на баше писать. Получается куда выразительнее :)

Sign up to leave a comment.

Articles