Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/config/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ integration/airbyte:
- airbyte/**/*
integration/airflow:
- airflow/**/*
integration/amazon_app_mesh:
- amazon_app_mesh/**/*
integration/amazon_eks:
- amazon_eks/**/*
integration/amazon_eks_blueprints:
Expand Down
1 change: 1 addition & 0 deletions active_directory/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"manifest_version": "2.0.0",
"app_uuid": "e03a0916-8708-4417-82e4-1f0c7bbee655",
"app_id": "active-directory",
"owner": "windows-products",
"display_on_public_website": true,
"tile": {
"overview": "README.md#Overview",
Expand Down
7 changes: 7 additions & 0 deletions amazon_app_mesh/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# CHANGELOG - AWS App Mesh

## 1.0.0 / 2019-10-01

***Added***:

* add Amazon App Mesh integration
228 changes: 228 additions & 0 deletions amazon_app_mesh/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,228 @@
## Overview

[AWS App Mesh][1] is a service mesh that provides application-level networking to your micro services running on Amazon ECS Fargate or Amazon EKS clusters.


## Setup

<!-- xxx tabs xxx -->
<!-- xxx tab "EKS" xxx -->

Use the instructions below to enable metric collection for the AWS App Mesh proxy sidecar, called Envoy. Users can choose to add sidecars in one of three modes: deploying, patching the deployment later, or using the AWS App Mesh injector controller. All modes are supported by the following steps.

#### Metric collection

**Prerequisite**: Deploy Datadog Agents as a DaemonSet in your Kubernetes cluster using the [EKS integration][1] documentation.

1. Due to limitations in App Mesh, forwarding metrics from EKS to Datadog requires the Egress filter to be set to `Allow External Traffic`.

2. Create a ConfigMap in your cluster to automatically discover App Mesh's Envoy side cars that are added to each pod:

```yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: datadog-config
data:
envoy: |-
ad_identifiers:
- aws-appmesh-envoy
init_config:
instances:
- stats_url: http://%%host%%:9901/stats
tags:
- <TAG_KEY>:<TAG_VALUE> # Example - cluster:eks-appmesh
```

3. Update the `volumeMounts` object in your Datadog Agent's DaemonSet YAML file:

```yaml
volumeMounts:
- name: datadog-config
mountPath: /conf.d
```

4. Update the `volumes` object in your Datadog Agent's DaemonSet YAML file:

```yaml
volumes:
- name: datadog-config
configMap:
name: datadog-config
items:
- key: envoy
path: envoy.yaml
```

#### Log collection

<!-- partial
{{< site-region region="us3" >}}

Log collection is not supported for this site.

{{< /site-region >}}
partial -->

<!-- partial
{{< site-region region="us,eu,gov" >}}

To enable log collection, update the Agent's DaemonSet with the dedicated [Kubernetes log collection instructions][1].

[1]: https://docs.datadoghq.com/integrations/ecs_fargate/#log-collection

{{< /site-region >}}
partial -->

#### Trace collection

Select the namespace to deploy the `datadog-agent` and service, for example: `monitoring`. Use this in the option to deploy the appmesh-injector with:

```shell
helm upgrade -i appmesh-controller eks/appmesh-controller \
--namespace appmesh-system \
--set sidecar.logLevel=debug \
--set tracing.enabled=true \
--set tracing.provider=datadog \
--set tracing.address=ref:status.hostIP \
--set tracing.port=8126
```


Alternatively, the appmesh injector can be deployed by following the [App Mesh with EKS][3] documentation using the option `enable-datadog-tracing=true` or environment variable `ENABLE_DATADOG_TRACING=true`.

[1]: https://docs.datadoghq.com/integrations/amazon_eks/
[2]: /agent/kubernetes/daemonset_setup/#log-collection
[3]: https://github.com/aws/aws-app-mesh-examples/blob/master/walkthroughs/eks/base.md#install-app-mesh--kubernetes-components

<!-- xxz tab xxx -->
<!-- xxx tab "ECS Fargate" xxx -->

#### Metric collection

**Prerequisite**: Add Datadog Agents to each of your Fargate task definitions with App Mesh enabled, such as an Envoy sidecar injected, using the [ECS Fargate integration][1] documentation.

1. Due to limitations in App Mesh, forwarding metrics from an ECS task to Datadog requires the Egress filter to be set to `Allow External Traffic`.

2. Update all task definitions containing the Envoy sidecar and Datadog Agent with the following Docker labels. See [Integration Setup for ECS Fargate][2] for details.

```text
"dockerLabels": {
com.datadoghq.ad.instances : [{"stats_url": "http://%%host%%:9901/stats"}]
com.datadoghq.ad.check_names : ["envoy"]
com.datadoghq.ad.init_configs : [{}]
},
```

#### Log collection

<!-- partial
{{< site-region region="us3" >}}

Log collection is not supported for this site.

{{< /site-region >}}
partial -->

<!-- partial
{{< site-region region="us,eu,gov" >}}

Enable log collection with the instructions in the [ECS Fargate integration documentation][1].

[1]: https://docs.datadoghq.com/integrations/ecs_fargate/#log-collection

{{< /site-region >}}
partial -->

#### Trace collection

1. Enable trace collection with the instructions in the [ECS Fargate integration][4] documentation.

Set the AWS App Mesh parameters `ENABLE_ENVOY_DATADOG_TRACING` and `DATADOG_TRACER_PORT` as environment variables in the ECS Fargate task definition. Learn more in the [AWS App Mesh][5] documentation.

[1]: https://docs.datadoghq.com/integrations/ecs_fargate/
[2]: https://docs.datadoghq.com/integrations/faq/integration-setup-ecs-fargate/
[3]: https://docs.datadoghq.com/integrations/ecs_fargate/#log-collection
[4]: https://docs.datadoghq.com/integrations/ecs_fargate/#trace-collection
[5]: https://docs.aws.amazon.com/app-mesh/latest/userguide/envoy.html

<!-- xxz tab xxx -->
<!-- xxx tab "ECS EC2" xxx -->

#### Metric collection

**Prerequisite**: Add Datadog Agents to each of your ECS EC2 task definitions with App Mesh enabled, such as an Envoy sidecar injected, using the [ECS integration][1] documentation.

1. Due to limitations in App Mesh, forwarding metrics from an ECS task to Datadog requires the Egress filter to be set to `Allow External Traffic`.

2. Update all task definitions containing the Envoy sidecar and Datadog Agent with the following Docker labels. See [Integration Setup for ECS Fargate][2] for details.

```text
"dockerLabels": {
com.datadoghq.ad.instances : [{"stats_url": "http://%%host%%:9901/stats"}]
com.datadoghq.ad.check_names : ["envoy"]
com.datadoghq.ad.init_configs : [{}]
},
```

#### Log collection

<!-- partial
{{< site-region region="us3" >}}

Log collection is not supported for this site.

{{< /site-region >}}
partial -->

<!-- partial
{{< site-region region="us,eu,gov" >}}

Enable log collection with the instructions in the [ECS integration documentation][1].

[1]: https://docs.datadoghq.com/integrations/amazon_ecs/#log-collection

{{< /site-region >}}
partial -->

#### Trace collection

1. Enable trace collection with the instructions in the [ECS integration][4] documentation.

2. Set the AWS App Mesh parameters `ENABLE_ENVOY_DATADOG_TRACING` and `DATADOG_TRACER_PORT` as environment variables in the ECS task definition. Learn more in the [AWS App Mesh][5] documentation.

[1]: https://docs.datadoghq.com/integrations/amazon_ecs/
[2]: https://docs.datadoghq.com/integrations/faq/integration-setup-ecs-fargate/
[3]: https://docs.datadoghq.com/integrations/amazon_ecs/#log-collection
[4]: https://docs.datadoghq.com/integrations/amazon_ecs/#trace-collection
[5]: https://docs.aws.amazon.com/app-mesh/latest/userguide/envoy.html

<!-- xxz tab xxx -->
<!-- xxz tabs xxx -->

## Data Collected

### Metrics

See the [Envoy integration][2] for a list of metrics.

### Events

The AWS App Mesh integration does not include any events.

### Service Checks

The AWS App Mesh integration does not include any service checks.

## Troubleshooting

Need help? Contact [Datadog support][3].

## Further Reading

- [Envoy integration][4]

[1]: https://aws.amazon.com/app-mesh
[2]: https://docs.datadoghq.com/integrations/envoy/#metrics
[3]: https://docs.datadoghq.com/help/
[4]: https://docs.datadoghq.com/integrations/envoy/
1 change: 1 addition & 0 deletions amazon_app_mesh/assets/service_checks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[]
48 changes: 48 additions & 0 deletions amazon_app_mesh/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"manifest_version": "2.0.0",
"app_uuid": "507d48b6-cfda-4f62-b95a-67de98a50cc6",
"app_id": "amazon-app-mesh",
"display_on_public_website": true,
"tile": {
"overview": "README.md#Overview",
"configuration": "README.md#Setup",
"support": "README.md#Support",
"changelog": "CHANGELOG.md",
"description": "Amazon App Mesh is an open source edge and service proxy.",
"title": "AWS App Mesh",
"media": [],
"classifier_tags": [
"Category::AWS",
"Category::Cloud",
"Category::Log Collection",
"Category::Network",
"Category::Tracing",
"Offering::Integration"
],
"resources": [
{
"url": "https://docs.datadoghq.com/integrations/envoy/",
"resource_type": "documentation"
}
]
},
"assets": {
"integration": {
"auto_install": false,
"source_type_name": "Amazon App Mesh",
"events": {
"creates_events": true
},
"service_checks": {
"metadata_path": "assets/service_checks.json"
},
"source_type_id": 221
}
},
"author": {
"support_email": "help@datadoghq.com",
"name": "Datadog",
"homepage": "https://www.datadoghq.com",
"sales_email": "info@datadoghq.com"
}
}
1 change: 1 addition & 0 deletions aspdotnet/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"manifest_version": "2.0.0",
"app_uuid": "7d801e88-1fad-433e-81d9-07449fd45e13",
"app_id": "aspdotnet",
"owner": "windows-products",
"display_on_public_website": true,
"tile": {
"overview": "README.md#Overview",
Expand Down
2 changes: 1 addition & 1 deletion datadog_checks_base/tests/base/utils/db/test_util.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ def test_constant_rate_limiter_shell_execute():


def test_ratelimiting_ttl_cache():
ttl = 0.1
ttl = 2
cache = RateLimitingTTLCache(maxsize=5, ttl=ttl)

for i in range(5):
Expand Down
1 change: 1 addition & 0 deletions datadog_checks_dev/changelog.d/21288.added
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add KindLoad wrapper utility that allows to load Docker images into kind for testing
1 change: 1 addition & 0 deletions datadog_checks_dev/changelog.d/21292.fixed
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Move KindLoad to a built-in condition instead of a wrapper
Loading
Loading