chore: add AWS integration via Terraform example and docs - #76
Merged
Conversation
…n via Terraform Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
mmanciop
approved these changes
Apr 21, 2026
- Point template_url at dash0-customer-integration-cloudformation-v2.yaml - Add Regions and Dash0IngressUrl parameters, plus matching Terraform variables - Add CAPABILITY_AUTO_EXPAND for the nested AWS/Lambda metrics StackSet - Update ResourcesInstrumentation default to "true" to match v2 template - Document the new Firehose ingress prerequisite and S3 backup bucket retention Refs: CLO-568
3 tasks
|
|
||
| - An active [Dash0](https://dash0.com) organization. | ||
| - A Dash0 **API key** (auth token), created under **Settings > Auth Tokens** in the Dash0 UI. | ||
| - Your Dash0 organization **technical ID**, found under **Settings > Organization** in the Dash0 UI. |
There was a problem hiding this comment.
Thats not valid, there is no UI element to get the technical id. Lets discuss if we even need it, or can we derive it from the api key?
The v2 onboarding template (dash0-infrastructure#1057) renames Dash0IngressUrl -> Dash0RegionalEndpoint (base URL only) and adds an optional CollectLambdaLifecycleEvents toggle. Update the example, variables, tfvars example, and the published guide -- including the CloudTrail prerequisite for lifecycle event forwarding.
feat(docs): update AWS CloudFormation example to v2 template
shanishiri
commented
Jul 6, 2026
Align the Terraform guide and example with template 2.2 (CLO-906): drop the technical ID prerequisite, document stack-ID fallback, and default technical_id to empty for IaC onboarding. Co-authored-by: Cursor <cursoragent@cursor.com>
RaphaelManke
approved these changes
Jul 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds customer-facing documentation and a runnable example for deploying the Dash0 AWS integration with Terraform's
aws_cloudformation_stackresource, pointing at the official v2 CloudFormation template hosted on S3 (dash0-customer-integration-cloudformation-v2.yaml). This is the Terraform counterpart to theDash0AwsIntegrationCDK construct.The template provisions the IAM roles Dash0 assumes to read telemetry, and — via a self-managed CloudFormation StackSet — per-region resources for the
AWS/Lambdanamespace (Kinesis Firehose delivery stream + CloudWatch metric stream + S3 backup bucket) and, optionally, an EventBridge rule + ApiDestination + Connection that forward Lambda lifecycle events (UpdateFunctionConfiguration,DeleteFunction) to Dash0 in near real-time.With template 2.2 (dash0-infrastructure#1193) and the matching control-plane changes (dash0#15193),
TechnicalIdis optional for IaC onboarding — when omitted or left empty, the template derives the IAM external ID from the CloudFormation stack ID. No Dash0-internal organization identifier is required.What's included
docs/guides/aws_cloudformation_integration.md— guide covering prerequisites, CloudFormation parameters, Terraform variables, and step-by-step usage. Documents that:CAPABILITY_AUTO_EXPANDis required (in addition toCAPABILITY_NAMED_IAM) because the template contains a nestedAWS::CloudFormation::StackSetRegionsis passed as aCommaDelimitedList— the Terraform list variable isjoin-ed into a comma-separated stringTechnicalIdis optional; empty value triggers stack-ID fallback (recommended for Terraform)terraform destroyby designdocs/index.md— links the new guideexamples/guides/aws_cloudformation_integration/— runnable example:main.tf— theaws_cloudformation_stackresource with v2 template URL, all parameters, and both required capabilitiesvariables.tf— includingregions,dash0_regional_endpoint, optionaltechnical_id(default""), pluscollect_lambda_lifecycle_events(default"true") andresources_instrumentation(default"true")terraform.tfvars.example— safe placeholder values, no real credentials, notechnical_idrequiredCloudFormation parameters documented
ApiKeysensitiveRegionsAWS/Lambdastreaming + lifecycle eventsDash0RegionalEndpointTechnicalId""DatasetdefaultResourcesInstrumentation"true"CollectLambdaLifecycleEvents"true"Notes
api_keyvariable issensitive, so Terraform won't display it in plan/apply output.Regionsparameter independently controls which regions the nested StackSet provisions Lambda metrics streaming into.TechnicalIdpath to work end-to-end (CLO-906).Test plan
docs/guides/aws_cloudformation_integration.mdfor accuracy and completenessexamples/guides/aws_cloudformation_integration/main.tffor correctnessterraform applythe example against a test AWS account + Dash0 org and confirm:CREATE_COMPLETEwithTechnicalId = ""sts:ExternalIdterraform planshows no changes