Integrating clickhouse for metrics.
This commit is contained in:
@@ -94,7 +94,7 @@ config :spark,
|
||||
]
|
||||
|
||||
config :mixer,
|
||||
ecto_repos: [Mixer.Repo],
|
||||
ecto_repos: [Mixer.Repo, Mixer.ClickhouseRepo],
|
||||
generators: [timestamp_type: :utc_datetime],
|
||||
ash_domains: [Mixer.Accounts, Mixer.Posts],
|
||||
ash_authentication: [return_error_on_invalid_magic_link_token?: true]
|
||||
@@ -158,6 +158,11 @@ config :logger, :default_formatter,
|
||||
# Use Jason for JSON parsing in Phoenix
|
||||
config :phoenix, :json_library, Jason
|
||||
|
||||
# ClickHouse repo — migrations live in priv/clickhouse/migrations
|
||||
config :mixer, Mixer.ClickhouseRepo,
|
||||
priv: "priv/clickhouse",
|
||||
migration_source: "ch_schema_migrations"
|
||||
|
||||
# Import environment specific config. This must remain at the bottom
|
||||
# of this file so it overrides the configuration defined above.
|
||||
import_config "#{config_env()}.exs"
|
||||
|
||||
@@ -106,3 +106,12 @@ config :ex_aws, :s3,
|
||||
config :waffle,
|
||||
bucket: "mixer-bucket",
|
||||
asset_host: "http://localhost:9000"
|
||||
|
||||
# ClickHouse (default local install)
|
||||
config :mixer, Mixer.ClickhouseRepo,
|
||||
scheme: "http",
|
||||
hostname: "localhost",
|
||||
port: 8123,
|
||||
database: "mixer_metrics",
|
||||
username: "default",
|
||||
password: ""
|
||||
|
||||
@@ -22,6 +22,11 @@ end
|
||||
|
||||
config :mixer, MixerWeb.Endpoint, http: [port: String.to_integer(System.get_env("PORT", "4000"))]
|
||||
|
||||
# ClickHouse is available in all environments via env vars when set
|
||||
if clickhouse_url = System.get_env("CLICKHOUSE_URL") do
|
||||
config :mixer, Mixer.ClickhouseRepo, url: clickhouse_url
|
||||
end
|
||||
|
||||
if config_env() == :prod do
|
||||
database_url =
|
||||
System.get_env("DATABASE_URL") ||
|
||||
@@ -40,6 +45,19 @@ if config_env() == :prod do
|
||||
# pool_count: 4,
|
||||
socket_options: maybe_ipv6
|
||||
|
||||
# ClickHouse — configure via CLICKHOUSE_URL or individual vars
|
||||
unless System.get_env("CLICKHOUSE_URL") do
|
||||
config :mixer, Mixer.ClickhouseRepo,
|
||||
scheme: System.get_env("CLICKHOUSE_SCHEME", "http"),
|
||||
hostname:
|
||||
System.get_env("CLICKHOUSE_HOST") ||
|
||||
raise("Missing environment variable `CLICKHOUSE_HOST`!"),
|
||||
port: String.to_integer(System.get_env("CLICKHOUSE_PORT", "8123")),
|
||||
database: System.get_env("CLICKHOUSE_DATABASE", "mixer_metrics"),
|
||||
username: System.get_env("CLICKHOUSE_USERNAME", "default"),
|
||||
password: System.get_env("CLICKHOUSE_PASSWORD", "")
|
||||
end
|
||||
|
||||
# The secret key base is used to sign/encrypt cookies and other secrets.
|
||||
# A default value is used in config/dev.exs and config/test.exs but you
|
||||
# want to use a different value for prod and you most likely don't want
|
||||
|
||||
@@ -42,3 +42,12 @@ config :phoenix_live_view,
|
||||
# Sort query params output of verified routes for robust url comparisons
|
||||
config :phoenix,
|
||||
sort_verified_routes_query_params: true
|
||||
|
||||
# ClickHouse — point at a dedicated test database
|
||||
config :mixer, Mixer.ClickhouseRepo,
|
||||
scheme: "http",
|
||||
hostname: "localhost",
|
||||
port: 8123,
|
||||
database: "mixer_metrics_test",
|
||||
username: "default",
|
||||
password: ""
|
||||
|
||||
Reference in New Issue
Block a user