Skip to content

sumiren/nextjs-otel-distributed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Why

色々なOpenTelemetry対応のオブザーバビリティバックエンドを触るにあたってクライアントになる分散Webサービスがほしくて作った。
トレースとログのみ対応。メトリクスはまだ。

名前が紛らわしいが、Next.jsのOpenTelemetry対応を試すためのリポジトリではない。@vercel/otelは使っていない。

What

  • ./frontend
    • Next.js ポート3000
    • /でレンダリングされるページがサーバーサイドフェッチでbackendを叩く
  • ./backend
    • Next.js(めんどくさかったので) ポート3001
    • /animalsでデータベース上のanimalsをContent-Type: application/jsonで返す
  • ./db
    • docker-composeでpostgresが立ち上がる。backendから叩かれる。ポート2345
  • ./otel-collector
    • docker-composeでOpenTelemetry Collectorが立ち上がる。 frontend/backendのサーバー2つからOTLPを受ける。ポート4318
    • config.ymlなどを自由にさわって、試したいバックエンドを試す
      • exporterをいっぱい定義すれば色々なところに同時並行でおくれる
      • オブザーバビリティバックエンド次第ではDockerfileを変えないとダメ(イメージ指定があるとか)

Getting Started

pnpm installとかは適宜

  1. otel-collector/config.ymlをいじって好きなバックエンドに送る設定をする
    • otel-collector/.envファイルを作るとよい 1docker-compose up -dでOpenTelemetry CollectorとPostgresを立ち上げる
  2. backendでpnpm migrateしてPostgresにスキーマ適用する(申し訳ないが)
  3. 適当な方法でPostgresにつないでanimalsテーブルに適当なレコードをつくる(申し訳ないが)
    • 接続文字列はbackend/.env参照
  4. backend、frontendでpnpm dev
  5. localhost:3000にアクセスすると画面にanimalsテーブルの内容が出る。オブザーバビリティバックエンドにトレースとログが送られていることを確認
    • うまくいかなければ一旦logging(debug)とかでCollector上でstdoutしてもいいかも

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published