cloud loggingについて
概要
- gcpのloggingの仕組みの一つ
cloud monitoring
というサービスと連携させて用いる- オンプレの連携も可能
- 通常のログとは異なり、structured loggingを用いる事ができる
- jsonでのログ出力が可能
公式ドキュメント
gcloudを利用してログを書き込む
非構造化データを書き込む
$ gcloud logging write my-test-log "A simple entry."
my-test-log
の作成は必要ない
構造化データを書き込む
$ gcloud logging write --payload-type=json my-test-log '{ "message": "My second entry", "weather": "partly cloudy"}'
compute engineに対してロギングソフトをインストールする
- vmインスタンスに
cloud monitoring
とcloud logging
のソフトウェアを入れてservice startする cloud monitoring
でメトリックス等を作成して反映する
monitoring query language
cloud monitoring
の画面でmql
に変更する- jq的なコマンドでクエリを作成するとログをフィルタし、その結果を知ることができる
pythonでのログの出力
ライブラリのインストール
$ pip install google-cloud-logging
structured logの出力
import google.cloud.logging
import logging
import json
client = google.cloud.logging.Client()
client.setup_logging()
# ログレベルをINFOに設定
logging.getLogger().setLevel(logging.INFO)
# 方法1. extraで渡す
data_dict = {"hello": "world"}
logging.warning("message field", extra={"json_fields": data_dict})
# 方法2. json.dumpsで渡す
data_dict = {"hello": "world"}
logging.info(json.dumps(data_dict))
用語
sink
cloud storage
やbigquery
が最終アウトプット先ならばsinkは一歩手前のバッファ- docs/export