Skip to content

Commit 57c1247

Browse files
committed
Add sampling to forms-admin traces
Similar to #1985
1 parent 985c9bd commit 57c1247

File tree

8 files changed

+122
-109
lines changed

8 files changed

+122
-109
lines changed

infra/deployments/forms/forms-admin/main.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ module "forms_admin" {
2424
cloudwatch_metrics_enabled = var.forms_admin_settings.cloudwatch_metrics_enabled
2525
analytics_enabled = var.forms_admin_settings.analytics_enabled
2626
enable_opentelemetry = var.forms_admin_settings.enable_opentelemetry
27+
opentelemetry_head_sampler_ratio = var.forms_runner_settings.opentelemetry_head_sampler_ratio
2728
act_as_user_enabled = var.forms_admin_settings.act_as_user_enabled
2829
welsh_enabled = var.forms_admin_settings.welsh_enabled
2930
daily_submission_emails_enabled = var.forms_admin_settings.daily_submission_emails_enabled

infra/deployments/forms/inputs.tf

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -129,23 +129,24 @@ EOF
129129
variable "forms_admin_settings" {
130130
description = "Forms Admin configuration values"
131131
type = object({
132-
cpu = number
133-
memory = number
134-
min_capacity = number
135-
max_capacity = number
136-
enable_maintenance_mode = bool
137-
auth_provider = string
138-
previous_auth_provider = string
139-
cloudwatch_metrics_enabled = bool
140-
analytics_enabled = bool
141-
enable_opentelemetry = optional(bool, false)
142-
act_as_user_enabled = bool
143-
welsh_enabled = bool
144-
daily_submission_emails_enabled = bool
145-
org_admin_alerts_enabled = bool
146-
govuk_app_domain = string
147-
synchronize_to_mailchimp = bool
148-
synchronize_orgs_from_govuk = bool
132+
cpu = number
133+
memory = number
134+
min_capacity = number
135+
max_capacity = number
136+
enable_maintenance_mode = bool
137+
auth_provider = string
138+
previous_auth_provider = string
139+
cloudwatch_metrics_enabled = bool
140+
analytics_enabled = bool
141+
enable_opentelemetry = optional(bool, false)
142+
opentelemetry_head_sampler_ratio = string
143+
act_as_user_enabled = bool
144+
welsh_enabled = bool
145+
daily_submission_emails_enabled = bool
146+
org_admin_alerts_enabled = bool
147+
govuk_app_domain = string
148+
synchronize_to_mailchimp = bool
149+
synchronize_orgs_from_govuk = bool
149150
})
150151
nullable = false
151152
}

infra/deployments/forms/tfvars/dev.tfvars

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -68,23 +68,24 @@ container_registry = "711966560482.dkr.ecr.eu-west-2.amazonaws.com"
6868
dlq_arn = "arn:aws:sqs:eu-west-2:711966560482:eventbridge-dead-letter-queue"
6969
send_logs_to_cyber = true
7070
forms_admin_settings = {
71-
cpu = 256
72-
memory = 512
73-
min_capacity = 3
74-
max_capacity = 3
75-
enable_maintenance_mode = false
76-
auth_provider = "auth0"
77-
previous_auth_provider = null
78-
cloudwatch_metrics_enabled = true
79-
analytics_enabled = true
80-
enable_opentelemetry = true
81-
act_as_user_enabled = true
82-
welsh_enabled = true
83-
daily_submission_emails_enabled = true
84-
org_admin_alerts_enabled = true
85-
govuk_app_domain = "integration.publishing.service.gov.uk"
86-
synchronize_to_mailchimp = false
87-
synchronize_orgs_from_govuk = false
71+
cpu = 256
72+
memory = 512
73+
min_capacity = 3
74+
max_capacity = 3
75+
enable_maintenance_mode = false
76+
auth_provider = "auth0"
77+
previous_auth_provider = null
78+
cloudwatch_metrics_enabled = true
79+
analytics_enabled = true
80+
enable_opentelemetry = true
81+
opentelemetry_head_sampler_ratio = "0.1"
82+
act_as_user_enabled = true
83+
welsh_enabled = true
84+
daily_submission_emails_enabled = true
85+
org_admin_alerts_enabled = true
86+
govuk_app_domain = "integration.publishing.service.gov.uk"
87+
synchronize_to_mailchimp = false
88+
synchronize_orgs_from_govuk = false
8889
}
8990
forms_product_page_settings = {
9091
cpu = 256

infra/deployments/forms/tfvars/production.tfvars

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -124,23 +124,24 @@ container_registry = "711966560482.dkr.ecr.eu-west-2.amazonaws.com"
124124
dlq_arn = "arn:aws:sqs:eu-west-2:711966560482:eventbridge-dead-letter-queue"
125125
send_logs_to_cyber = true
126126
forms_admin_settings = {
127-
cpu = 512
128-
memory = 1024
129-
min_capacity = 6
130-
max_capacity = 36
131-
enable_maintenance_mode = false
132-
auth_provider = "auth0"
133-
previous_auth_provider = null
134-
cloudwatch_metrics_enabled = true
135-
analytics_enabled = true
136-
enable_opentelemetry = false
137-
act_as_user_enabled = false
138-
welsh_enabled = true
139-
daily_submission_emails_enabled = true
140-
org_admin_alerts_enabled = false
141-
govuk_app_domain = "publishing.service.gov.uk"
142-
synchronize_to_mailchimp = true
143-
synchronize_orgs_from_govuk = true
127+
cpu = 512
128+
memory = 1024
129+
min_capacity = 6
130+
max_capacity = 36
131+
enable_maintenance_mode = false
132+
auth_provider = "auth0"
133+
previous_auth_provider = null
134+
cloudwatch_metrics_enabled = true
135+
analytics_enabled = true
136+
enable_opentelemetry = false
137+
opentelemetry_head_sampler_ratio = "0.1"
138+
act_as_user_enabled = false
139+
welsh_enabled = true
140+
daily_submission_emails_enabled = true
141+
org_admin_alerts_enabled = false
142+
govuk_app_domain = "publishing.service.gov.uk"
143+
synchronize_to_mailchimp = true
144+
synchronize_orgs_from_govuk = true
144145
}
145146
forms_product_page_settings = {
146147
cpu = 256

infra/deployments/forms/tfvars/staging.tfvars

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -33,23 +33,24 @@ container_registry = "711966560482.dkr.ecr.eu-west-2.amazonaws.com"
3333
dlq_arn = "arn:aws:sqs:eu-west-2:711966560482:eventbridge-dead-letter-queue"
3434
send_logs_to_cyber = true
3535
forms_admin_settings = {
36-
cpu = 256
37-
memory = 512
38-
min_capacity = 3
39-
max_capacity = 3
40-
enable_maintenance_mode = false
41-
auth_provider = "auth0"
42-
previous_auth_provider = null
43-
cloudwatch_metrics_enabled = true
44-
analytics_enabled = true
45-
enable_opentelemetry = false
46-
act_as_user_enabled = true
47-
welsh_enabled = true
48-
daily_submission_emails_enabled = true
49-
org_admin_alerts_enabled = false
50-
govuk_app_domain = "staging.publishing.service.gov.uk"
51-
synchronize_to_mailchimp = false
52-
synchronize_orgs_from_govuk = false
36+
cpu = 256
37+
memory = 512
38+
min_capacity = 3
39+
max_capacity = 3
40+
enable_maintenance_mode = false
41+
auth_provider = "auth0"
42+
previous_auth_provider = null
43+
cloudwatch_metrics_enabled = true
44+
analytics_enabled = true
45+
enable_opentelemetry = false
46+
opentelemetry_head_sampler_ratio = "0.1"
47+
act_as_user_enabled = true
48+
welsh_enabled = true
49+
daily_submission_emails_enabled = true
50+
org_admin_alerts_enabled = false
51+
govuk_app_domain = "staging.publishing.service.gov.uk"
52+
synchronize_to_mailchimp = false
53+
synchronize_orgs_from_govuk = false
5354
}
5455
forms_product_page_settings = {
5556
cpu = 256

infra/deployments/forms/tfvars/user-research.tfvars

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -31,23 +31,24 @@ container_registry = "711966560482.dkr.ecr.eu-west-2.amazonaws.com"
3131
dlq_arn = "arn:aws:sqs:eu-west-2:711966560482:eventbridge-dead-letter-queue"
3232
send_logs_to_cyber = true
3333
forms_admin_settings = {
34-
cpu = 256
35-
memory = 512
36-
min_capacity = 0
37-
max_capacity = 0
38-
enable_maintenance_mode = false
39-
auth_provider = "user_research"
40-
previous_auth_provider = null
41-
cloudwatch_metrics_enabled = false
42-
analytics_enabled = false
43-
enable_opentelemetry = false
44-
act_as_user_enabled = false
45-
welsh_enabled = true
46-
daily_submission_emails_enabled = true
47-
org_admin_alerts_enabled = false
48-
govuk_app_domain = ""
49-
synchronize_to_mailchimp = false
50-
synchronize_orgs_from_govuk = false
34+
cpu = 256
35+
memory = 512
36+
min_capacity = 0
37+
max_capacity = 0
38+
enable_maintenance_mode = false
39+
auth_provider = "user_research"
40+
previous_auth_provider = null
41+
cloudwatch_metrics_enabled = false
42+
analytics_enabled = false
43+
enable_opentelemetry = false
44+
opentelemetry_head_sampler_ratio = "0.1"
45+
act_as_user_enabled = false
46+
welsh_enabled = true
47+
daily_submission_emails_enabled = true
48+
org_admin_alerts_enabled = false
49+
govuk_app_domain = ""
50+
synchronize_to_mailchimp = false
51+
synchronize_orgs_from_govuk = false
5152
}
5253
forms_product_page_settings = {
5354
cpu = 256

infra/modules/forms-admin/main.tf

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -67,30 +67,31 @@ data "aws_iam_policy_document" "ecs_task_role_permissions" {
6767
}
6868

6969
module "ecs_service" {
70-
source = "../ecs-service"
71-
env_name = var.env_name
72-
application = "forms-admin"
73-
enable_opentelemetry = var.enable_opentelemetry
74-
root_domain = var.root_domain
75-
sub_domain = local.sub_domain
76-
internal_sub_domain = local.internal_sub_domain
77-
listener_priority = 301
78-
include_domain_root_listener = false
79-
image = local.image
80-
cpu = var.cpu
81-
memory = var.memory
82-
readonly_root_filesystem = true
83-
container_port = 3000
84-
permit_internet_egress = true
85-
permit_postgres_egress = true
86-
vpc_id = var.vpc_id
87-
vpc_cidr_block = var.vpc_cidr_block
88-
private_subnet_ids = var.private_subnet_ids
89-
alb_arn_suffix = var.alb_arn_suffix
90-
alb_listener_arn = var.alb_listener_arn
91-
internal_alb_listener_arn = var.internal_alb_listener_arn
92-
ecs_cluster_arn = var.ecs_cluster_arn
93-
cloudfront_secret = var.cloudfront_secret
70+
source = "../ecs-service"
71+
env_name = var.env_name
72+
application = "forms-admin"
73+
enable_opentelemetry = var.enable_opentelemetry
74+
opentelemetry_head_sampler_ratio = var.opentelemetry_head_sampler_ratio
75+
root_domain = var.root_domain
76+
sub_domain = local.sub_domain
77+
internal_sub_domain = local.internal_sub_domain
78+
listener_priority = 301
79+
include_domain_root_listener = false
80+
image = local.image
81+
cpu = var.cpu
82+
memory = var.memory
83+
readonly_root_filesystem = true
84+
container_port = 3000
85+
permit_internet_egress = true
86+
permit_postgres_egress = true
87+
vpc_id = var.vpc_id
88+
vpc_cidr_block = var.vpc_cidr_block
89+
private_subnet_ids = var.private_subnet_ids
90+
alb_arn_suffix = var.alb_arn_suffix
91+
alb_listener_arn = var.alb_listener_arn
92+
internal_alb_listener_arn = var.internal_alb_listener_arn
93+
ecs_cluster_arn = var.ecs_cluster_arn
94+
cloudfront_secret = var.cloudfront_secret
9495

9596
kinesis_subscription_role_arn = var.kinesis_subscription_role_arn
9697

infra/modules/forms-admin/variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,3 +186,9 @@ variable "enable_opentelemetry" {
186186
description = "Enable AWS Distro for OpenTelemetry (ADOT) sidecar for distributed tracing to X-Ray"
187187
default = false
188188
}
189+
190+
variable "opentelemetry_head_sampler_ratio" {
191+
type = string
192+
description = "Sampling ratio configuration in OpenTelemetry. This tells the Ruby SDK to sample spans such that only this ratio of traces gets exported. This assumes we are using a `TraceIdRatioBased` sampler. By default all spans are sampled"
193+
default = "1"
194+
}

0 commit comments

Comments
 (0)