Skip to content

Reorganise AWS docs and Apps tab #49

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

Merged
merged 38 commits into from
Sep 12, 2024
Merged
Show file tree
Hide file tree
Changes from all 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
Aug 27, 2024
3a8720c
Merge branch 'main' into islam/axm-4903-create-top-level-aws-page
Aug 28, 2024
b775730
Merge branch 'main' into islam/axm-4903-create-top-level-aws-page
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
111 changes: 22 additions & 89 deletions apps/introduction.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: 'Apps and integrations'
description: 'Integrate your favourite apps and tools with Axiom.'
title: 'Apps'
description: 'Enrich you Axiom organization with dedicated apps.'
sidebarTitle: 'Overview'
tags:
[
Expand All @@ -11,121 +11,54 @@ tags:
'cloudflare workers',
'datadog migration',
'grafana',
'pagerduty',
'vercel',
'netlify',
]
---

This section walks you through a catalogue of migration tools and dedicated apps that can enrich your Axiom organization.
This section walks you through a catalogue of dedicated apps that enrich your Axiom organization.

If you’re looking to use standard APIs and other data shippers like the Elasticsearch Bulk API, FluentBit log processor or Fluentd log collector, you'll want the docs for [sending data](/send-data/ingest) instead.

## Apps
To use standard APIs and other data shippers like the Elasticsearch Bulk API, FluentBit log processor or Fluentd log collector, go to [Send data](/send-data/ingest) instead.

<CardGroup>
<Card
title="Vercel"
href="https://vercel.com/integrations/axiom"
>
</Card>
<Card
title="Netlify"
href="https://docs.netlify.com/monitor-sites/log-drains/#axiom"
>
</Card>
<Card
title="Vector"
href="https://vector.dev/docs/reference/configuration/sinks/axiom/"
>
</Card>
<Card
title="AWS Lambda"
href="https://github.com/axiomhq/axiom-lambda-extension"
>
</Card>
<Card
title="Cloudflare Workers"
href="https://github.com/axiomhq/axiom-cloudflare-workers"
>
</Card>
</CardGroup>

## SDKs

<CardGroup cols={2}>
<Card
title="JavaScript"
icon="js"
href="https://github.com/axiomhq/axiom-js"
>
</Card>
<Card
title="Go"
icon="golang"
href="https://github.com/axiomhq/axiom-go"
>
</Card>
<Card
title="Rust"
icon="rust"
href="https://github.com/axiomhq/axiom-rs"
>
</Card>
<Card
title="Python"
icon="python"
href="https://github.com/axiomhq/axiom-py"
href="/apps/lambda"
>
</Card>
</CardGroup>

## Library extensions

<CardGroup>
<Card
title="Next.js"
href="https://github.com/axiomhq/next-axiom"
>
</Card>
<Card
title="Rust Tracing"
href="https://github.com/axiomhq/tracing-axiom"
>
</Card>
<Card
title="Winston"
href="https://github.com/axiomhq/axiom-js/tree/main/packages/winston"
title="Cloudflare Workers"
href="/apps/cloudflare-workers"
>
</Card>
<Card
title="Pino"
href="https://github.com/axiomhq/axiom-js/tree/main/packages/pino"
title="Cloudflare Logpush"
href="/apps/cloudflare-logpush"
>
</Card>
<Card
title="Logrus"
href="https://pkg.go.dev/github.com/axiomhq/axiom-go/adapters/logrus"
title="Grafana"
href="/apps/grafana"
>
</Card>
<Card
title="Apex"
href="https://pkg.go.dev/github.com/axiomhq/axiom-go/adapters/apex"
<Card
title="Netlify"
href="/apps/netlify"
>
</Card>
<Card
title="Zap"
href="https://pkg.go.dev/github.com/axiomhq/axiom-go/adapters/zap"
title="Tailscale"
href="/apps/tailscale"
>
</Card>
<Card
title="Python logging"
href="https://github.com/axiomhq/axiom-py/blob/main/axiom/logging.py"
title="Terraform"
href="/apps/terraform"
>
</Card>
<Card
title="Go OTel"
href="https://github.com/axiomhq/axiom-go/blob/main/axiom/otel/doc.go"
<Card
title="Vercel"
href="/apps/vercel"
>
</Card>
</CardGroup>
</CardGroup>
104 changes: 27 additions & 77 deletions apps/lambda.mdx
Original file line number Diff line number Diff line change
@@ -1,103 +1,53 @@
---
title: 'Send AWS Lambda logs to Axiom'
description: 'Send Lambda function logs and platform events to Axiom using the quick filters dashboard.'
title: 'Enrich Axiom experience with AWS Lambda'
description: 'This page explains how to enrich your Axiom experience with AWS Lambda.'
sidebarTitle: AWS Lambda
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.
Use the Axiom Lambda Extension to enrich your Axiom organization with quick filters and a dashboard.

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.
For information on how to send logs and platform events of your Lambda function to Axiom, see [Send data from AWS Lambda](/send-data/aws-lambda).

## Prerequisites
## What’s the Axiom Lambda Extension

- 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.
AWS Lambda is a compute service that allows you to build applications and run your code at scale without provisioning or maintaining any servers.

## Installation
Use the AWS Lambda Extension to collect Lambda logs, performance metrics, platform events, and memory usage from your Lambda functions. With the Axiom Lambda Extension, you can monitor Lambda performance and aggregate system-level metrics for your serverless applications and optimize lambda functions through easy-to-use automatic dashboards.

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

You can install and configure it by using one of these methods:
- Monitor your Lambda functions and invocations.
- Get full visibility into your AWS Lambda events in minutes.
- Collect metrics and logs from your Lambda-based Serverless Applications.
- Track and view enhanced memory usage by versions, durations, and cold start.
- Detect and get alerts on Lambda event errors, Lambda request timeout, and low execution time.

* 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.
## Comprehensive AWS Lambda dashboards

### Configure the Axiom Lambda Extension using AWS CLI
The Axiom AWS Lambda integration comes with a pre-built dashboard where you can see and group your functions with the versions and AWS resource that triggers them, making this the ideal starting point for getting an advanced view of the performance and health of your AWS Lambda serverless services and Lambda function events. The AWS Lambda dashboards automatically show up in Axiom through schema detection after installing the Axiom Lambda Extension.

To set up the extension via the AWS CLI, follow the instructions below:
These new zero-config dashboards help you spot and troubleshoot Lambda function errors. For example, if there’s high memory usage on your functions, you can spot the unusual delay from the max execution dashboard and filter your errors by functions, durations, invocations, and versions. With your Lambda version name, you can gain and expand your views on what’s happening in your Lambda event source mapping and invocation type.

- Add the extension as a layer with the AWS CLI:
## Monitor Lambda functions and usage in Axiom

```bash
aws lambda update-function-configuration --function-name my-function \
--layers arn:aws:lambda:<AWS_REGION>:694952825951:layer:axiom-extension-<ARCH>:<VERSION>
```
Having real-time visibility into your function logs is important because any duration between sending your lambda request and the execution time can cause a delay and adds to customer-facing latency. You need to be able to measure and track your Lambda invocations, maximum and minimum execution time, and all invocations by function.

### Add a Lambda function layer
The Axiom Lambda Extension gives you full visibility into the most important metrics and logs coming from your Lambda function out of the box without any further configuration required.

To configure the extension via the AWS Lambda function UI, follow the instructions below:
## Track cold start on your Lambda function

Lambda layers contain dependencies that you can use with your Lambda functions.
A cold start occurs when there’s a delay between your invocation and runtime created during the initialization process. During this period, there’s no available function instance to respond to an invocation. With the Axiom built-in Serverless AWS Lambda dashboard, you can track and see the effect of cold start on your Lambda functions and its impact on every Lambda function. This data lets you know when to take actionable steps, such as using provisioned concurrency or reducing function dependencies.

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

<Frame caption="Add new layer">
<img src="/doc-assets/shots/add-new-layer.png" alt="Add new layer" />
</Frame>
Grouping logs with Lambda invocations and execution time by function provides insights into your events request and response pattern. You can extend your query to view when an invocation request is rejected and configure alerts to be notified on Serverless log patterns and Lambda function payloads. With the invocation request dashboard, you can monitor request function logs and see how your Lambda serverless functions process your events and Lambda queues over time.

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:
## Detect timeout on your Lambda function

```bash
Axiom Lambda function monitors let you identify the different points of invocation failures, cold-start delays, and AWS Lambda errors on your Lambda functions. With standard function logs like invocations by function, and Lambda cold start, monitoring the rate of your execution time can alert you to be aware of a significant spike whenever an error occurs in your Lambda function.

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

```

* `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>
Axiom Lambda Serverless Smart Filters lets you easily filter down to specific AWS Lambda functions or Serverless projects and use saved queries to get deep insights on how functions are performing with a single click.
Binary file removed doc-assets/shots/add-env-vars.png
Binary file not shown.
Binary file removed doc-assets/shots/add-new-layer.png
Binary file not shown.
Binary file removed doc-assets/shots/added-env-vars.png
Binary file not shown.
Binary file removed doc-assets/shots/cloudfront-1.png
Binary file not shown.
Binary file removed doc-assets/shots/cloudfront3.png
Binary file not shown.
Binary file removed doc-assets/shots/cloudfront4.png
Binary file not shown.
Binary file removed doc-assets/shots/cloudfront5.png
Binary file not shown.
Binary file removed doc-assets/shots/cloudfront6.png
Binary file not shown.
Binary file removed doc-assets/shots/cloudwatch-1.png
Binary file not shown.
Binary file removed doc-assets/shots/cloudwatch1.png
Binary file not shown.
Binary file removed doc-assets/shots/cloudwatch2.png
Binary file not shown.
Binary file removed doc-assets/shots/cloudwatch4.png
Binary file not shown.
Binary file removed doc-assets/shots/disable-cw-logs.png
Binary file not shown.
31 changes: 24 additions & 7 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/cloudwatch",
"send-data/aws-firehose",
"send-data/cloudfront",
"send-data/aws-firelens",
"send-data/aws-iot-rules",
"send-data/aws-lambda",
"send-data/aws-s3"
]
}
]
},
Expand All @@ -155,7 +163,13 @@
"query-data/annotate-charts"
]
},
"monitor-data/monitors"
{
"group": "Monitors",
"pages": [
"monitor-data/monitors",
"monitor-data/pagerduty"
]
}
]
},
{
Expand Down Expand Up @@ -214,7 +228,6 @@
"apps/cloudflare-logpush",
"apps/grafana",
"apps/netlify",
"apps/pagerduty",
"apps/tailscale",
"apps/terraform",
"apps/vercel"
Expand Down Expand Up @@ -604,6 +617,10 @@
{
"source": "/endpoints/introduction",
"destination": "/send-data/ingest"
},
{
"source": "apps/pagerduty",
"destination": "monitor-data/pagerduty"
}
]
}
File renamed without changes.
24 changes: 24 additions & 0 deletions send-data/aws-firehose.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
title: 'Send data from Amazon Data Firehose to Axiom'
description: 'This page explains how to send data from Amazon Data Firehose to Axiom.'
sidebarTitle: Amazon Data Firehose
tags:
['Firehose documentation', 'documentation', 'Firehose', 'Axiom', 'container logging', 'fluentd', 'fluentbit', 'real-time analysis']
---

Amazon Data Firehose is a service for delivering real-time streaming data to different destinations. Send event data from Amazon Data Firehose to Axiom to analyse and monitor your data efficiently.

import Prerequisites from "/snippets/standard-prerequisites.mdx"

<Prerequisites />
{/* list separator */}
- [Create an account on AWS Cloud](https://signin.aws.amazon.com/signup?request_type=register).

## Setup

1. In Axiom, determine the ID of the dataset you’ve created.
1. In Amazon Data Firehose, create an HTTP endpoint destination. For more information, see the [Amazon Data Firehose documentation](https://docs.aws.amazon.com/firehose/latest/dev/create-destination.html#create-destination-http).
1. Set HTTP endpoint URL to `https://api.axiom.co/v1/datasets/DATASET_NAME/ingest/firehose`. Replace `DATASET_NAME` with the name of the Axiom dataset.
1. Set the access key to the Axiom API token.

You have configured Amazon Data Firehose to send data to Axiom. Go to the Axiom UI and ensure your dataset receives events properly.
Loading