0
1

More than 1 year has passed since last update.

【AWS x ECS x Go】New Relic の導入① ログ設定とメトリクスの収集

Last updated at Posted at 2022-12-09

はじめに

こんにちは、rendaman0215です。

弊社では、ログ保管やAPM・メトリクスの収集先としてNewRelicを採用しています。
私は認証チームとして、Go言語のサービスにNewRelicを導入したため、その方法を紹介できればと思います。

本記事は、その取り組みの中で行なったログ転送とメトリクス収集に関する記事になります。

実施環境

言語:Go言語
フレームワーク:go-chi
実行環境:ECS on Fargate
CI/CD: Codeシリーズ

導入

ログ転送

ログをあらかじめjsonにシリアライズしておく必要はありますが、タスク定義に以下の設定を組み込むことですぐ使用開始できます。
タスク定義上のアプリケーションコンテナ部分に以下のように書きます。
これらの設定をすることで、firelensでログを飛ばす設定ができます。

"logConfiguration": {
  "logDriver": "awsfirelens",
  "options": {
    "Name": "newrelic"
  },
  "secretOptions": [{
      "name": "apiKey",
      "valueFrom": "${NEWRELIC_LICENSE_KEY}"
  }]
},

ログルータ部は以下の通り設定します。
NewRelic謹製のimageがあります。

{
  "name": "log_router",
  "image": "533243300146.dkr.ecr.us-east-2.amazonaws.com/newrelic/logging-firelens-fluentbit",
  "essential": true,
  "firelensConfiguration": {
    "type": "fluentbit",
    "options": {
      "enable-ecs-log-metadata": "true"
    }
  }
}

メトリクスの収集

メトリクスの収集についてもタスク定義に以下の設定を組み込むことですぐ使用開始できます。

{
  "name": "newrelic-metrics",
  "image": "newrelic/nri-ecs:latest",
  "environment": [
    {
      "name": "NRIA_OVERRIDE_HOST_ROOT",
      "value": ""
    },
    {
      "name": "NRIA_IS_SECURE_FORWARD_ONLY",
      "value": "true"
    },
    {
      "name": "FARGATE",
      "value": "true"
    },
    {
      "name": "NRIA_PASSTHROUGH_ENVIRONMENT",
      "value": "ECS_CONTAINER_METADATA_URI,ENABLE_NRI_ECS,FARGATE"
    },
    {
      "name": "NRIA_CUSTOM_ATTRIBUTES",
      "value": "{\"nrDeployMethod\":\"downloadPage\"}"
    }
  ],
  "secrets": [
    {
      "name": "NRIA_LICENSE_KEY",
      "valueFrom": "${NEWRELIC_LICENSE_KEY}"
    }
  ],
}

まとめ

今回は、GoのWebアプリケーションにおいて、NewRelicを使ったログルーティングとメトリクス収集の設定方法について紹介しました。
いずれの設定もタスク定義を修正することで利用できるため、簡単にはじめられてよいですね。
次回は、APMの導入記事を書こうと思います。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1