マイクロサービスや分散システムでは、効果的なログ記録が非常に重要です。GoのログライブラリlogrusとGrafana Lokiを統合することで、強力で検索可能なログシステムを構築することができます。Lokiとの統合には、2つの主要なアプローチがあります。ひとつはPromtailを使用する方法、もうひとつはlogrusとの直接的なフックを使用する方法です。このガイドでは、後者のアプローチに焦点を当てています。このアプローチでは、ログメッセージを直接GrafanaダッシュボードにHTTP経由で送信します。logrusのフックは、ログエントリーが作成されるたびに追加のアクションを実行するための拡張ポイントです。Lokiとの統合のためのフック実装は、YuKitsune/lokirusパッケージを通じて利用できます。Lokiはラベルを使用してログを組織化し、高度に検索可能にしてフィルタリング可能にしています。このログシステムを実装するために、重要なリクエストの詳細をキャプチャするためのリクエストトレーサーミドルウェアを作成し、ロガーインターフェースを定義して実装の詳細を抽象化します。次に、ロガーをLokiのフックで初期化し、コンテキスト情報を抽出してログをフォーマットするためのログメソッドを実装します。このログシステムは、アプリケーションでロガーを初期化し、リクエストハンドラーで使用することで使用することができます。最後に、Grafanaを構成してログを表示するために、Lokiをデータソースとして追加し、ログパネルを持つダッシュボードを作成し、サービスラベルでフィルタリングするクエリーを構成します。
dev.to
Supercharging Your Observability: Integrating Logrus with Grafana Loki
