- 重要な情報
- アプリ内
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
Go ログを Datadog に送信する場合は、ファイルにログを記録し、Datadog Agent を使用してそのファイルを追跡します。それには、logrus というオープンソースのロギングライブラリを使用して、以下のようにセットアップすることが望まれます。
Datadog は、カスタムパース規則の使用を避け、ログを JSON 形式で生成するようにロギングライブラリをセットアップすることを強くお勧めします。
典型的な Go 構成では、main.go
ファイルを開き、以下のコードを貼り付けます。
package main
import (
log "github.com/Sirupsen/logrus"
)
func main() {
// JSONFormatter を使用します
log.SetFormatter(&log.JSONFormatter{})
// logrus を使用して通常どおりイベントをログに記録します
log.WithFields(log.Fields{"string": "foo", "int": 1, "float": 1.1 }).Info("My first event from golang to stdout")
}
ログイベントに表示するメタデータを JSON オブジェクトで提供すると、ログにメタデータを追加できます。
メタデータには、hostname
、username
、customers
、metric
などの情報があり、トラブルシューティングや Go アプリケーションの状態の把握に役立ちます。
package main
import (
log "github.com/Sirupsen/logrus"
)
func main() {
// JSONFormatter を使用します
log.SetFormatter(&log.JSONFormatter{})
// logrus を使用して通常どおりイベントをログに記録します
log.WithFields(log.Fields{"string": "foo", "int": 1, "float": 1.1 }).Info("My first event from golang to stdout")
// メタデータについては、以下のように、ログステートメント間でフィールドを再利用するのが一般的です
contextualizedLog := log.WithFields(log.Fields{
"hostname": "staging-1",
"appname": "foo-app",
"session": "1ce3f6v"
})
contextualizedLog.Info("Simple event with global metadata")
}
ログとトレースの接続
このアプリケーションで APM が有効になっている場合、APM Go ロギングの指示に従ってログにトレース ID とスパン ID を自動的に追加することで、アプリケーションログとトレース間の相関関係を改善できます。
conf.d/
フォルダーに次の内容の go.d/conf.yaml
ファイルを作成します。
##Log section
logs:
- type: file
path: "/path/to/your/go/log.log"
service: go
source: go
sourcecategory: sourcecode
Go でさらにログ収集を実行するためのヒント: