Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CircleCI_Serverの利用状況を可視化した話 / CircleCI Server Visualization of usage status

dehio3
August 23, 2019

CircleCI_Serverの利用状況を可視化した話 / CircleCI Server Visualization of usage status

CircleCI ユーザーコミュニティミートアップ 【LT会】
https://circleci.connpass.com/event/140666/

dehio3

August 23, 2019
Tweet

More Decks by dehio3

Other Decks in Technology

Transcript

  1. ビルド日時の判断
 • ビルド情報を集計する時に日付の判断が必要
 • 「queued_at」からビルドの実施日を判断
 • 実施日毎でJSONファイルを作成
 "queued_at" : "2013-02-12T21:33:30Z"

    // time build was queued
 "start_time" : "2013-02-12T21:33:38Z", // time build started
 "stop_time" : "2013-02-12T21:34:01Z", // time build finished
 18
  2. JSON用ライブラリでのテーブル作成
 CREATE EXTERNAL TABLE circleci_buids_data ( username string, // GitHubのorganization

    build_url string, status string, // ビルドのステータス queued_at timestamp, start_time timestamp, stop_time timestamp, build_time_millis int // ビルド走行時間 ) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' LOCATION 's3://<バケット名>/' 21
  3. テーブル作成時はstring型
 ”Athena は、Java の TIMESTAMP 形式「YYYY-MM-DD HH:MM:SS.fffffffff」 (小数点以下 9 桁)

    を必要とします。
 データが必須の TIMESTAMP 形式でない場合は、列を STRING として定義し、次に Presto の日付と時刻の関数を使用してフィー ルドを DATE または TIMESTAMP としてクエリ内に読み取りま す。”
 https://aws.amazon.com/jp/premiumsupport/knowledge-center/query-table-athena- timestamp-empty/ 23
  4. 最終的なテーブル作成クエリ
 CREATE EXTERNAL TABLE circleci_buids_data ( username string, // GitHubのorganization

    build_url string, status string, // ビルドのステータス queued_at string, start_time string, stop_time string, build_time_millis int // ビルド走行時間 ) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' LOCATION 's3://<バケット名>/' 24