以下の内容はhttps://td-support.hatenablog.com/entry/2024/06/28/163949より取得しました。


Workflow Monitoringのデータを使ったTDオブジェクトの一覧化

こんにちは。テクニカルサポートチームの大村です。

今回はMonitoring WorkflowのWorkflow Monitoringで取得したデータの活用方法についていくつか紹介します。 Workflow Monitoringを導入するとProjectやWorkflow, Session, Attempt, Schedule, Revisionといったメタデータ情報がTDのテーブルに格納されます。 これらデータを一体どのようにクエリで整形していくと便利なのかについて紹介します。

1. テーブル一覧

まずはWorkflow Monitoringにより作成、データが追加されるテーブル群を見ていきます。

デフォルトではこれらのテーブルが自動的に作成され、データが日々格納されます。 それぞれのテーブルを確認していきましょう。

projects, projects_history

これらのテーブルにはWorkflow Projectの情報が格納されます。 project idや名前、現行のrevision id、作成日、最終更新日などが格納されます。 これらと後述するrevisionsテーブルを参照することで最終更新者を確認することが可能になります。 他のテーブルも同様ですが、projectのデータは1日1回その時点のデータにより上書きされます。そのため、過去のデータはprojects_historyに保管されています。 削除されてしまったprojectを確認したい場合などはprojects_historyを参照すると良いでしょう。

workflows, workflows_history

これらのテーブルにはWorkflowの情報が格納されています。Projectの情報も格納されてますので、projectsテーブルと紐づけなくてもこのテーブル単体でプロジェクト紐づけて一覧化することが可能です。projectsテーブルと同様にrevision idも格納されていますので、最終更新者も確認することが可能です。

schedules, schedules_history

これらのテーブルにはスケジュールが設定されているWorkflowの情報が格納されています。スケジュールの有効・無効の情報も格納されていますので、スケジュールが有効化中であるWorkflowの一覧を確認したい場合にはこちらのテーブルを参照するといいでしょう。

revisions, revisions_history

これらのテーブルにはProjectのrevision情報が格納されています。TD Workflowではプロジェクト毎にバージョン管理の簡易版が導入されています。それぞれ、プロジェクト毎にrevision idが振られ、更新の度に新しいrevision idが設定されます。 これテーブル単体で使うというよりかは他のテーブルとJoinして最終更新者を確認するのに使うことが多いテーブルになります。

session

このテーブルにはsessionに関する情報が格納されています。このテーブルを確認することで日次でどの程度のsessionが実際に動作しているのかなどの情報を得ることが可能です。実際の実行に関してはattemptテーブルを確認するほうがよいでしょう。 また、sessionとattemptテーブルは日次でテーブルの全データを上書きするというような運用ではなく、日次で差分が追加されていく形になっています。

attempt

このテーブルにはattemptに関する情報が格納されています。このテーブルを確認することで特定のWorkflowの時系列の実行時間が確認できます。 対象のWorkflowの実行時間がだんだん伸びているのか、それともある程度一定なのかなどを確認することが可能です。

2. クエリサンプル

クエリサンプルおよび結果イメージの一覧をtreasure-boxes内のREADME.mdにも記載していますので、こちらもあわせて確認してください。 treasure-boxes/scenarios/monitoring/workflow_monitoring/query_samples at master · treasure-data/treasure-boxes · GitHub

もちろん、これらの結果をcsvファイルとしてダウンロードしたり、Google Sheetに出力したりすることも可能です。 また、これらはあくまでサンプルですので、クエリを変更すれば、各々に必要な情報を抽出することが可能です。

# ファイル名 内容
1 project_list.sql Projectの一覧を最終更新者付きで出力します
2 workflow_list.sql Workflowの一覧を出力します
3 schedule_list.sql スケジュールが有効になっているWorkflowの一覧を出力します。実際に定期的に実行されているWorkflowを確認するにはこちらが便利です。
4 session_attempt_list_for_specific_workflow.sql 特定のWorkflowのSession/Attemptリストになります。実行時間も計算して出力していますので、こちらを使うと実行時間変遷が確認できます。

今回はWorkflow Monitoringで取得しているデータとそれを使ったサンプルクエリについてご紹介しました。ここでご紹介したクエリ以外でもいろいろなクエリによりデータを整理できるかと思いますので試してみてください。




以上の内容はhttps://td-support.hatenablog.com/entry/2024/06/28/163949より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14