The helm chart provides flexibility to offload mertrics into target platform(CloudWatch, AMP) of your choice. Here are the possible deployment options -
- Offload metrics to Amazon Managed Prometheus(AMP)
- Offload metrics to Amazon CloudWatch
- Offload metrics to both Amazon Managed Prometheus(AMP) and Amazon CloudWatch
The above-mentioned deployment modes are explained in-detail in the following sections.
By default, the helm chart is configured to offload metrics data to the Amazon Managed Prometheus(AMP) workspace only. You need update the values.yaml
file to add the Remote Write Endpoint URL and the region for your AMP workspace. By default, the region is set to us-west-2
. By default, only the prometheus
receiver and prometheusremotewrite
exporter is included to be able to send metrics to AMP.
helm install \
[RELEASE_NAME] [REPO_NAME]/adot-exporter-for-eks-on-ec2 \
--set clusterName=[CLUSTER_NAME] --set awsRegion=[AWS_REGION]
CLUSTER_NAME
and AWS_REGION
must be specified with your own EKS cluster and the region. You can find these values by executing following command.
$ kubectl config current-context
[IAM_User_Name]@[CLUSTER_NAME].[AWS_REGION].eksctl.io
To verify the installation is successful, you can execute the following command.
$ kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
amazon-metrics adot-collector-daemonset-jlhvs 1/1 Running 0 5s
amazon-metrics adot-collector-daemonset-ph7xs 1/1 Running 0 5s
If you see these two running pods, two for ADOT Collector as DaemonSets within the specified namespaces, they are successfully deployed.
To offload metrics to CloudWatch, you need to disable the AMP pipeline and enable the CloudWatch pipeline. You can either update the values.yaml
to change the values of the following variable exporters
and then run the helm install
command as above. Only include the awscontainerinsightreceiver
receiver and awsemf
exporter to send metrics to CloudWatch Container Insights.
helm install \
[RELEASE_NAME] [REPO_NAME]/adot-exporter-for-eks-on-ec2 \
--set clusterName=[CLUSTER_NAME] --set awsRegion=[AWS_REGION] \
--set adotCollector.daemonSet.service.metrics.receivers={awscontainerinsightreceiver}
--set adotCollector.daemonSet.service.metrics.exporters={awsemf}
To verify the installation is successful, you can execute the following command.
$ kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
amazon-metrics adot-collector-daemonset-jlhvs 1/1 Running 0 5s
amazon-metrics adot-collector-daemonset-ph7xs 1/1 Running 0 5s
amazon-cloudwatch fluent-bit-16rrn 1/1 Running 0 5s
amazon-cloudwatch fluent-bit-ksj6f 1/1 Running 0 5s
If you see these four running pods, two for ADOT Collector and two for Fluent Bit as DaemonSets within the specified namespaces, they are successfully deployed.
To send metrics to CloudWatch and AMP, you need to enable the CloudWatch pipeline. You can either update the values.yaml
to change the values of the following variable exporters
and then run the helm install
command as above. Include both prometheus
, awscontainerinsightreceiver
as receivers, awsemf
,prometheusremotewrite
exporter to send metrics to both CloudWatch and AMP.
helm install \
[RELEASE_NAME] [REPO_NAME]/adot-exporter-for-eks-on-ec2 \
--set clusterName=[CLUSTER_NAME] --set awsRegion=[AWS_REGION] \
--set adotCollector.daemonSet.service.metrics.receivers={prometheus,awscontainerinsightreceiver}
--set adotCollector.daemonSet.service.metrics.exporters={prometheusremotewrite,awsemf}
To verify the installation is successful, you can execute the following command.
$ kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
amazon-metrics adot-collector-daemonset-jlhvs 1/1 Running 0 5s
amazon-metrics adot-collector-daemonset-ph7xs 1/1 Running 0 5s
amazon-cloudwatch fluent-bit-16rrn 1/1 Running 0 5s
amazon-cloudwatch fluent-bit-ksj6f 1/1 Running 0 5s
If you see these four running pods, two for ADOT Collector and two for Fluent Bit as DaemonSets within the specified namespaces, they are successfully deployed.
Run chart validation test and lint from MakeFile.
$ cd adot-exporter-for-eks-on-ec2
$ make install-tools # required initially
$ make all # to run chart validation test and lint
- Open Amazon CloudWatch console
- Select "Logs → Log groups" on the left navigation bar.
- Check if following four log groups exist (performance log group will take longer than others).
/aws/containerinsights/[CLUSTER_NAME]/application
/aws/containerinsights/[CLUSTER_NAME]/dataplane
/aws/containerinsights/[CLUSTER_NAME]/host
/aws/containerinsights/[CLUSTER_NAME]/performance
Connect to Amazon Managed Service for Grafana to visualize metrics stored in AMP. Please see the following document to setup the Grafana environment.