misskeyでnewrelicを有効にする

misskey(サーバ側)で分散トレーシングを利用するためのメモ

前提として、newrelicにアカウントを作成して、newrelic keyを取得しておくこと。

docker composeを例にする。

1 公式の手順

を参考に設定まで済ませる。

2 newrelicを追加する。

nodejsがインストールされており、pnpmが利用できることが前提。

cd packages/backend/
pnpm add newrelic

3 src/boot/index.tsを書き換え

packages/backend/src/boot/index.ts の import が並んでいるあたりに

import "newrelic";

の1行を追加する。

4 docker-compose.override.ymlを作成

misskeyのトップディレクトリに戻り、 docker-compose.yml が存在することを確認して docker-compose.override.ymlを作成する。中身は

services:
  web:
    environment:
      - NEW_RELIC_ENABLED=false
      - NEW_RELIC_APP_NAME=misskey
      - NEW_RELIC_RECORD_SQL=raw
      - NEW_RELIC_SLOW_SQL_ENABLED=true
      - ENV NEW_RELIC_NO_CONFIG_FILE=true
      - NEW_RELIC_DISTRIBUTED_TRACING_ENABLED=true
      - NEW_RELIC_LOG=stdout
      - NEW_RELIC_LICENSE_KEY=<your newrelic key"
      - NEW_RELIC_ENFORCE_BACKSTOP=false

こんな感じ。

5 公式の手順に戻る。

ここまでできれば、あとは 公式の手順の ビルドと初期化から再開すればOK。

結果

うまくいってれば、しばらくアクセスしてみると

newrelic-sample

こんな感じに何かが表示されます。