
Max
17.03.2017
09:30:15
откуда там однообразность и консистентность?

Александр
17.03.2017
09:30:19
нет

Aldar
17.03.2017
09:30:31
у эрланга норм синтаксис, просто другой, поэтому никому не нравится

Max
17.03.2017
09:30:32
самые однообразные и консистентные — это перл и хаскель

Google

Max
17.03.2017
09:30:50

abc
17.03.2017
09:30:52
парни. можно отвлеку ? корректно ли Prometheus и ELK сравнивать ? Или кто пробовал оба решения для логов ?

Александр
17.03.2017
09:30:55
там они решили самую главную проблему языков програмирования (в Ruby), там весь код читается сверху вниз и слева направо
в перле почти весь код читался справа налево
потому он был непрост для поддержки
ELK вообще о другом

abc
17.03.2017
09:32:10
вот и я подумал что-то не так )

Александр
17.03.2017
09:32:46
думаю что решение будет отталкиваться от железа
у меня была куча машин на DO
и мне там тоже пришлось логи аггрегировать

Alexander
17.03.2017
09:33:09
первое для мониторинга, второе - логокосилка

Александр
17.03.2017
09:33:30
так вот logstash и остальные жрут много памяти

Google

Александр
17.03.2017
09:33:37
мне пришлось юзать https://github.com/influxdata/telegraf
и делать для него свой плагин

Marat
17.03.2017
09:33:58

Alexander
17.03.2017
09:34:03
я проникся графитом
и к нему уже графану
прямо эластик сосет сильно тут

Александр
17.03.2017
09:34:28
ну с инфлюкса в графану тоже хорошо выводиться

Alexander
17.03.2017
09:34:46
да, но я что-то не подружил инфлюкс с логами
графит же с statsd на ура

Александр
17.03.2017
09:36:53
а логи в эластике при наличии достаточного количества ресурсов очень приятно анализировать
и на kibana почему-то люди ругаются, а я даже нетехнарей научил отчёты строить
надо им новый отчёт? засунул данные в ES и они сами их анализируют

Alexander
17.03.2017
10:51:19
Кибана и эластик в конкатинацию не умеют

Alexey
17.03.2017
11:48:10
да ёбнутый синтаксис, что уж там
да ерунда это все. меня вот только одно выбешивает. можно написать в коде SomeModule.some_function, с учетом того, что SomeModule не существует. и при этом все чудесно запустится и будет работать, пока на это место не наступит

Alexander
17.03.2017
11:49:09
Но как бы и релиз не соберется думаю
Хотя нет, соберется

Max
17.03.2017
11:49:55
потому что модуль — это атом

Alexey
17.03.2017
11:50:35
ну вот как бы да. огорчает. особенно напишешь alias чтобы вместо Bla.Bla.Bla.SomeModule было Module и его забудешь добавить или удалишь по ошибке.

Google

Max
17.03.2017
11:50:45
кто бы мог подумать, что будут писать несуществующий модуль?

Alexey
17.03.2017
11:51:53
ну. вот сложно. ведь в виртуальной машине этот модуль может существовать и быть загружен
и перезагружен на ходу
побочные эффекты от динамики и других доп возможностей. типа как в линуксе можно сделать rm /
делаешь - ну значит так надо )

Mikhail
17.03.2017
11:53:21
спасёт только диалайзер, думаю

Alexey
17.03.2017
11:53:28
вот это надо проверить

Alexander
17.03.2017
11:57:08
warning: function SomeModule.some_func/1 is undefined (module SomeModule is not available)
это на mix compile
так что норм

Alexander
17.03.2017
12:00:34
Я есть оригинальный Александр :)

Alexander
17.03.2017
12:00:53
я бэкап

Alexander
17.03.2017
12:00:55
всё норм

Alexey
17.03.2017
12:04:14
так что норм
да. и на iex -S mix run тоже варнинг есть. так что вопрос снят. эликсир фарева

Alexander
17.03.2017
12:04:39
Не все так радужно
Mix.env если в релиз скомпилить, то узнаешь из крэшдампа потом

Dmitry
17.03.2017
12:09:01
Distillery не соберёт
Так что все норм
А для mix.env есть :system tuple про который внезапно никто не знает
По любой либе на гитхабе видно, пытался ли Ее создатель запускать в прод или нет

Google

shadowjack
17.03.2017
12:11:46

Alexey
17.03.2017
12:13:03
это похоже на то, как все соберется в си, с указанием extern функции. а ее реально нет.

shadowjack
17.03.2017
12:13:15
я бэкап
А у вас фейловер как сделан? Репликация мастер-мастер?

Alexander
17.03.2017
12:13:48
независимые, гарантируется eventual consistency
лет через 200

Alexander
17.03.2017
12:14:21
Даже не пернуло

Dmitry
17.03.2017
12:15:10
Всё правильно, я перепутал

Admin
ERROR: S client not available

Dmitry
17.03.2017
12:15:18
Упадёт в проде
Кстати может упасть ещё раньше, если юзаешь нативные эрланг либы, которые не подтянутся в релиз
Пацаны, пишу статью "Почему ваша API либа - говно". Приветствуются всё говно, которые вы когда-либо находили в API либах
Укажу в соавторы как всегда)
Основные претензии на сегодняшний момент:
- Не продакшн реди
- Нельзя сделать прокси
- Нельзя использовать параллельно несколько пользователей/токенов, потому что токен указывается в конфиге
- Одна единственная ошибка "MySuperLib.Error" которую нельзя никак запаттернматчить

Alexander
17.03.2017
12:19:55

Dmitry
17.03.2017
12:19:57
- Впринципе подход либо :ok|:error везде либо raise везде
Самое классное - это когда либа raise и одна ошибка на все случаи жизни

Alexey
17.03.2017
12:21:19
идем на https://github.com/h4cc/awesome-elixir
берем к примеру либу для телеграм
https://github.com/Yawolf/yocingo
и там читаем:
The libary is completed!! Yay! And it is accesible in the Hex repository! ^_^
и в то же время:
This is my first Elixir program, so please, don't be hard with me....
И вот блин.... ну вообще ниочем такие либы.

Google

Ivan
17.03.2017
12:21:20

shadowjack
17.03.2017
12:21:28

Dmitry
17.03.2017
12:22:37
И приходится писать что-то типо
elixir
rescue MySuperLib.Error e->
if e.message.starts_with "Bad connection" do....
if e.message.starts_with "Bad request" do
У меня просто пригорел пукан
Вместо спокойного MySuperLib.BadConnectionError
Жалко им пару defmodule написать

shadowjack
17.03.2017
12:23:30

Max
17.03.2017
12:23:55
напишите свою лучше, зачем засовывать?
насильно же не заставляют пользоваться, опенсорц

shadowjack
17.03.2017
12:24:26
Ну форкнуть у пулл реквест

Alexey
17.03.2017
12:24:58
ну. вот в Poison.Parser.parse! и parse. в одном случае raise в другом :ok/:error. как хочешь, так и пиши

Alexander
17.03.2017
12:25:09

Dmitry
17.03.2017
12:25:33
Я хотел. Но изза того что ошибка одна на всё, он СРАЗУ на неё проверяет, а потом если нету - парсит ответ

Alexey
17.03.2017
12:25:36
пишу статью "почему ваша статья/доклад - говно"....

Dmitry
17.03.2017
12:25:45
Соответственно надо переписать всю либу нахер
Или манкипатчить throw и catch что превращает код в ещё большее говно

Alexander
17.03.2017
12:28:47
Как раз не понравилось что прямо джава. Логика на эксепшенах
Удивительно, но плаг - охуенен
Я ведь все помню