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:
|
||||
docker run -d \
|
||||
make ensure-docker-network
|
||||
docker run -d --network $(DOCKER_NETWORK) \
|
||||
--name twenty_pg \
|
||||
-e POSTGRES_USER=postgres \
|
||||
-e POSTGRES_PASSWORD=postgres \
|
||||
@ -17,7 +23,31 @@ postgres-on-docker:
|
||||
-c "CREATE DATABASE \"test\" WITH OWNER postgres;"
|
||||
|
||||
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:
|
||||
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();
|
||||
|
||||
for (const metric of metrics) {
|
||||
const metricValue = await this.metricsCacheService.computeCount({
|
||||
groupedMetrics[metric.name] = await this.metricsCacheService.computeCount(
|
||||
{
|
||||
key: metric.cacheKey,
|
||||
date,
|
||||
});
|
||||
|
||||
groupedMetrics[metric.name] = metricValue;
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
return groupedMetrics;
|
||||
|
||||
Reference in New Issue
Block a user