Skip to content

Commit 674948c

Browse files
committed
add templates for otel and main ecs services
1 parent 37c6006 commit 674948c

File tree

2 files changed

+129
-0
lines changed

2 files changed

+129
-0
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
{
2+
"family": "dataspace-otel-collector",
3+
"executionRoleArn": "${ECS_EXECUTION_ROLE_ARN}",
4+
"networkMode": "awsvpc",
5+
"requiresCompatibilities": ["FARGATE"],
6+
"cpu": "${OTEL_CPU_UNITS}",
7+
"memory": "${OTEL_MEMORY_UNITS}",
8+
"containerDefinitions": [
9+
{
10+
"name": "otel-collector",
11+
"image": "otel/opentelemetry-collector:${OTEL_VERSION}",
12+
"essential": true,
13+
"portMappings": [
14+
{
15+
"containerPort": 4317,
16+
"hostPort": 4317,
17+
"protocol": "tcp"
18+
},
19+
{
20+
"containerPort": 4318,
21+
"hostPort": 4318,
22+
"protocol": "tcp"
23+
},
24+
{
25+
"containerPort": 8888,
26+
"hostPort": 8888,
27+
"protocol": "tcp"
28+
},
29+
{
30+
"containerPort": 8889,
31+
"hostPort": 8889,
32+
"protocol": "tcp"
33+
}
34+
],
35+
"environment": [
36+
{ "name": "OTEL_RESOURCE_ATTRIBUTES", "value": "service.name=dataspace-telemetry,deployment.environment=${ENVIRONMENT}" },
37+
{ "name": "OTEL_CONFIG", "value": "receivers:\n otlp:\n protocols:\n grpc:\n http:\n prometheus:\n config:\n scrape_configs:\n - job_name: 'otel-collector'\n scrape_interval: 10s\n static_configs:\n - targets: ['0.0.0.0:8888']\nexporters:\n logging:\n verbosity: detailed\n prometheus:\n endpoint: 0.0.0.0:8889\nservice:\n pipelines:\n traces:\n receivers: [otlp]\n exporters: [logging]\n metrics:\n receivers: [otlp, prometheus]\n exporters: [prometheus, logging]" },
38+
{ "name": "OTEL_CONFIG_PATH", "value": "/etc/otel/config.yaml" }
39+
],
40+
"command": [
41+
"--config=env:OTEL_CONFIG"
42+
],
43+
"logConfiguration": {
44+
"logDriver": "awslogs",
45+
"options": {
46+
"awslogs-group": "/ecs/dataspace-otel",
47+
"awslogs-region": "${AWS_REGION}",
48+
"awslogs-stream-prefix": "ecs",
49+
"awslogs-create-group": "true"
50+
}
51+
},
52+
"healthCheck": {
53+
"command": ["CMD-SHELL", "curl -f http://localhost:8888/health || exit 1"],
54+
"interval": 30,
55+
"timeout": 5,
56+
"retries": 3,
57+
"startPeriod": 60
58+
}
59+
}
60+
],
61+
"volumes": [],
62+
"tags": [
63+
{ "key": "Environment", "value": "${ENVIRONMENT}" },
64+
{ "key": "Application", "value": "dataspace-telemetry" },
65+
{ "key": "ManagedBy", "value": "CloudFormation" }
66+
]
67+
}

aws/task-definition.json.template

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
{
2+
"family": "dataspace",
3+
"executionRoleArn": "${ECS_EXECUTION_ROLE_ARN}",
4+
"networkMode": "awsvpc",
5+
"requiresCompatibilities": ["FARGATE"],
6+
"cpu": "${CPU_UNITS}",
7+
"memory": "${MEMORY_UNITS}",
8+
"containerDefinitions": [
9+
{
10+
"name": "dataspace",
11+
"image": "${ECR_REPOSITORY}:${IMAGE_TAG}",
12+
"essential": true,
13+
"portMappings": [
14+
{
15+
"containerPort": ${APP_PORT},
16+
"hostPort": ${APP_PORT},
17+
"protocol": "tcp"
18+
}
19+
],
20+
"environment": [
21+
{ "name": "DEBUG", "value": "${DEBUG_MODE}" },
22+
{ "name": "APP_PORT", "value": "${APP_PORT}" },
23+
{ "name": "DB_ENGINE", "value": "${DB_ENGINE}" },
24+
{ "name": "DB_PORT", "value": "${DB_PORT}" },
25+
{ "name": "TELEMETRY_URL", "value": "${TELEMETRY_URL}" }
26+
],
27+
"secrets": [
28+
{ "name": "DB_HOST", "valueFrom": "arn:aws:ssm:${AWS_REGION}:${AWS_ACCOUNT_ID}:parameter/dataspace/DB_HOST" },
29+
{ "name": "DB_NAME", "valueFrom": "arn:aws:ssm:${AWS_REGION}:${AWS_ACCOUNT_ID}:parameter/dataspace/DB_NAME" },
30+
{ "name": "DB_USER", "valueFrom": "arn:aws:ssm:${AWS_REGION}:${AWS_ACCOUNT_ID}:parameter/dataspace/DB_USER" },
31+
{ "name": "DB_PASSWORD", "valueFrom": "arn:aws:ssm:${AWS_REGION}:${AWS_ACCOUNT_ID}:parameter/dataspace/DB_PASSWORD" },
32+
{ "name": "ELASTICSEARCH_INDEX", "valueFrom": "arn:aws:ssm:${AWS_REGION}:${AWS_ACCOUNT_ID}:parameter/dataspace/ELASTICSEARCH_INDEX" },
33+
{ "name": "ELASTICSEARCH_USERNAME", "valueFrom": "arn:aws:ssm:${AWS_REGION}:${AWS_ACCOUNT_ID}:parameter/dataspace/ELASTICSEARCH_USERNAME" },
34+
{ "name": "ELASTICSEARCH_PASS", "valueFrom": "arn:aws:ssm:${AWS_REGION}:${AWS_ACCOUNT_ID}:parameter/dataspace/ELASTICSEARCH_PASS" },
35+
{ "name": "REDIS_HOST", "valueFrom": "arn:aws:ssm:${AWS_REGION}:${AWS_ACCOUNT_ID}:parameter/dataspace/REDIS_HOST" },
36+
{ "name": "SECRET_KEY", "valueFrom": "arn:aws:ssm:${AWS_REGION}:${AWS_ACCOUNT_ID}:parameter/dataspace/SECRET_KEY" },
37+
{ "name": "URL_WHITELIST", "valueFrom": "arn:aws:ssm:${AWS_REGION}:${AWS_ACCOUNT_ID}:parameter/dataspace/URL_WHITELIST" }
38+
],
39+
"logConfiguration": {
40+
"logDriver": "awslogs",
41+
"options": {
42+
"awslogs-group": "/ecs/dataspace",
43+
"awslogs-region": "${AWS_REGION}",
44+
"awslogs-stream-prefix": "ecs",
45+
"awslogs-create-group": "true"
46+
}
47+
},
48+
"healthCheck": {
49+
"command": ["CMD-SHELL", "curl -f http://localhost:${APP_PORT}/health/ || exit 1"],
50+
"interval": 30,
51+
"timeout": 5,
52+
"retries": 3,
53+
"startPeriod": 60
54+
}
55+
}
56+
],
57+
"tags": [
58+
{ "key": "Environment", "value": "${ENVIRONMENT}" },
59+
{ "key": "Application", "value": "dataspace" },
60+
{ "key": "ManagedBy", "value": "CloudFormation" }
61+
]
62+
}

0 commit comments

Comments
 (0)