Welcome to the repository for AWS Serverless Application Model (SAM) applications used by Observe Inc. This suite of applications is designed to ingest metrics, monitoring logs, spans, traces, and events from AWS accounts into Observe for comprehensive observability.
This repository contains multiple SAM applications, each fulfilling a specific role in the observability pipeline. For detailed documentation on each application, please refer to the docs folder.
| Stack | Config | Forwarder |
|---|---|---|
This repository supports two deployment modes:
Deploy individual applications to a single AWS account. Use the Quick Create
links above, sam deploy, or Terraform. Each packaged template is
self-contained with Lambda code defaults pre-populated.
Deploy across multiple accounts and regions using CloudFormation StackSets. The repository includes StackSet wrapper templates:
logwriter-stackset-- deploys LogWriter across member accountsmetricstream-stackset-- deploys MetricStream across member accountsexternalrole-stackset-- deploys the external IAM role and PollerConfigurator
Each StackSet template references the underlying app template via a
TemplateURL parameter pointing to the packaged template on S3.
To begin using these applications, you'll need to have the AWS CLI and SAM CLI installed and configured. See below for quick instructions on building and deploying an application. For a full development guide, check out the DEVELOPER.md file.
- AWS CLI
- SAM CLI
- Docker (optional, for linting and local testing)
Package and deploy any application:
make sam-package-forwarder
# deploy the packaged template
sam deploy \
--template .aws-sam/build/regions/${AWS_REGION}/forwarder.yaml \
--stack-name my-forwarder \
--capabilities CAPABILITY_IAM CAPABILITY_AUTO_EXPANDTo deploy the full collection stack (apps/stack), all three CloudFormation
capabilities are required because the parent template uses the SAM transform,
nested stacks, and named IAM resources:
sam build --template apps/stack/template.yaml
sam deploy \
--template apps/stack/template.yaml \
--stack-name observe-collection \
--capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND \
--resolve-s3 \
--parameter-overrides DestinationUri=... DataAccessPointArn=...For more detailed instructions on building, deploying, and publishing applications, please see the corresponding documentation in the docs folder.
To run tests, use the Go tooling:
go test ./...For more comprehensive testing instructions, please refer to DEVELOPER.md.
Each SAM application has its own documentation, providing specific details and usage instructions:
For development practices, build and release processes, and testing workflows, see the DEVELOPER.md file.
We welcome contributions from the community. For more information on the contribution process, commit message standards, and branch naming conventions, please see our CONTRIBUTING.md. For information on how to develop, please read through the DEVELOPER.md file and the documentation for the specific application you are interested in.