# How to use a logging service instead of CloudWatch
# Why use a logging service?
CloudWatch (opens new window) is the default logging service for AWS. However, it is expensive and not that feature rich. This makes it not that useful to parse errors or other issues in your deployed WordPress site.
There are other logging services that are both cheaper and offer a much wider set of features.
# Disable CloudWatch logging
Before we begin, you'll probably want to disable CloudWatch logging. This will prevent you from being charged for storing logs in both CloudWatch and the logging service you decide to use. To disable CloudWatch logging, you need to set the logging
option to disabled
as shown below.
id: 42
name: logging-project
type: wordpress
environments:
production: ~
staging:
cdn:
caching: assets
cron: false
logging: disabled
warmup: false
# Logging services
Below you'll find how to configure different logging services with Ymir.
# Axiom
Axiom (opens new window) is powerful logging service with a good free tier. To use Axiom, you must install the Axiom Lambda extension into your project.
# Requirements
To install the Axiom Lambda extension in your Ymir project, you'll need to:
# Configuring your project to use Axiom
To begin, you'll need to go to Axiom Lambda extension GitHub repository (opens new window). There, you'll want to find the ARN for the Lambda extension in your project region. As an example, here is the ARN for version 11 of the extension for the arm64
architecture in the us-east-1
region: arn:aws:lambda:us-east-1:694952825951:layer:axiom-extension-arm64:11
Once you have the ARN of the extension that you want to install, you'll need to download it using the AWS CLI (opens new window) using the command below. Please note that <ARN>
is a placeholder. You should replace the placeholder with the ARN that you found earlier.
$ aws lambda get-layer-version-by-arn --arn <ARN> --query 'Content.Location' --output text
You'll then want to create an axiom
directory at the root of your project. In it, you'll want to copy the extension file from the zipped archive that you downloaded with the AWS CLI. Once you copy the extension file over, you project should have a directory structure like this:
axiom/
├── extensions/
└── axiom-lambda-extension
Once that's done, you'll want to edit your project's Dockerfile
and add the following line:
COPY . /var/task
RUN rm -rf /var/task/axiom
COPY ./axiom /opt/
The last step will be to add the AXIOM_DATASET
and AXIOM_TOKEN
environment variables either as regular environment variables or as secrets.
Once this step done, you should deploy your project and Axiom should be receiving your WordPress logs instead of CloudWatch.