Skip to content

Commit 7697ca9

Browse files
authored
chore: Drop base module (#255)
* Drop base module * Update examples * Update outputs * Update multicluster example * Fix workspace input * Update module source * Update x account example * fixup! Update x account example * Fix pre-commit * Update documentation
1 parent 1f91205 commit 7697ca9

File tree

33 files changed

+214
-581
lines changed

33 files changed

+214
-581
lines changed

README.md

Lines changed: 17 additions & 173 deletions
Original file line numberDiff line numberDiff line change
@@ -11,140 +11,38 @@ AWS-managed observability services such as Amazon Managed Service for Prometheus
1111
Amazon Managed Grafana, AWS Distro for OpenTelemetry (ADOT) and Amazon CloudWatch.
1212

1313
We provide curated metrics, logs, traces collection, alerting rules and Grafana
14-
dashboards for your EKS infrastructure, Java/JMX, NGINX based workloads and
15-
your custom applications.
16-
17-
You also can monitor your Amazon Managed Service for Prometheus workspaces ingestion,
18-
costs, active series with [this module](./modules/managed-prometheus-monitoring).
14+
dashboards for your AWS infrastructure and custom applications.
1915

2016
![image](https://github.com/aws-observability/terraform-aws-observability-accelerator/assets/10175027/e83f8709-f754-4192-90f2-e3de96d2e26c)
2117

22-
2318
## Documentation
2419

2520
To explore the complete project documentation, please visit our [documentation site.](https://aws-observability.github.io/terraform-aws-observability-accelerator/)
2621

22+
## ⚠️ Dropping base module
2723

28-
## ⚠️ Migration to v2.5
29-
30-
If you are migrating from earlier versions to v2.5, please follow this guide.
31-
32-
v2.5.0 removes the dependency to the Terraform Grafana provider in the EKS
33-
monitoring module. As Grafana Operator manages and syncs the Grafana contents,
34-
Terraform is not required anymore in this context.
35-
36-
However, if you migrate from earlier versions, you might leave some data orphans
37-
as the Grafana provider is dropped. Terraform will throw an error. We have
38-
released [v2.5.0-rc.1](https://github.com/aws-observability/terraform-aws-observability-accelerator/releases/tag/v2.5.0-rc.1)
39-
which removes all the Grafana resources provisioned by Terraform in the EKS
40-
context, without removing the provider configurations.
41-
42-
- Step 1: migrate to [v2.5.0-rc.1](https://github.com/aws-observability/terraform-aws-observability-accelerator/releases/tag/v2.5.0-rc.1)
43-
and run `apply`
44-
- Step 2: migrate to `v2.5.0` or above
45-
46-
47-
## Getting started
48-
49-
To quick start with a complete workflow and view Amazon EKS infrastructure dashboards,
50-
visit the [Amazon EKS cluster monitoring documentation](https://aws-observability.github.io/terraform-aws-observability-accelerator/eks/)
51-
52-
## How it works
53-
54-
The sections below demonstrate how you can leverage AWS Observability Accelerator
55-
to enable monitoring to an existing EKS cluster.
56-
57-
58-
### Base Module
59-
60-
The base module allows you to configure the AWS Observability services for your
61-
cluster and the AWS Distro for OpenTelemetry (ADOT) Operator as the signals
62-
collection mechanism.
63-
64-
This is the minimum configuration to have a new Amazon Managed Service for
65-
Prometheus Workspace and ADOT Operator deployed for you and ready to receive
66-
your data. The base module serve as an anchor to the workload modules and
67-
cannot run on its own.
68-
69-
```hcl
70-
module "aws_observability_accelerator" {
71-
# use release tags and check for the latest versions
72-
# https://github.com/aws-observability/terraform-aws-observability-accelerator/releases
73-
source = "github.com/aws-observability/terraform-aws-observability-accelerator?ref=v2.1.0"
74-
75-
aws_region = "eu-west-1"
76-
eks_cluster_id = "my-eks-cluster"
77-
78-
# As Grafana shares a different lifecycle, we recommend using an existing workspace.
79-
managed_grafana_workspace_id = var.managed_grafana_workspace_id
80-
}
81-
```
82-
83-
You can optionally reuse an existing Amazon Managed Servce for Prometheus Workspace:
84-
85-
```hcl
86-
module "aws_observability_accelerator" {
87-
# use release tags and check for the latest versions
88-
# https://github.com/aws-observability/terraform-aws-observability-accelerator/releases
89-
source = "github.com/aws-observability/terraform-aws-observability-accelerator?ref=v2.1.0"
24+
Starting in v2.12.0, we have removed the [base module](https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/v2.10.3/docs/concepts.md#base-module)
25+
which previously served as a glue between modules. However, the modules were quite
26+
independent and the base module provided limited functionality.
9027

91-
aws_region = "eu-west-1"
92-
eks_cluster_id = "my-eks-cluster"
28+
We have moved the creation of Managed Prometheus Workspaces into the
29+
[eks-monitoring module](https://github.com/aws-observability/terraform-aws-observability-accelerator/tree/main/modules/eks-monitoring).
9330

94-
# prevents creation of a new Amazon Managed Prometheus workspace
95-
enable_managed_prometheus = false
31+
See our [examples](https://github.com/aws-observability/terraform-aws-observability-accelerator/tree/main/examples)
32+
to understand the changes.
9633

97-
# reusing existing Amazon Managed Prometheus Workspace
98-
managed_prometheus_workspace_id = "ws-abcd123..."
99-
100-
managed_grafana_workspace_id = "g-abcdef123"
101-
}
102-
```
103-
104-
View all the configuration options in the module documentation below.
105-
106-
### Workload modules
107-
108-
[Workloads modules](./modules) are provided, which essentially provide curated
109-
metrics, logs, traces collection, alerting rules and Grafana dashboards.
110-
111-
#### Amazon EKS monitoring
112-
113-
```hcl
114-
module "eks_monitoring" {
115-
source = "github.com/aws-observability/terraform-aws-observability-accelerator//modules/eks-monitoring?ref=v2.1.0"
116-
117-
eks_cluster_id = module.eks_observability_accelerator.eks_cluster_id
118-
119-
dashboards_folder_id = module.eks_observability_accelerator.grafana_dashboards_folder_id
120-
managed_prometheus_workspace_id = module.eks_observability_accelerator.managed_prometheus_workspace_id
121-
122-
managed_prometheus_workspace_endpoint = module.eks_observability_accelerator.managed_prometheus_workspace_endpoint
123-
managed_prometheus_workspace_region = module.eks_observability_accelerator.managed_prometheus_workspace_region
124-
125-
enable_logs = true
126-
enable_tracing = true
127-
}
128-
```
34+
## Modules
12935

130-
#### Amazon ECS monitoring
131-
ECS cluster with VPC and EC2 can be created using the example [here](./examples/ecs_cluster_with_vpc)
36+
This accelerator provides the following observability modules:
13237

133-
```hcl
134-
module "ecs_monitoring" {
135-
source = "github.com/aws-observability/terraform-aws-observability-accelerator//modules/ecs-monitoring"
38+
- [EKS Monitoring with AWS-Managed Open Source](https://aws-observability.github.io/terraform-aws-observability-accelerator/eks/) - Get Prometheus metrics, CloudWatch logs collection, and X-Ray traces (with OTLP support) for your EKS cluster. Visualize key metrics and logs with provided Grafana dashboards and get pre-built alerting rules.
13639

137-
aws_ecs_cluster_name = module.ecs_cluster.cluster_name
138-
task_role_arn = module.ecs_cluster.task_exec_iam_role_arn
139-
execution_role_arn = module.ecs_cluster.task_exec_iam_role_arn
140-
}
141-
```
142-
Grafana Dashboards
40+
- [EKS Monitoring with Enhanced CloudWatch Container Insights](https://aws-observability.github.io/terraform-aws-observability-accelerator/container-insights/eks/) - Get deep visibility into EKS using Amazon CloudWatch for metrics collection, aggregation, and insights summaries. Includes support for [CloudWatch Application Signals (preview)](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Application-Monitoring-Sections.html)
14341

144-
<img width="2056" alt="image" src="https://user-images.githubusercontent.com/10175027/199110753-9bc7a9b7-1b45-4598-89d3-32980154080e.png">
42+
- [ECS Monitoring on EC2 with AWS-Managed Open Source](https://aws-observability.github.io/terraform-aws-observability-accelerator/ecs/ecs-monitoring-on-ec2/) - Collect metrics, traces, and logs for ECS on EC2 and send them to a Managed Prometheus workspace , X-Ray, and CloudWatch Logs. Includes pre-built Grafana dashboards for key metrics and logs.
14543

44+
- [Managed Prometheus Monitoring](https://aws-observability.github.io/terraform-aws-observability-accelerator/workloads/managed-prometheus/) - This module sets up automated observability for Amazon Managed Service for Prometheus workspaces, including a Grafana dashboard, CloudWatch monitoring, and service quota alarms.
14645

147-
Check the the [complete example](./examples/existing-cluster-with-base-and-infra/)
14846

14947
## Motivation
15048

@@ -156,9 +54,8 @@ Grafana and Amazon OpenSearch.
15654
AWS customers have asked for best-practices and guidance to collect metrics, logs
15755
and traces from their containerized applications and microservices with ease of
15856
deployment. Customers can use the AWS Observability Accelerator to configure their
159-
metrics and traces collection, leveraging [AWS Distro for OpenTelemetry](https://aws-otel.github.io/),
160-
to have opinionated dashboards and alerts available in only minutes.
161-
57+
metrics and traces collection to have opinionated dashboards and alerts
58+
available in only minutes.
16259

16360
## Support & Feedback
16461

@@ -173,59 +70,6 @@ section of this GitHub repo.
17370
If you are interested in contributing, see the
17471
[Contribution guide](https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/CONTRIBUTING.md).
17572

176-
---
177-
178-
<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
179-
## Requirements
180-
181-
| Name | Version |
182-
|------|---------|
183-
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.1.0 |
184-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 4.0.0 |
185-
| <a name="requirement_awscc"></a> [awscc](#requirement\_awscc) | >= 0.24.0 |
186-
187-
## Providers
188-
189-
| Name | Version |
190-
|------|---------|
191-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 4.0.0 |
192-
193-
## Modules
194-
195-
No modules.
196-
197-
## Resources
198-
199-
| Name | Type |
200-
|------|------|
201-
| [aws_prometheus_alert_manager_definition.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/prometheus_alert_manager_definition) | resource |
202-
| [aws_prometheus_workspace.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/prometheus_workspace) | resource |
203-
| [aws_grafana_workspace.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/grafana_workspace) | data source |
204-
| [aws_region.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/region) | data source |
205-
206-
## Inputs
207-
208-
| Name | Description | Type | Default | Required |
209-
|------|-------------|------|---------|:--------:|
210-
| <a name="input_aws_region"></a> [aws\_region](#input\_aws\_region) | AWS Region | `string` | n/a | yes |
211-
| <a name="input_enable_alertmanager"></a> [enable\_alertmanager](#input\_enable\_alertmanager) | Creates Amazon Managed Service for Prometheus AlertManager for all workloads | `bool` | `false` | no |
212-
| <a name="input_enable_managed_prometheus"></a> [enable\_managed\_prometheus](#input\_enable\_managed\_prometheus) | Creates a new Amazon Managed Service for Prometheus Workspace | `bool` | `true` | no |
213-
| <a name="input_managed_grafana_workspace_id"></a> [managed\_grafana\_workspace\_id](#input\_managed\_grafana\_workspace\_id) | Amazon Managed Grafana Workspace ID | `string` | n/a | yes |
214-
| <a name="input_managed_prometheus_workspace_id"></a> [managed\_prometheus\_workspace\_id](#input\_managed\_prometheus\_workspace\_id) | Amazon Managed Service for Prometheus Workspace ID | `string` | `""` | no |
215-
| <a name="input_managed_prometheus_workspace_region"></a> [managed\_prometheus\_workspace\_region](#input\_managed\_prometheus\_workspace\_region) | Region where Amazon Managed Service for Prometheus is deployed | `string` | `null` | no |
216-
| <a name="input_tags"></a> [tags](#input\_tags) | Additional tags (e.g. `map('BusinessUnit`,`XYZ`) | `map(string)` | `{}` | no |
217-
218-
## Outputs
219-
220-
| Name | Description |
221-
|------|-------------|
222-
| <a name="output_aws_region"></a> [aws\_region](#output\_aws\_region) | AWS Region |
223-
| <a name="output_managed_grafana_workspace_endpoint"></a> [managed\_grafana\_workspace\_endpoint](#output\_managed\_grafana\_workspace\_endpoint) | Amazon Managed Grafana workspace endpoint |
224-
| <a name="output_managed_prometheus_workspace_endpoint"></a> [managed\_prometheus\_workspace\_endpoint](#output\_managed\_prometheus\_workspace\_endpoint) | Amazon Managed Prometheus workspace endpoint |
225-
| <a name="output_managed_prometheus_workspace_id"></a> [managed\_prometheus\_workspace\_id](#output\_managed\_prometheus\_workspace\_id) | Amazon Managed Prometheus workspace ID |
226-
| <a name="output_managed_prometheus_workspace_region"></a> [managed\_prometheus\_workspace\_region](#output\_managed\_prometheus\_workspace\_region) | Amazon Managed Prometheus workspace region |
227-
<!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
228-
22973
## Contributing
23074

23175
See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information.

docs/concepts.md

Lines changed: 5 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ We have setup a [GitRepository](https://fluxcd.io/flux/components/source/gitrepo
4444
We have placed our declarative code snippet to create an Amazon Managed Service For Promethes datasource and Grafana Dashboard in Amazon Managed Grafana in our [AWS Observabiity Accelerator GitHub Repository](https://github.com/aws-observability/aws-observability-accelerator). We have setup a GitRepository to point to the AWS Observabiity Accelerator GitHub Repository and `Kustomization` for flux to sync Git Repository with artifacts in `./artifacts/grafana-operator-manifests/*` path in the AWS Observabiity Accelerator GitHub Repository. You can use this extension of our solution to point your own Kubernetes manifests to create Grafana Datasources and personified Grafana Dashboards of your choice using GitOps with Grafana Operator and Flux in Kubernetes native way with altering and redeploying this solution for changes to Grafana resources.
4545

4646

47-
4847
## Release notes
4948

5049
We encourage you to use our [release versions](https://github.com/aws-observability/terraform-aws-observability-accelerator/releases)
@@ -57,82 +56,19 @@ module "eks_monitoring" {
5756
}
5857
```
5958

59+
## Modules
6060

61-
## Base module
62-
63-
The base module allows you to configure the AWS Observability services for your cluster and
64-
the AWS Distro for OpenTelemetry (ADOT) Operator as the signals collection mechanism.
65-
66-
This is the minimum configuration to have a new Amazon Managed Service for Prometheus Workspace
67-
and ADOT Operator deployed for you and ready to receive your data.
68-
The base module serve as an anchor to the workload modules and cannot run on its own.
69-
70-
```hcl
71-
module "aws_observability_accelerator" {
72-
# use release tags and check for the latest versions
73-
# https://github.com/aws-observability/terraform-aws-observability-accelerator/releases
74-
source = "github.com/aws-observability/terraform-aws-observability-accelerator?ref=v1.6.1"
75-
76-
aws_region = "eu-west-1"
77-
eks_cluster_id = "my-eks-cluster"
78-
79-
# As Grafana shares a different lifecycle, we recommend using an existing workspace.
80-
managed_grafana_workspace_id = var.managed_grafana_workspace_id
81-
}
82-
```
83-
84-
You can optionally reuse an existing Amazon Managed Service for Prometheus Workspace:
85-
86-
```hcl
87-
module "aws_observability_accelerator" {
88-
# use release tags and check for the latest versions
89-
# https://github.com/aws-observability/terraform-aws-observability-accelerator/releases
90-
source = "github.com/aws-observability/terraform-aws-observability-accelerator?ref=v1.6.1"
91-
92-
aws_region = "eu-west-1"
93-
eks_cluster_id = "my-eks-cluster"
94-
95-
# prevents creation of a new Amazon Managed Prometheus workspace
96-
enable_managed_prometheus = false
97-
98-
# reusing existing Amazon Managed Prometheus Workspace
99-
managed_prometheus_workspace_id = "ws-abcd123..."
100-
101-
managed_grafana_workspace_id = "g-abcdef123"
102-
}
103-
```
104-
105-
View all the configuration options in the [module's documentation](https://github.com/aws-observability/terraform-aws-observability-accelerator#requirements)
106-
107-
## Workload modules
108-
109-
Workloads modules are focused Terraform modules provided in this repository. They essentially provide curated metrics collection, alerts and Grafana dashboards according to the use case. Most of those modules require the base module.
110-
111-
You can check the full workload modules list and their documentation [here](https://github.com/aws-observability/terraform-aws-observability-accelerator/tree/main/modules/).
112-
61+
[Modules](https://github.com/aws-observability/terraform-aws-observability-accelerator/tree/main/modules/)
62+
are set of functionalities (ex: Managed Open-Source EKS monitoring, CloudWatch Container Insights, ...)
63+
packaged together that can be used to add Observability to your environments.
11364
All the modules come with end-to-end deployable examples.
11465

11566
## Examples
11667

117-
[Examples](https://github.com/aws-observability/terraform-aws-observability-accelerator/tree/main/examples) put modules together in a ready to deploy terraform configuration as a starting point. With little to no configuration, you can run `terraform apply` and use the deployed resources on your AWS Account.
68+
[Examples](https://github.com/aws-observability/terraform-aws-observability-accelerator/tree/main/examples) put [modules](https://github.com/aws-observability/terraform-aws-observability-accelerator/tree/main/modules/) together in a ready to deploy terraform configuration as a starting point. With little to no configuration, you can run `terraform apply` and use the deployed resources on your AWS Account.
11869

11970
You can find **workload** examples like [Amazon EKS infrastructure monitoring](https://aws-observability.github.io/terraform-aws-observability-accelerator/eks/) or [monitoring your Amazon Managed Service for Prometheus workspace](https://aws-observability.github.io/terraform-aws-observability-accelerator/workloads/managed-prometheus/) and more.
12071

121-
```mermaid
122-
classDiagram
123-
Example <|-- Base Module
124-
Example <|-- Workload Module
125-
class Base Module{
126-
Amazon Managed Prometheus
127-
Amazon Managed Grafana Data Sources
128-
}
129-
class Workload Module{
130-
Amazon Distro for Open Telemetry Config
131-
Amazon Managed Prometheus Alerts
132-
Amazon Managed Grafana Dashboards
133-
}
134-
```
135-
13672

13773
## Getting started with AWS Observability services
13874

docs/contributors.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,8 @@ The core team include the following people:
1414
* Jerome DECQ
1515
* Kevin Lewin
1616
* Michael Hausenblas
17-
* Munish Dabra
1817
* Rodrigue Koffi
1918
* Toshal Dudhwala
20-
* Vara Bonthu
21-
* Vikram Venkataraman
2219

2320
We welcome the wider open source community and thank [those who contribute](https://github.com/aws-observability/terraform-aws-observability-accelerator/graphs/contributors)
2421
to this project.

0 commit comments

Comments
 (0)