feat(infra-dev): add opentelemetry and grafana (#12808)
This commit is contained in:
36
Makefile
36
Makefile
@ -1,5 +1,11 @@
|
|||||||
|
DOCKER_NETWORK=twenty_network
|
||||||
|
|
||||||
|
ensure-docker-network:
|
||||||
|
docker network inspect $(DOCKER_NETWORK) >/dev/null 2>&1 || docker network create $(DOCKER_NETWORK)
|
||||||
|
|
||||||
postgres-on-docker:
|
postgres-on-docker:
|
||||||
docker run -d \
|
make ensure-docker-network
|
||||||
|
docker run -d --network $(DOCKER_NETWORK) \
|
||||||
--name twenty_pg \
|
--name twenty_pg \
|
||||||
-e POSTGRES_USER=postgres \
|
-e POSTGRES_USER=postgres \
|
||||||
-e POSTGRES_PASSWORD=postgres \
|
-e POSTGRES_PASSWORD=postgres \
|
||||||
@ -17,7 +23,31 @@ postgres-on-docker:
|
|||||||
-c "CREATE DATABASE \"test\" WITH OWNER postgres;"
|
-c "CREATE DATABASE \"test\" WITH OWNER postgres;"
|
||||||
|
|
||||||
redis-on-docker:
|
redis-on-docker:
|
||||||
docker run -d --name twenty_redis -p 6379:6379 redis/redis-stack-server:latest
|
make ensure-docker-network
|
||||||
|
docker run -d --network $(DOCKER_NETWORK) --name twenty_redis -p 6379:6379 redis/redis-stack-server:latest
|
||||||
|
|
||||||
clickhouse-on-docker:
|
clickhouse-on-docker:
|
||||||
docker run -d --name twenty_clickhouse -p 8123:8123 -p 9000:9000 -e CLICKHOUSE_PASSWORD=clickhousePassword clickhouse/clickhouse-server:latest \
|
make ensure-docker-network
|
||||||
|
docker run -d --network $(DOCKER_NETWORK) --name twenty_clickhouse -p 8123:8123 -p 9000:9000 -e CLICKHOUSE_PASSWORD=devPassword clickhouse/clickhouse-server:latest \
|
||||||
|
|
||||||
|
grafana-on-docker:
|
||||||
|
make ensure-docker-network
|
||||||
|
docker run -d --network $(DOCKER_NETWORK) \
|
||||||
|
--name twenty_grafana \
|
||||||
|
-p 4000:3000 \
|
||||||
|
-e GF_SECURITY_ADMIN_USER=admin \
|
||||||
|
-e GF_SECURITY_ADMIN_PASSWORD=admin \
|
||||||
|
-e GF_INSTALL_PLUGINS=grafana-clickhouse-datasource \
|
||||||
|
-v $(PWD)/packages/twenty-docker/grafana/provisioning/datasources:/etc/grafana/provisioning/datasources \
|
||||||
|
grafana/grafana-oss:latest
|
||||||
|
|
||||||
|
opentelemetry-collector-on-docker:
|
||||||
|
make ensure-docker-network
|
||||||
|
docker run -d --network $(DOCKER_NETWORK) \
|
||||||
|
--name twenty_otlp_collector \
|
||||||
|
-p 4317:4317 \
|
||||||
|
-p 4318:4318 \
|
||||||
|
-p 13133:13133 \
|
||||||
|
-v $(PWD)/packages/twenty-docker/otel-collector/otel-collector-config.yaml:/etc/otel-collector-config.yaml \
|
||||||
|
otel/opentelemetry-collector-contrib:latest \
|
||||||
|
--config /etc/otel-collector-config.yaml
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
apiVersion: 1
|
||||||
|
|
||||||
|
datasources:
|
||||||
|
- name: ClickHouse
|
||||||
|
type: grafana-clickhouse-datasource
|
||||||
|
uid: clickhouse_datasource
|
||||||
|
jsonData:
|
||||||
|
server: twenty_clickhouse
|
||||||
|
defaultDatabase: twenty_dev
|
||||||
|
port: 9000
|
||||||
|
protocol: native
|
||||||
|
tlsSkipVerify: true
|
||||||
|
username: default
|
||||||
|
secureJsonData:
|
||||||
|
password: devPassword
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
receivers:
|
||||||
|
otlp:
|
||||||
|
protocols:
|
||||||
|
http:
|
||||||
|
endpoint: "0.0.0.0:4318"
|
||||||
|
|
||||||
|
exporters:
|
||||||
|
clickhouse:
|
||||||
|
endpoint: tcp://twenty_clickhouse:9000
|
||||||
|
database: twenty_dev
|
||||||
|
username: default
|
||||||
|
password: devPassword
|
||||||
|
debug:
|
||||||
|
verbosity: detailed
|
||||||
|
|
||||||
|
processors:
|
||||||
|
batch:
|
||||||
|
|
||||||
|
service:
|
||||||
|
pipelines:
|
||||||
|
metrics:
|
||||||
|
receivers: [otlp]
|
||||||
|
processors: [batch]
|
||||||
|
exporters: [clickhouse, debug]
|
||||||
@ -57,12 +57,12 @@ export class MetricsService {
|
|||||||
const date = Date.now();
|
const date = Date.now();
|
||||||
|
|
||||||
for (const metric of metrics) {
|
for (const metric of metrics) {
|
||||||
const metricValue = await this.metricsCacheService.computeCount({
|
groupedMetrics[metric.name] = await this.metricsCacheService.computeCount(
|
||||||
|
{
|
||||||
key: metric.cacheKey,
|
key: metric.cacheKey,
|
||||||
date,
|
date,
|
||||||
});
|
},
|
||||||
|
);
|
||||||
groupedMetrics[metric.name] = metricValue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return groupedMetrics;
|
return groupedMetrics;
|
||||||
|
|||||||
Reference in New Issue
Block a user