Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reorganise AWS docs and Apps tab #49

Merged
merged 38 commits into from
Sep 12, 2024
Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
c19135f
created AWS overview page
dasfmi Aug 27, 2024
291fe4f
Merge branch 'main' into islam/axm-4903-create-top-level-aws-page
dasfmi Aug 27, 2024
3a8720c
Merge branch 'main' into islam/axm-4903-create-top-level-aws-page
dasfmi Aug 28, 2024
b775730
Merge branch 'main' into islam/axm-4903-create-top-level-aws-page
dasfmi Aug 29, 2024
8ef572a
Fixes to nav, create snippets
tothmano Sep 9, 2024
e811ef5
Move things
tothmano Sep 9, 2024
64ebd6e
Fixes
tothmano Sep 9, 2024
50cf52e
Format table
tothmano Sep 9, 2024
52d645b
Delete marketing text
tothmano Sep 9, 2024
35941fc
Remove diagram
tothmano Sep 9, 2024
bd67dd1
Update mint.json
tothmano Sep 9, 2024
d507583
Update aws-overview.mdx
tothmano Sep 9, 2024
ca9cacb
Merge branch 'main' into islam/axm-4903-create-top-level-aws-page
tothmano Sep 9, 2024
0a16a6c
Update aws-overview.mdx
tothmano Sep 9, 2024
1074d42
Merge branch 'islam/axm-4903-create-top-level-aws-page' of https://gi…
tothmano Sep 9, 2024
f408336
Separate send data and app content
tothmano Sep 11, 2024
5eb43bb
Add proper product names
tothmano Sep 11, 2024
ac15ed2
Order table rows
tothmano Sep 11, 2024
3dfc9a6
Break up table
tothmano Sep 11, 2024
556197b
Move pagerduty
tothmano Sep 11, 2024
82ffd34
Reformat names in table
tothmano Sep 11, 2024
37cdec4
Clean up CloudWatch
tothmano Sep 11, 2024
9508734
Update CloudFront
tothmano Sep 11, 2024
43ec02d
Rework intro pages
tothmano Sep 11, 2024
3c424cf
Update table, update lambda page
tothmano Sep 12, 2024
415a4cd
Rewrite Lambda page
tothmano Sep 12, 2024
5499045
Add Lambda app and Firehose
tothmano Sep 12, 2024
83f264e
Rename Firehose to official
tothmano Sep 12, 2024
c595c14
Edit lambda
tothmano Sep 12, 2024
127db3f
Update aws-overview.mdx
tothmano Sep 12, 2024
c874eb3
Merge branch 'main' into islam/axm-4903-create-top-level-aws-page
tothmano Sep 12, 2024
9bda4c7
Implement review
tothmano Sep 12, 2024
660cdb6
Update mint.json
tothmano Sep 12, 2024
981f87b
Add info about other methods
tothmano Sep 12, 2024
1a9a883
Add notes about requests for Amazon services and GitHub projects
tothmano Sep 12, 2024
abad43e
Update aws-overview.mdx
tothmano Sep 12, 2024
055bacd
Remove old table
tothmano Sep 12, 2024
77eb3ff
Update lambda.mdx
tothmano Sep 12, 2024
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
96 changes: 2 additions & 94 deletions apps/lambda.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,98 +6,6 @@ tags:
['axiom documentation', 'documentation', 'axiom', 'aws lambda', 'axiom lambda extension', 'cloudwatch subscription filters', 'terraform', 'lambda function layer', 'environment variables']
---

[AWS Lambda](https://docs.aws.amazon.com/lambda/?icmpid=docs_homepage_compute) is a computing service that runs code in response to events and automatically manages the computing resources required by that code.
import Lambda from "/snippets/apps/aws-lambda.mdx"

We built an easy way to send logs and platform events of your Lambda function to [Axiom](/) that provides you with quick filters and a dashboard. With the Axiom Lambda extension, you can forget about the extra configuration of CloudWatch and subscription filters.

## Prerequisites

- Create an account on [AWS Cloud](https://portal.aws.amazon.com/billing/signup#/start/email);
- Sign up or log in to your [account on Axiom](https://app.axiom.co/login?return_to=%2F);
- In Axiom UI, create a [dataset](/reference/datasets) and an [API token](/reference/tokens) with ingest permissions for that dataset.

## Installation

Axiom Lambda extension is available [opensource on GitHub](https://github.com/axiomhq/axiom-lambda-extension).

You can install and configure it by using one of these methods:

* By using [AWS CLI](https://github.com/axiomhq/axiom-lambda-extension#quickstart);
* By using [Terraform](https://github.com/axiomhq/axiom-lambda-extension#terraform-example);
* Via the AWS Lambda function UI.

### Configure the Axiom Lambda Extension using AWS CLI

To set up the extension via the AWS CLI, follow the instructions below:

- Add the extension as a layer with the AWS CLI:

```bash
aws lambda update-function-configuration --function-name my-function \
--layers arn:aws:lambda:<AWS_REGION>:694952825951:layer:axiom-extension-<ARCH>:<VERSION>
```

### Add a Lambda function layer

To configure the extension via the AWS Lambda function UI, follow the instructions below:

Lambda layers contain dependencies that you can use with your Lambda functions.

1. Navigate to your AWS Lambda development environment -> the **Layers** section and click **Add a layer**:

<Frame caption="Add new layer">
<img src="/doc-assets/shots/add-new-layer.png" alt="Add new layer" />
</Frame>

2. On the **Choose a layer** page, check the **Specify an ARN** box and specify your **ARN** (Amazon Resource Name) as shown in the example below:

```bash

arn:aws:lambda:<AWS_REGION>:694952825951:layer:axiom-extension-<ARCH>:<VERSION>

```

* `AWS_REGION`: Specify the AWS Region to send the request to. For more detail, refer to the **All Lambda Layers** table in the [Axiom Lambda Extension Readme](https://github.com/axiomhq/axiom-lambda-extension#quickstart).
* `ARCH`: Specify the system architecture type. For more detail, refer to the **All Lambda Layers** table in the [Axiom Lambda Extension Readme](https://github.com/axiomhq/axiom-lambda-extension#quickstart).
* `VERSION`: Specify the **latest** version number mentioned on the [Releases](https://github.com/axiomhq/axiom-lambda-extension/releases) page. For example, `3`.

3. Click **Verify**: Several fields with additional information will appear under the ARN line.

4. Click **Add**: A new layer is now added to your Lambda function.

### Add environment variables

Add your dataset name and an API token to the list of environment variables:

1. In your AWS Lambda function UI, navigate to **Configuration** -> **Environment variables** and click **Edit**:

<Frame caption="Add environment variables">
<img src="/doc-assets/shots/add-env-vars.png" alt="Add environment variables" />
</Frame>

2. On the **Edit environment variables** page, click **Add environment variable** to specify your dataset name and an API token:

<Frame caption="Added environment variables">
<img src="/doc-assets/shots/added-env-vars.png" alt="Added environment variables" />
</Frame>

3. Click **Save** to add the variables.

Now when the Axiom Lambda extension is hooked up, navigate back to the Axiom UI and see the logs coming directly from your Lambda function!

## Disable CloudWatch logging

After the Axiom Lambda extension is installed, the Lambda service will still send logs to CloudWatch Logs since AWS automatically creates an access role for this by default.
We recommend that you install the Axiom Lambda extension first, then make sure it is working properly in Axiom, and after that remove the access role for CloudWatch.

To disable CloudWatch logging, deny the Lambda function access to CloudWatch by editing the permissions:

1. In your AWS Lambda function UI, navigate to **Configuration** -> **Permissions**;

2. In the **Execution role** section, click the role related to CloudWatch Logs;

3. On the opened **Permissions** tab, select the role and click **Remove** to deny access to CloudWatch Logs.

<Frame caption="Disable CloudWatch logging">
<img src="/doc-assets/shots/disable-cw-logs.png" alt="Disable CloudWatch logging" />
</Frame>
<Lambda />
18 changes: 13 additions & 5 deletions mint.json
Original file line number Diff line number Diff line change
Expand Up @@ -100,11 +100,6 @@
{
"group": "Technologies",
"pages": [
"send-data/cloudfront",
"send-data/cloudwatch",
"send-data/aws-firelens",
"send-data/aws-iot-rules",
"send-data/aws-s3",
"send-data/heroku-log-drains",
"endpoints/honeycomb",
"send-data/kubernetes",
Expand All @@ -130,6 +125,19 @@
"guides/send-logs-from-ruby-on-rails",
"guides/opentelemetry-ruby"
]
},
{
"group": "AWS",
"pages": [
"send-data/aws-overview",
"send-data/cloudfront",
"send-data/cloudwatch",
"send-data/aws-firehose",
"send-data/aws-firelens",
"send-data/aws-iot-rules",
"send-data/aws-lambda",
"send-data/aws-s3"
]
}
]
},
Expand Down
9 changes: 9 additions & 0 deletions send-data/aws-firehose.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: 'Send data from AWS FireHose to Axiom'
description: 'Leverage AWS FireHose to forward logs from Amazon ECS tasks to Axiom for efficient, real-time analysis and insights.'
sidebarTitle: AWS FireHose
tags:
['FireLens documentation', 'documentation', 'FireLens', 'Axiom', 'Amazon ECS', 'container logging', 'fluentd', 'fluentbit', 'real-time analysis']
---

TODO
11 changes: 11 additions & 0 deletions send-data/aws-lambda.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
title: 'Send AWS Lambda logs to Axiom'
description: 'Send Lambda function logs and platform events to Axiom using the quick filters dashboard.'
sidebarTitle: AWS Lambda
tags:
['axiom documentation', 'documentation', 'axiom', 'aws lambda', 'axiom lambda extension', 'cloudwatch subscription filters', 'terraform', 'lambda function layer', 'environment variables']
---

import Lambda from "/snippets/apps/aws-lambda.mdx"

<Lambda />
44 changes: 44 additions & 0 deletions send-data/aws-overview.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
title: 'Send data from AWS to Axiom'
description: 'Send data from AWS to Axiom'
sidebarTitle: Overview
tags:
['axiom documentation', 'documentation', 'axiom', 'aws cloudfront', 'ADOT', 'amazon s3', 'aws s3', 'aws lambda', 'aws', 'cloudwatch', 'amazon']
---

For most Amazon services, the fastest and easiest way to send logs to Axiom is the [CloudWatch Forwarder](/send-data/cloudwatch). It’s subscribed to one or more of your CloudWatch Log Groups and runs as a Lambda function. To determine which Amazon service send logs to Cloudwatch and/or S3, see the [AWS Documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html).

The table below summarizes the methods you can use to send data from different Amazon services to Axiom.

| Supported Amazon service | Supported methods to send data to Axiom |
|------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|
| API Gateway | [AWS Cloudwatch Forwarder](/send-data/cloudwatch) |
| AppSync | [AWS Cloudwatch Forwarder](/send-data/cloudwatch) |
| Aurora MySQL | [AWS Cloudwatch Forwarder](/send-data/cloudwatch) |
| Beanstalk | [AWS Cloudwatch Forwarder](/send-data/cloudwatch) |
| Bedrock Knowledge | [AWS Cloudwatch Forwarder](/send-data/cloudwatch), [AWS S3 Forwarder](/send-data/aws-s3) or [AWS Firehose](/send-data/aws-firehose) |
| Chime media quality metric logs and SIP message logs | [AWS Cloudwatch Forwarder](/send-data/cloudwatch) |
tothmano marked this conversation as resolved.
Show resolved Hide resolved
| Cloudfront | [AWS S3 Forwarder](/send-data/aws-s3) |
| CloudHSM audit logs | [AWS Cloudwatch Forwarder](/send-data/cloudwatch) |
| Cloudtrail | [AWS Cloudwatch Forwarder](/send-data/cloudwatch) |
| Cloudwatch | [AWS Cloudwatch Forwarder](/send-data/cloudwatch) |
| CloudWatch (evidently evaluation event logs) | [AWS Cloudwatch Forwarder](/send-data/cloudwatch) or [AWS Firehose](/send-data/aws-firehose) |
tothmano marked this conversation as resolved.
Show resolved Hide resolved
| CodeBuild | [AWS Cloudwatch Forwarder](/send-data/cloudwatch) |
| CodeWhisperer event logs | [AWS Cloudwatch Forwarder](/send-data/cloudwatch) |
| Cognito | [AWS Cloudwatch Forwarder](/send-data/cloudwatch) |
| Connect | [AWS Cloudwatch Forwarder](/send-data/cloudwatch) |
| DataSync | [AWS Cloudwatch Forwarder](/send-data/cloudwatch) |
| ECS | [Fluentbit](/send-data/fluent-bit) |
tothmano marked this conversation as resolved.
Show resolved Hide resolved
| ElastiCache (Redis OSS) | [AWS Cloudwatch Forwarder](/send-data/cloudwatch) or [AWS Firehose](/send-data/aws-firehose) |
| Elemental MediaTailor | [AWS Cloudwatch Forwarder](/send-data/cloudwatch) |
| Event Bridge Pipes | [AWS Cloudwatch Forwarder](/send-data/cloudwatch), [AWS S3 Forwarder](/send-data/aws-s3) or [AWS Firehose](/send-data/aws-firehose) |
| Fargate | [AWS Cloudwatch Forwarder](/send-data/cloudwatch) |
| Fault Injection Service experiment | [AWS S3 Forwarder](/send-data/aws-s3) |
| FinSpace | [AWS Cloudwatch Forwarder](/send-data/cloudwatch), [AWS S3 Forwarder](/send-data/aws-s3) or [AWS Firehose](/send-data/aws-firehose) |
| Firehose | [AWS Firehose](/send-data/aws-firehose) |
| Firelens | [AWS Firelens](/send-data/aws-firelens) |
| Global Accelerator flow logs | [AWS S3 Forwarder](/send-data/aws-s3) |
| Glue job logs | [AWS Cloudwatch Forwarder](/send-data/cloudwatch) |
| IoT Core | [AWS IoT](/send-data/aws-iot-rules) |
| Lambda | [AWS Lambda](/send-data/aws-lambda) |
| S3 | [AWS S3 Forwarder](/send-data/aws-s3) or [Vector](/send-data/vector) |
95 changes: 95 additions & 0 deletions snippets/apps/aws-lambda.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
[AWS Lambda](https://docs.aws.amazon.com/lambda/?icmpid=docs_homepage_compute) is a computing service that runs code in response to events and automatically manages the computing resources required by that code.

We built an easy way to send logs and platform events of your Lambda function to [Axiom](/) that provides you with quick filters and a dashboard. With the Axiom Lambda extension, you can forget about the extra configuration of CloudWatch and subscription filters.

## Prerequisites

- Create an account on [AWS Cloud](https://portal.aws.amazon.com/billing/signup#/start/email);
- Sign up or log in to your [account on Axiom](https://app.axiom.co/login?return_to=%2F);
- In Axiom UI, create a [dataset](/reference/datasets) and an [API token](/reference/tokens) with ingest permissions for that dataset.

## Installation

Axiom Lambda extension is available [opensource on GitHub](https://github.com/axiomhq/axiom-lambda-extension).

You can install and configure it by using one of these methods:

* By using [AWS CLI](https://github.com/axiomhq/axiom-lambda-extension#quickstart);
* By using [Terraform](https://github.com/axiomhq/axiom-lambda-extension#terraform-example);
* Via the AWS Lambda function UI.

### Configure the Axiom Lambda Extension using AWS CLI

To set up the extension via the AWS CLI, follow the instructions below:

- Add the extension as a layer with the AWS CLI:

```bash
aws lambda update-function-configuration --function-name my-function \
--layers arn:aws:lambda:<AWS_REGION>:694952825951:layer:axiom-extension-<ARCH>:<VERSION>
```

### Add a Lambda function layer

To configure the extension via the AWS Lambda function UI, follow the instructions below:

Lambda layers contain dependencies that you can use with your Lambda functions.

1. Navigate to your AWS Lambda development environment -> the **Layers** section and click **Add a layer**:

<Frame caption="Add new layer">
<img src="/doc-assets/shots/add-new-layer.png" alt="Add new layer" />
</Frame>

2. On the **Choose a layer** page, check the **Specify an ARN** box and specify your **ARN** (Amazon Resource Name) as shown in the example below:

```bash

arn:aws:lambda:<AWS_REGION>:694952825951:layer:axiom-extension-<ARCH>:<VERSION>

```

* `AWS_REGION`: Specify the AWS Region to send the request to. For more detail, refer to the **All Lambda Layers** table in the [Axiom Lambda Extension Readme](https://github.com/axiomhq/axiom-lambda-extension#quickstart).
* `ARCH`: Specify the system architecture type. For more detail, refer to the **All Lambda Layers** table in the [Axiom Lambda Extension Readme](https://github.com/axiomhq/axiom-lambda-extension#quickstart).
* `VERSION`: Specify the **latest** version number mentioned on the [Releases](https://github.com/axiomhq/axiom-lambda-extension/releases) page. For example, `3`.

3. Click **Verify**: Several fields with additional information will appear under the ARN line.

4. Click **Add**: A new layer is now added to your Lambda function.

### Add environment variables

Add your dataset name and an API token to the list of environment variables:

1. In your AWS Lambda function UI, navigate to **Configuration** -> **Environment variables** and click **Edit**:

<Frame caption="Add environment variables">
<img src="/doc-assets/shots/add-env-vars.png" alt="Add environment variables" />
</Frame>

2. On the **Edit environment variables** page, click **Add environment variable** to specify your dataset name and an API token:

<Frame caption="Added environment variables">
<img src="/doc-assets/shots/added-env-vars.png" alt="Added environment variables" />
</Frame>

3. Click **Save** to add the variables.

Now when the Axiom Lambda extension is hooked up, navigate back to the Axiom UI and see the logs coming directly from your Lambda function!

## Disable CloudWatch logging

After the Axiom Lambda extension is installed, the Lambda service will still send logs to CloudWatch Logs since AWS automatically creates an access role for this by default.
We recommend that you install the Axiom Lambda extension first, then make sure it is working properly in Axiom, and after that remove the access role for CloudWatch.

To disable CloudWatch logging, deny the Lambda function access to CloudWatch by editing the permissions:

1. In your AWS Lambda function UI, navigate to **Configuration** -> **Permissions**;

2. In the **Execution role** section, click the role related to CloudWatch Logs;

3. On the opened **Permissions** tab, select the role and click **Remove** to deny access to CloudWatch Logs.

<Frame caption="Disable CloudWatch logging">
<img src="/doc-assets/shots/disable-cw-logs.png" alt="Disable CloudWatch logging" />
</Frame>