Skip to content

Commit

Permalink
Merge pull request #155 from aws-observability/feature/blueprintsUpgrade
Browse files Browse the repository at this point in the history
Feature/Blueprints Upgrade
  • Loading branch information
elamaran11 committed Mar 22, 2024
2 parents b9232f2 + 4652f05 commit 7a3a8e8
Show file tree
Hide file tree
Showing 12 changed files with 60 additions and 86 deletions.
27 changes: 23 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,38 @@
# AWS Observability Accelerator for CDK

Welcome to the AWS Observability Accelerator for CDK!
Welcome to the `AWS Observability Accelerator for CDK`!

![GitHub](https://img.shields.io/github/license/aws-quickstart/cdk-eks-blueprints)
![Build](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiTWxBQzVUcTBvdSsvbE9mR0ZWeTJjbi96OUpBREorSG51UjMzQ1UyNXdmUzZ2dUJoTkhIODFJWjN2QjRGcnhWS0pYLzFQRU5uOThiUEp1WjEzS0htbUpVPSIsIml2UGFyYW1ldGVyU3BlYyI6IlRkUFRoTWtjdElBMkR5NEMiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=main)

The AWS Observability Accelerator for CDK is a set of opinionated modules
to help you set up observability for your AWS environments with AWS Native services and AWS-managed observability services such as Amazon Managed Service for Prometheus,Amazon Managed Grafana, AWS Distro for OpenTelemetry (ADOT) and Amazon CloudWatch.

We provide curated metrics, logs, traces collection, cloudwatch dashboard, alerting rules and Grafana dashboards for your EKS infrastructure, Java/JMX, NGINX based workloads and your custom applications.
AWS Observability Accelerator for CDK provides patterns with:

- [x] Curated metrics with CloudWatch Container Insights
- [x] Curated metrics with ADOT and Amazon Service for Prometheus Exporter
- [x] Logs using FluentBit and ADOT Exporter
- [x] Traces collection with XRAY Daemon
- [x] Traces collection with ADOT XRAY Exporter
- [x] Amazon Cloudwatch dashboards
- [x] Amazon Managed Grafana Dashboards
- [x] Amazon Managed Service for Prometheus - Alerting rules
- [x] Amazon Managed Service for Prometheus - Recording rules
- [x] GPU Infrastructure and Workload monitoring
- [x] Java/JMX Workload monitoring
- [x] NGINX monitoring
- [x] Istio Service Mesh monitoring
- [x] ADOT Collector monitoring
- [x] Cost monitoring (Coming Soon!)

## Single EKS Cluster AWS Native Observability Accelerator

![AWSNative-Architecture](https://github.com/aws-observability/cdk-aws-observability-accelerator/blob/main/docs/images/cloud-native-arch.png?raw=true)
![AWSNative-Architecture](./docs/images/cloud-native-architecture.png)

## Single EKS Cluster Open Source Observability Accelerator

![OpenSource-Architecture](https://raw.githubusercontent.com/aws-observability/cdk-aws-observability-accelerator/811ec42307d41f35f2fec95f2f2b8a20bddc7646/docs/images/CDK_Architecture_diagram.png)
![OpenSource-Architecture](./docs/images/oss-architecture.png)

## Patterns

Expand Down
Binary file added docs/images/cloud-native-architecture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/oss-architecture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion lib/common/resources/otel-collector-config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ spec:
external_labels:
cluster: "{{clusterName}}"
scrape_configs:
{{ start enableAdotMetricsCollectionJob}}
{{ start enableAdotMetricsCollectionJob }}
- job_name: otel-collector-metrics
scrape_interval: 10s
static_configs:
Expand Down
13 changes: 8 additions & 5 deletions lib/existing-eks-opensource-observability-pattern/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ import { ObservabilityBuilder } from '@aws-quickstart/eks-blueprints';
import * as cdk from "aws-cdk-lib";
import * as eks from 'aws-cdk-lib/aws-eks';
import * as fs from 'fs';
import { IstioIngressGatewayHelmAddon } from '../single-new-eks-opensource-observability-pattern/istio/istioIngressGatewayAddon';
import { IstioCniHelmAddon } from '../single-new-eks-opensource-observability-pattern/istio/istiocniAddon';

export default class ExistingEksOpenSourceobservabilityPattern {
async buildAsync(scope: cdk.App, id: string) {
Expand Down Expand Up @@ -88,7 +86,7 @@ export default class ExistingEksOpenSourceobservabilityPattern {
);
doc = utils.changeTextBetweenTokens(
doc,
"{{ start enableAdotMetricsCollectionJob}}",
"{{ start enableAdotMetricsCollectionJob }}",
"{{ stop enableAdotMetricsCollectionJob }}",
jsonStringnew.context["adotcollectormetrics.pattern.enabled"]
);
Expand Down Expand Up @@ -169,8 +167,13 @@ export default class ExistingEksOpenSourceobservabilityPattern {
addOns.push(new blueprints.addons.IstioControlPlaneAddOn({
version: "1.18.2"
}));
addOns.push(new IstioIngressGatewayHelmAddon);
addOns.push(new IstioCniHelmAddon);
addOns.push(new blueprints.addons.IstioIngressGatewayAddon({
version: "1.18.2"
}));

addOns.push(new blueprints.addons.IstioCniAddon({
version: "1.18.2"
}));
}

ObservabilityBuilder.builder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export default class SingleNewEksAWSNativeFargateobservabilityConstruct {
// Define fargate cluster provider and pass the profile options
const fargateClusterProvider : blueprints.FargateClusterProvider = new blueprints.FargateClusterProvider({
fargateProfiles,
version: eks.KubernetesVersion.of("1.28")
version: eks.KubernetesVersion.V1_29
});

const certManagerAddOnProps : blueprints.CertManagerAddOnProps = {
Expand All @@ -50,7 +50,6 @@ export default class SingleNewEksAWSNativeFargateobservabilityConstruct {
};

const coreDnsAddOnProps : blueprints.CoreDnsAddOnProps = {
version:"v1.10.1-eksbuild.6",
configurationValues:{
computeType: "Fargate"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ export default class SingleNewEksFargateOpenSourceObservabilityConstruct {
);
doc = utils.changeTextBetweenTokens(
doc,
"{{ start enableAdotMetricsCollectionJob}}",
"{{ start enableAdotMetricsCollectionJob }}",
"{{ stop enableAdotMetricsCollectionJob }}",
jsonStringnew.context["adotcollectormetrics.pattern.enabled"]
);
Expand Down Expand Up @@ -122,8 +122,7 @@ export default class SingleNewEksFargateOpenSourceObservabilityConstruct {
Reflect.defineMetadata("ordered", true, blueprints.addons.GrafanaOperatorAddon);
const addOns: Array<blueprints.ClusterAddOn> = [
new blueprints.addons.VpcCniAddOn(),
new blueprints.addons.CoreDnsAddOn({
version: "v1.10.1-eksbuild.6",
new blueprints.addons.CoreDnsAddOn("auto",{
configurationValues: { computeType: "Fargate" }
}),
new blueprints.addons.KubeProxyAddOn(),
Expand Down Expand Up @@ -172,7 +171,7 @@ export default class SingleNewEksFargateOpenSourceObservabilityConstruct {
// Define fargate cluster provider and pass the profile options
const fargateClusterProvider: blueprints.FargateClusterProvider = new blueprints.FargateClusterProvider({
fargateProfiles,
version: eks.KubernetesVersion.of("1.28"),
version: eks.KubernetesVersion.V1_29
});


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ import * as eks from 'aws-cdk-lib/aws-eks';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
import { ObservabilityBuilder } from '@aws-quickstart/eks-blueprints';
import * as fs from 'fs';
import { IstioIngressGatewayHelmAddon } from './istio/istioIngressGatewayAddon';
import { IstioCniHelmAddon } from './istio/istiocniAddon';

export default class SingleNewEksGravitonOpenSourceObservabilityPattern {
constructor(scope: Construct, id: string) {
Expand Down Expand Up @@ -69,7 +67,7 @@ export default class SingleNewEksGravitonOpenSourceObservabilityPattern {
);
doc = utils.changeTextBetweenTokens(
doc,
"{{ start enableAdotMetricsCollectionJob}}",
"{{ start enableAdotMetricsCollectionJob }}",
"{{ stop enableAdotMetricsCollectionJob }}",
jsonStringnew.context["adotcollectormetrics.pattern.enabled"]
);
Expand Down Expand Up @@ -170,12 +168,17 @@ export default class SingleNewEksGravitonOpenSourceObservabilityPattern {
addOns.push(new blueprints.addons.IstioControlPlaneAddOn({
version: "1.18.2"
}));
addOns.push(new IstioIngressGatewayHelmAddon);
addOns.push(new IstioCniHelmAddon);
addOns.push(new blueprints.addons.IstioIngressGatewayAddon({
version: "1.18.2"
}));

addOns.push(new blueprints.addons.IstioCniAddon({
version: "1.18.2"
}));
}

const mngProps: blueprints.MngClusterProviderProps = {
version: eks.KubernetesVersion.of("1.27"),
version: eks.KubernetesVersion.V1_29,
instanceTypes: [new ec2.InstanceType("m7g.large")],
amiType: eks.NodegroupAmiType.AL2_ARM_64,
desiredSize: 2,
Expand Down
15 changes: 9 additions & 6 deletions lib/single-new-eks-opensource-observability-pattern/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ import * as ec2 from 'aws-cdk-lib/aws-ec2';
import * as amp from 'aws-cdk-lib/aws-aps';
import { ObservabilityBuilder } from '@aws-quickstart/eks-blueprints';
import * as fs from 'fs';
import { IstioIngressGatewayHelmAddon } from './istio/istioIngressGatewayAddon';
import { IstioCniHelmAddon } from './istio/istiocniAddon';

export default class SingleNewEksOpenSourceobservabilityPattern {
constructor(scope: Construct, id: string) {
Expand Down Expand Up @@ -72,7 +70,7 @@ export default class SingleNewEksOpenSourceobservabilityPattern {
);
doc = utils.changeTextBetweenTokens(
doc,
"{{ start enableAdotMetricsCollectionJob}}",
"{{ start enableAdotMetricsCollectionJob }}",
"{{ stop enableAdotMetricsCollectionJob }}",
jsonStringnew.context["adotcollectormetrics.pattern.enabled"]
);
Expand Down Expand Up @@ -173,12 +171,17 @@ export default class SingleNewEksOpenSourceobservabilityPattern {
addOns.push(new blueprints.addons.IstioControlPlaneAddOn({
version: "1.18.2"
}));
addOns.push(new IstioIngressGatewayHelmAddon);
addOns.push(new IstioCniHelmAddon);
addOns.push(new blueprints.addons.IstioIngressGatewayAddon({
version: "1.18.2"
}));

addOns.push(new blueprints.addons.IstioCniAddon({
version: "1.18.2"
}));
}

const mngProps: blueprints.MngClusterProviderProps = {
version: eks.KubernetesVersion.of("1.28"),
version: eks.KubernetesVersion.V1_29,
instanceTypes: [new ec2.InstanceType("m5.2xlarge")],
amiType: eks.NodegroupAmiType.AL2_X86_64,
desiredSize: 2,
Expand Down

This file was deleted.

This file was deleted.

12 changes: 6 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@
"lint": "npx eslint . --ext .js,.jsx,.ts,.tsx"
},
"devDependencies": {
"@aws-quickstart/eks-blueprints": "^1.13.1",
"@aws-quickstart/eks-blueprints": "1.14.1",
"@types/jest": "^29.5.11",
"@types/node": "^20.10.4",
"@typescript-eslint/eslint-plugin": "^6.14.0",
"@typescript-eslint/parser": "^6.14.0",
"aws-cdk": "2.114.1",
"aws-cdk": "2.133.0",
"copyfiles": "^2.4.1",
"eslint": "^8.55.0",
"jest": "^29.7.0",
Expand All @@ -24,16 +24,16 @@
"typescript": "^5.3.3"
},
"dependencies": {
"@aws-quickstart/eks-blueprints": "^1.13.1",
"aws-cdk": "2.114.1",
"@aws-quickstart/eks-blueprints": "1.14.1",
"aws-cdk": "2.133.0",
"aws-sdk": "^2.1455.0",
"constructs": "^10.3.0",
"eks-blueprints-cdk-kubeflow-ext": "0.1.9",
"source-map-support": "^0.5.21"
},
"overrides": {
"@aws-quickstart/eks-blueprints": "^1.13.1",
"aws-cdk": "2.114.1",
"@aws-quickstart/eks-blueprints": "1.14.1",
"aws-cdk": "2.133.0",
"xml2js": "0.5.0"
}
}

0 comments on commit 7a3a8e8

Please sign in to comment.