|
| 1 | +#!/bin/sh |
| 2 | + |
| 3 | +CLICKHOUSE_DB="${CLICKHOUSE_DB:-database}"; |
| 4 | +CLICKHOUSE_USER="${CLICKHOUSE_USER:-user}"; |
| 5 | +CLICKHOUSE_PASSWORD="${CLICKHOUSE_PASSWORD:-password}"; |
| 6 | + |
| 7 | +cat <<EOT >> /etc/clickhouse-server/users.d/user.xml |
| 8 | +<yandex> |
| 9 | + <!-- Docs: <https://clickhouse.tech/docs/en/operations/settings/settings_users/> --> |
| 10 | + <users> |
| 11 | + <${CLICKHOUSE_USER}> |
| 12 | + <profile>default</profile> |
| 13 | + <networks> |
| 14 | + <ip>::/0</ip> |
| 15 | + </networks> |
| 16 | + <password>${CLICKHOUSE_PASSWORD}</password> |
| 17 | + <quota>default</quota> |
| 18 | + </${CLICKHOUSE_USER}> |
| 19 | + </users> |
| 20 | +</yandex> |
| 21 | +EOT |
| 22 | +#cat /etc/clickhouse-server/users.d/user.xml; |
| 23 | + |
| 24 | +clickhouse-client --query "CREATE DATABASE IF NOT EXISTS ${CLICKHOUSE_DB}"; |
| 25 | + |
| 26 | +echo -n ' |
| 27 | +SET input_format_import_nested_json = 1; |
| 28 | +' | clickhouse-client |
| 29 | + |
| 30 | +echo -n ' |
| 31 | +SET output_format_json_array_of_rows = 1; |
| 32 | +' | clickhouse-client |
| 33 | + |
| 34 | +echo -n "SET date_time_input_format='best_effort';" | clickhouse-client |
| 35 | + |
| 36 | +echo -n ' |
| 37 | +CREATE TABLE r0.alerts |
| 38 | +( |
| 39 | + `date` Date DEFAULT toDate(now()), |
| 40 | + `datetime` DateTime DEFAULT now(), |
| 41 | + `timestamp` DateTime64(3) DEFAULT now() CODEC(Delta(4), ZSTD(1)), |
| 42 | + `startsAt` DateTime64(3), |
| 43 | + `endsAt` DateTime64(3), |
| 44 | + `updatedAt` DateTime64(3), |
| 45 | + `status.inhibitedBy` Array(String), |
| 46 | + `status.silencedBy` String, |
| 47 | + `status.state` LowCardinality(String), |
| 48 | + `annotations.summary` String, |
| 49 | + `annotations.dashboard` String, |
| 50 | + `annotations.link` String, |
| 51 | + `fingerprint` String, |
| 52 | + `receivers` Array(String), |
| 53 | + `labelsmap` Map(String, String), |
| 54 | + `labels.alertname` String, |
| 55 | + `labels.component` String, |
| 56 | + `labels.service` String, |
| 57 | + `labels.instance` String, |
| 58 | + `labels.job` String, |
| 59 | + `labels.metal` String, |
| 60 | + `labels.notify` String, |
| 61 | + `labels.priority` String, |
| 62 | + `labels.prometheus` String, |
| 63 | + `labels.region` String, |
| 64 | + `labels.severity` String |
| 65 | +) |
| 66 | +ENGINE = MergeTree |
| 67 | +PARTITION BY toStartOfHour(datetime) |
| 68 | +ORDER BY labels.alertname |
| 69 | +SETTINGS index_granularity = 8192;' | clickhouse-client |
| 70 | + |
| 71 | +echo -n ' |
| 72 | +CREATE TABLE r0.silences |
| 73 | +( |
| 74 | + `date` Date DEFAULT toDate(now()), |
| 75 | + `datetime` DateTime DEFAULT now(), |
| 76 | + `id` String, |
| 77 | + `status.state` LowCardinality(String), |
| 78 | + `updatedAt` DateTime64(3), |
| 79 | + `startsAt` DateTime64(3), |
| 80 | + `createdBy` LowCardinality(String), |
| 81 | + `endsAt` DateTime64(3), |
| 82 | + `matchers` Map(String, String), |
| 83 | + `comment` String |
| 84 | +) |
| 85 | +ENGINE = ReplacingMergeTree |
| 86 | +PARTITION BY toStartOfHour(datetime) |
| 87 | +ORDER BY (id, startsAt, endsAt) |
| 88 | +SETTINGS index_granularity = 8192; |
| 89 | +' | clickhouse-client |
0 commit comments