Cover Image for Vercel のログを Axiom に送る設定手順

Vercel のログを Axiom に送る設定手順

Cloud
NEXT.js
Axiom
Logging

はじめに

この原稿執筆時点、筆者サイト「Y’s テクニカル雑記帳」は、Vercel のホスティングサービスで稼働する Next.js アプリです。Vercel のダッシュボードでログを見ることは出来ますが、筆者が利用している無料プラン(Hobby)の場合は、最大で1時間前までのログしか見れません。

Vercel のログは外部のロギングサービスに送る事ができます。統合(Integration)メニューには、7種類のロギングサービスが選択できるようになっています。今回はとりあえず Axiom を使ってみることにしました。Axiom には無料、有料の複数プランがありますが、無料プラン(Hobby)を利用します。容量的には、月あたり 500 GB まで使えます。アクセス数の少ないサイトなら充分だと思います。

Axiom サイトに、Playground が用意されているので、リンクを張っておきます。

実際のライブデータを操作して、Axiom に慣れてください。
さまざまな種類のデータをストリーミング、分析、探索する方法を学びます。

https://axiom.co/play

この記事では、筆者が公式ドキュメントなどを参照しながら行った手順を簡単に紹介したいと思います。筆者は、今回の設定は初めてだったので、同じように初めて設定する方の参考になれば幸いです。

Axiom に Sign in

Axiom のサイト https://axiom.co にアクセスして「Get started for free」をクリックします。画面遷移するので「Sign up」をクリックします。

Sign in 方法を選択します。筆者は GITHUB をクリックしました。GITHUB 未ログイン状態の場合は、GITHUB にログインすることで Axiom に Sign in できます。

Vercel で Axiom を統合設定する

Vercel にログインして、ダッシュボードからプロジェクトを選択します。「Settings」をクリックします。左サイドメニューにある「Integrations」をクリックします。「Browse Marketplace」をクリックします。画面遷移するので、そこから「Axiom」を探してクリックします。

次の画面に遷移するので、「Add Integration」をクリックします。

アカウントとプロジェクトを選択して「Install」をクリックします。

Axiom データセットについて

Axiom のデータセットに、ログデータが保存されるイメージです。なので、データセットがないと始まりません。Axiom に Sign in した直後では、まだデータセットは有りません。しかし、Vercel から Axiom 統合を完了した時点で自動的に「vercel」という名前のデータセットが作成されます。

混乱を避けるため、いったん Axiom を ログアウトして、もう一度 Sign in すると良いかもしれません。

Next.js アプリに next-axiom パッケージを追加

next-axiom はオプションとの事ですが、入れた方がログ情報が豊富になります。筆者は入れるのを推奨します。統合の画面で、具体的な手順が示されているのでそれに従います。

// Install next-axiom
npm i --save next-axiom

// next.config.js - wrap your config withAxiom()
const { withAxiom } = require('next-axiom');

module.exports = withAxiom({
  // ... your existing config
})
(以下省略。筆者はとりあえず上記の設定だけ実施しました)

コードを修正、git commit、git push を行い GITHUB 上のソースを更新します。 Vercel の Next.js アプリは自動的に再デプロイとなります。(このあたりは開発環境依存の作業となります)

Axiom でログを確認する

ログは、リアルタイムで確認できます。また、フィルターをかけたり、クエリを実行したりできます。一覧で統計数字やグラフ類を表示できたりして、なかなか便利だと思います。(余談ですが、実際にログを見て、Bot リクエストが多いなと思いました。)

参考までに、Dashboards の画像を貼っておきます。

【おまけ】本記事のアイキャッチ

(今回のアイキャッチも例によって記事内容とは何の関係もありません)

実家の「さくら」2回目の登場です。前回の写真(記事:Next.js の Local Fonts は高パフォーマンス)より若いころの写真です。子猫ではないですが、だいぶ幼い頃ですね。前回の写真は大人猫で、撮影の具合いで哲学してるような?印象があったので比べると面白いなと思っています。


More Stories

Cover Image for 高品質なスロー静止画アニメーションプログラム(html カスタム要素)を作ってみた

高品質なスロー静止画アニメーションプログラム(html カスタム要素)を作ってみた

NEXT.js
SvelteKit
WordPress
実験
animation
drawImage
requestAnimationFrame

静止画(主に写真を想定)がゆっくりと移動する落ち着いたアニメーションプログラム(html カスタム要素)を作ってみました。静止画(写真)を利用して、手軽にアニメーションできます。高品質な静止画(写真)を高品質なまま、『カクカクしないで滑らかに』アニメーションします。

Cover Image for PageSpeed Insights で携帯パフォーマンススコアを満点 (100) にした

PageSpeed Insights で携帯パフォーマンススコアを満点 (100) にした

実験
AVIF
LCP
PageSpeed Insights
srcset
TBC

実験として PageSpeed Insights の携帯(スマホ)パフォーマンスを満点 (100) になるまでチューニングしたので、その作業内容について記事にしてみました。主に LCP と TBT について改善しています。少しでもパフォーマンスチューニングの参考になれば幸いです。