Skip to content

Commit e1d1b48

Browse files
committed
Updating CI AWS Native Pattern Documentation
1 parent 226b731 commit e1d1b48

File tree

3 files changed

+58
-0
lines changed

3 files changed

+58
-0
lines changed
300 KB
Loading
302 KB
Loading

docs/patterns/single-new-eks-observability-accelerators/single-new-eks-awsnative-observability.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,64 @@ View the Performance Monitoring Dashboard:
115115

116116
Refer to "Using CloudWatch Logs Insights to Query Logs in [Logging](../../logs.md).
117117

118+
## Enabling Application Signals for your services
119+
120+
Amazon CloudWatch Application Signals is a new integrated native APM experience
121+
in AWS. CloudWatch Application Signals supports **Java** and **Python** applications
122+
running on your Amazon EKS cluster.
123+
124+
If you haven't enabled Application Signals in this account yet, follow steps 1 - 4 in our [AWS documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Application-Signals-Enable-EKS-Console.html).
125+
126+
Next, you have to update your Application to
127+
`Configure application metrics and trace sampling`. For this, you must add an
128+
annotation to a manifest YAML in your cluster. Adding this annotation
129+
auto-instruments the application to send metrics, traces, and logs to
130+
Application Signals. You have two options for the annotation:
131+
132+
1. **Annotate Workload** auto-instruments a single workload in the cluster.
133+
- Paste the below line into the PodTemplate section of the workload manifest.
134+
```
135+
apiVersion: apps/v1
136+
kind: Deployment
137+
spec:
138+
template:
139+
metadata:
140+
# add this annotation under the pod template metadata of the services deployment YAML you want to monitor
141+
annotations:
142+
instrumentation.opentelemetry.io/inject-java: "true"
143+
instrumentation.opentelemetry.io/inject-python: "true"
144+
...
145+
```
146+
- In your terminal, enter `kubectl apply -f your_deployment_yaml` to apply the change.
147+
148+
2. **Annotate Namespace** auto-instruments all workloads deployed in the selected namespace.
149+
- Paste the below line into the metadata section of the namespace manifest.
150+
```
151+
annotations: instrumentation.opentelemetry.io/inject-java: "true"
152+
apiVersion: apps/v1
153+
kind: Namespace
154+
metadata:
155+
name: <your_namespace>
156+
# add this annotation under metadata of the namespace manifest you want to monitor
157+
annotations:
158+
instrumentation.opentelemetry.io/inject-java: "true"
159+
instrumentation.opentelemetry.io/inject-python: "true"
160+
...
161+
```
162+
- In your terminal, enter `kubectl apply -f your_namespace_yaml` to apply the change.
163+
- In your terminal, enter a command to restart all pods in the namespace. An example command to restart deployment workloads is `kubectl rollout restart deployment -n namespace_name`
164+
165+
## Visualization of CloudWatch Application Signals data
166+
167+
After enabling your Application to pass metrics and traces by following
168+
[the steps provided above](#enabling-application-signals-for-your-services),
169+
open your Amazon CloudWatch console in the same region as your EKS cluster,
170+
then from the left hand side choose `Application Signals -> Services` and you
171+
will see the metrics shown on the sample dashboard below:
172+
173+
![APP_Signals_Services](../images/App-signals/app-signal-services.png)
174+
175+
![APP_Signals_Dependencies](../images/App-signals/app-signal-ops-deps.png)
118176
119177
## Teardown
120178

0 commit comments

Comments
 (0)