2022/11 DjangoCongress JP 2022 のトークネタメモ
2022トークネタメモ for 2022/11/12, DjangoCongress JP 2022 イベント CfP
https://djangocongress.jp/
トーク申込み https://docs.google.com/forms/d/e/1FAIpQLSfjvgXQ2HeHuQqpq5zPXBNN1xH32uqR-Z2iLUygxr2phmRcIA/viewform
トーク概要1
発表のタイトル / Title
django-structlogによるDjangoログの構造化
発表の内容(詳細なほど良い) / Talk Description (More details is better)
django + structlog + json 構造化ログ
従来のログ出力は一定のフォーマットはあるもののプレーンテキストのため、データとして扱うにはテキスト処理プログラムでがんばる必要があります。また、ログ出力を行うコードでも、プレーンテキストにフォーマットしてしまうために値を埋め込んだうまい文章を考える必要があったり、データの型情報が欠落したりといった問題があります。
ログをJSONフォーマットで出力することにより、ログをデータとして扱えるようになります。これによって、ログ情報を元に集計処理などが行えたり、ログ監視が行いやすくなったりします。
このようなログ出力の構造化を助けてくれるライブラリがstructlogです。このライブラリを使えばJSONでのログ出力を簡単に行えます。Djangoに組み込む場合はdjango-structlogが便利です。公開されている手順通りにDjangoへ組み込めば、Djangoのログ出力全体のJSON化も簡単に行えます。
このトークでは、django-structlogの使い方と、その設定の読み解き方をstructlogも含めて紹介します。これによって、ニーズに合わせた調整ができるようになります。また、django-structlogを組み込んだあと、より良いロギングとなるようにログ出力コードを書く方法を紹介します。
アジェンダ
Djangoロギング入門
標準のdjangoロギングの書き方と、出力例
プレーンテキストログ vs 構造化ログ
django-structlogの組み込みと出力例
django-structlog利用時のロギングの書き方と、出力例
django-structlogの設定を読み解こう
カスタマイズ:特定コンテキスト内で共通の出力を持たせる
カスタマイズ:リクエスト固有の値を全ログ出力に持たせる
分散トレースへの応用
備考(一般公開されない)
なし
ネタ
トーク概要2
発表のタイトル / Title
OpenTelemetryでWebシステムの処理を追跡しよう
発表の内容(詳細なほど良い) / Talk Description (More details is better)
OpenTelemetryは、複数のプロセス、システムをまたがってアプリケーションの処理を追跡する分散トレースの仕組みを提供するフレームワークで、2021年春に1.0.0 がリリースされました。このライブラリを活用し、Djangoアプリおよび周辺システムの処理を追跡する方法について紹介します。
OpenTelemetryは、OpenTracingとOpenCensusが合流して生まれ、Cloud Native Computing Foundation(CNCF)配下のIncubatingプロジェクトとして活発に開発が進められています。分散トレースは複数サーバ・複数コンテナ時代になって難しくなった、通信の流れの把握や、ボトルネック把握、プロファイリングをサポートする、クラウド上で多数のシステムが協調動作する現代のソフトウェア開発の現場では重要な技術です。
備考(一般公開されない)
なし
ネタ
Django + OpenTelemetry
2021年春にリリースされた OpenTelemetry 1.0.0 は、OpenTracingとOpenCensusが合流して生まれました。
https://ja.wikipedia.org/wiki/Cloud_Native_Computing_Foundation#OpenTelemetry
Cloud Native Computing Foundation(CNCF)は、Linux Foundationのプロジェクトの1つで、コンテナ技術の推進と、その進化を取り巻くテクノロジー業界の足並みを揃えるために2015年に創設された財団
OpenTelemetryは、CNCFによるOpenTracingおよびOpenCensusプロジェクトの統合によって作られたオープンソースの可観測性フレームワーク。
このような仕組みを提供するフレームワークは以前ありました
それらのうちの2つ、OpenTracingとOpenCensusのマージが2019年春に発表され、今年2021年春にはOpenTelemetry 1.0.0 がリリースされまれました。
OpenTelemetryはアプリケーション内の情報を収集(インストルメント)するためのライブラリを提供します。
Djangoアプリおよび周辺システムの処理を収集・プロファイリングする方法について紹介
PythonのOpenTelemetry Logging Instrumentationが2022/07/04にリリースされた
https://github.com/open-telemetry/opentelemetry-python-contrib/releases/tag/v0.32b0
トーク概要3
逆引きDjangoORM
応募URL
トラック
Web Programming
言語
日本語
概要(400文字まで)
このSQL、Django ORMでどう書くの?
詳細(300文字以上)
必須
備考(一般公開されない)
オプション
この題材を選んだ理由やきっかけ
オーディエンスが持って帰れる具体的な知識やノウハウ
オーディエンスに求める前提知識
最近のWebアプリ開発や、そのデバッグで苦労した経験
オーディエンスのPythonレベル
発表資料の言語
日本語のみ
ネタ