
Анастасия
18.10.2018
14:50:01
это либо макрос, и тогда нет проблем разделить compile/runtime через quote (https://thepugautomatic.com/2015/10/understanding-elixir-macros/),
либо она выполнится только в runtime
попробовала в iex, действительно обычная функция в атрибуте выполняется в compile time, была не права сори)

Vladimir
18.10.2018
14:57:30
:) Это особенность module attribute - их значение вычисляется строго в compile time. За счёт чего можно получить ускорение работы кода, сделав работу заранее в компайл-тайм.
Так-то конечно можно сам Elixir чуток дописать, но вдруг есть какой-то штатный способ. :)

Google

Le
18.10.2018
15:01:54
Нельзя ли сделать другую функцию без пре/пост обработчиков?
Ифы на компаил и рантайм прям новый круг ада

Vladimir
18.10.2018
15:03:20
Короч там такой кейс, что pre и post обработчики генерятся автоматически другой библиотекой. :) Cобсно обложить функции такими обработчиками и есть главная задача. =)
Т.е. решение в лоб - не использовать атрибуты модуля для таких функций.
Но это ж везде править код надо, ходить по файлам... а тут бы так, вжух - и нагенерил.

Dude
18.10.2018
15:04:35
запахло духом Александреску

Dmitry
18.10.2018
15:04:46

Vladimir
18.10.2018
15:08:16
ладно, поколдую ещё. :)

Dmitry
18.10.2018
15:17:02
Вообще тут правильно говорят. Стоит переписать функцию которая вызывается в аттрибутах или создать другую без пост-пре обработчиков. Если проверять внутри это функции compile-time или нет, то налицо явно нарушение soliD-принципа

Le
18.10.2018
15:17:20
@VladPotap можно что-то типа такого попробовать
https://thepugautomatic.com/2015/09/testing-compile-time-exceptions-in-elixir/

Александр
18.10.2018
15:20:25
а @on_definition + Module.put_attribute не поможет?

Vladimir
18.10.2018
15:20:33

Google

Александр
18.10.2018
15:24:02
а можешь дать минимальный код того что делаете? сложно нарезать?

Vladimir
18.10.2018
15:37:10
не, не смогу. =) нарезать будет сложновато и весь код под nda.
Но это такое... из серии "хочется странного". :) Как только компилятор даёт возможность трансформировать AST, сразу начинается вот это вот)

Александр
18.10.2018
15:46:07
а модуль с помощью которого навешиваете хуки вы сами написали или готовый чей-то?

Vladimir
18.10.2018
15:59:04
как раз пример навеса пре и пост функций

Fey
18.10.2018
16:14:48
если явсё правильно понял, можно в модуль, который использует либу засадить @before_compile хук, в котором засадить флажок в дикт процесса, типа Process.put(:compile_time, true), а затем уже в пре/пост-хуках его проверять
defmodule CompileTimeTrap do
defmacro __before_compile__(_env) do
quote do
Process.put(:compile_time, true)
end
end
end
defmodule Test do
@before_compile CompileTimeTrap
use ExRay, pre: :pre_fun
defp pre_fun(ctx) do
if Process.get(:compile_time) do
# ...
end
end
end

Buckler
18.10.2018
17:28:25
Привет, Semyon!
Пожалуйста, реши капчу:
Вычисли: 67+47=...
Осталось попыток: 3
Если не решишь - забаню навеки...
Удачи!

Alexander
18.10.2018
18:02:53
в конкретном кейсе, с чем столкнулся Вова, в компайл-тайме идет обращение к ets и вызов падает, из-за этого не компилится


Serge
18.10.2018
20:05:20
Привет всем! Народ, подскажите, что лучше использовать для сбора метрик?

Alexey
18.10.2018
20:59:04
new relic, sentry?
или в стиле yandex.metrika имеется в виду?

Serge
19.10.2018
07:24:41
я имею в виду сбор системных и кастомных метрик, который можно реализовать через Graphite, InfluxDB, Datadog и тд.
Мне интересно, кто чем пользуется на продакшне

abc
19.10.2018
07:26:45
Жду что-то подобное ELK, но вместо Elastic чтобы Clickhouse. Одна компания пилит такое решенеие для куба вроде бы. А то Elastic уж больно жирный

Serge
19.10.2018
07:30:38
я смотрю в стороно Telegraf - InfluxDB - Grafana, что-то от яндекса точно не одобрят мне
смотрел DataDog но он сложный и дорогой

abc
19.10.2018
08:03:45
есть SaaS Timber ) Сервис на Elixir

Google

Stanislav
19.10.2018
08:13:21

Serge
19.10.2018
08:14:07
Prometheus - да, как вариант self-hosted
в конце-концов можно в Cloudwatch метрики вести, но тогда нужно дописывать библиотеку для работы с Cloudwatch
Grafana подключается к Cloudwatch без проблем тоже
всё же интересно у кого и как уже работает, думаю что есть тут люди прошедшие эти этапы
по хорошему ещё бы от Sentry отказаться и перенести всё в одно место (метрики и репорты по ошибкам)

Stanislav
19.10.2018
08:18:12

Serge
19.10.2018
08:18:58
в прометеусе "родная" библиотека для Elixir и это +, конечно
ну и там графана не нужна особо, всё уже есть

Stanislav
19.10.2018
08:20:01

Serge
19.10.2018
08:21:21

Stanislav
19.10.2018
08:23:49
Может new relic если им заплатить

Alexey
19.10.2018
08:29:17
я не знаю, на сколько это в тему, но тут еще про riemann говорили раньше
http://riemann.io/

abc
19.10.2018
08:31:21
https://habr.com/company/pixonic/blog/426875/ обсуждали?

Kioshimafx
19.10.2018
09:14:50
парни из фланта пилят
отличное решение, использую у себя в проде уже месяца 4 https://github.com/flant/loghouse, правда накатывал не через helm как они предлагают.
правда это не совсем для метрик )) это для логов, а для метрик как уже сказали выще на данный момент почти все сидят на Prometheus
Тру олдфаги на zabbix

Google

Buckler
19.10.2018
09:23:02
Привет, Corny!
Пожалуйста, реши капчу:
Вычисли: 7+37=...
Осталось попыток: 3
Если не решишь - забаню навеки...
Удачи!

abc
19.10.2018
09:52:04
так есть же loghouse
Вот я про него и думал. Когда недавно смотрел он был ещё сырой. Надо попробовать поставить

Le
19.10.2018
09:55:05
Из бесплатных Prometheus норм, библиотеки у него кстати не очень.
Из платных датадог прям топчик
Цена у датадога $15 за хост, что не дорого
Ну это если без апм

Serge
19.10.2018
09:59:07

Le
19.10.2018
10:01:07
а что не гуманного? $1.27 за лям лог эвентов
бывает гораздо проще пушить в локальный агент, который уже будет отсылать в нужный сервис и не переживать

Serge
19.10.2018
10:11:46

abc
19.10.2018
13:52:48
да тоже есть опыт работы с датадог. суммы получались большие. ушли с него

Anatoliy Kovalchuk
19.10.2018
16:52:31
на что ушли?

abc
19.10.2018
17:09:39
ELK

Otto fon
19.10.2018
22:21:50
ELK
Выкидывание туда логов с анализом и сам filebeat вызвали очень много боли(без logstash-a)
Думаем над graylog-ом
Кто-то юзал?

Anon
20.10.2018
02:48:08
Сможет ли чат хорошо работать если писать его на Java? Можете посоветовать что-то?

Alexey
20.10.2018
04:56:16
Отличный вопрос для чата джавистов

Anon
20.10.2018
05:12:23

Alexey
20.10.2018
05:13:10
В телеграме? Полагаю, есть, вы сейчас в чате эликсирщиков

Anon
20.10.2018
05:13:50
Я понимаю. Хочу знать мнение именно эликсирщиков

Google

Alexey
20.10.2018
05:14:36
Конечно можно, почему нет
И работать будет хорошо)

Anon
20.10.2018
05:17:42
Вот вопрос в этом ) собираемся чат писать, все разработчики говорят что владеют только Джавой, никто не знаком с Earlang/Elixir. А я вот переживаю на счёт скорости, эффективности и так далее
Думал услышать ваше мнение

Alexey
20.10.2018
05:18:49
А какая нагрузка ожидается?

Anon
20.10.2018
05:19:09
Имеете ввиду сколько пользователей ?