SlideShare a Scribd company logo
1 of 13
Download to read offline
Jenkins JMeterで
               負荷テスト自動化

                                @oreradio




12年12月8日土曜日
アジェンダ

    •    前提条件

    •    JenkinsにJMeter載せて負荷テスト

    •    システム構成

    •    JMeter                     ←Java

    •    Chefを使ったサーバセットアップ          ←Ruby

    •    Jenkinsプラグイン作った            ←Java

    •    Jenkinsプラグイン作った その2        ←Java

    •    Jenkinsプラグインの作り方           ←Java




12年12月8日土曜日
前提条件

    •    基本となるパッケージがあって、各プロジェクトでカスタマイズが入るような開発

    •    基本パッケージ開発段階でとんでもSQLを発行するコードが紛れ込む

    •    Webサービス等だとアプローチが異なると思います

                                      顧客n万件で
              負荷を全く考慮しないSQLの混入        検索が死亡

                 例:多段サブクエリ



                                    案件1   カスタマイズ



         基本パッケージ


                                    案件2   カスタマイズ




12年12月8日土曜日
JenkinsにJMeter載せて負荷テスト
    •    開発初期段階で実際の環境に近い環境で負荷テストを行うのが望ましい

    •    毎回手動で実行するのは面倒なのでJenkinsに載せた

    •    O ReillyのJenkins本にも「JMeterを使った自動パフォーマンステスト」の項目が
         ある



              O Reilly「Jenkins」6.8 JMeter を使った自動パフォーマンステスト
              パフォーマンステスティングは、一度きりでの非定型的な処理とされ、プロ
              ジェクトの最後や、何か問題が生じ始めたときにだけ行われるということが
              よくあります。とはいえ、パフォーマンスの問題は、他の種類のバグと同じ
              ようなものです。開発プロセスの後の方で検出されるほど、修正にコストが
              かかることになります。したがって、こういったパフォーマンス及び負荷テ
              ストを自動化し、あらゆる種類のパフォーマンスの低下を、世に出てしまう
              前に検出できるようにすることは、非常に理にかなっているのです。




12年12月8日土曜日
システム構成


                                対象サーバ




              HTTP Request
                              HTTP Response




                                              Cookbook




12年12月8日土曜日
JMeter


  ・テストシナリオを作成してそれを元にHTTP Requestを対象サーバに送信
  ・Apache Benchは管理画面等の認証を突破できないのでJMeterにした
  ・Master/Slave構成取れるのでスケールする


  ・テストシナリオ作成
   JMeterをproxyとして動作させてブラウザ操作を記録することが可能
   →余計な画像等も拾ってしまいフィルタリングが面倒なので
    WindowsのBadboyというアプリでシナリオ作成している




12年12月8日土曜日
Chef
  サーバセットアップ自動化ツール
  PuppetやPython界隈で使われるFabricと同じようなもの


  Chefは内部DSLとしてRubyを使用する
  テンプレートはerb
  個人的にはFabricは自由すぎる(普通にPythonスクリプト)と思う。
  スクリプト毎に構成が違いすぎるのでCookbookという単位で縛れるChefの方が好き。



                            Github上で公開されているopscode-cookbooks
              cookbooks
                            をベースにアプリ部分のcookbookを足した
                  apache2
                  openssl
                  mysql
                  myapp




12年12月8日土曜日
Chef/knife-ec2

  ・ChefからAWS(Amazon Web Service)のEC2インスタンスの制御ができる
  ・ELB(Elastic Load Balancing)の制御はできない
   →AmazonのELB向けAPI直接叩く


  ・knife-ec2使うとRubyやChef Clientのインストールをインスタンス立ち上げ時に
   面倒見てくれる


      gem install knife-ec2




12年12月8日土曜日
Jenkinsプラグイン作った
 Performance Analysis Plugin for Jenkins
     JMeterで送信したリクエストのレスポンスについては既存のPerformance Pluginというやつで見る
     ことができるが、Apacheの数値だけではなくMySQLの状態についても見たい


     Slow Query LogのサマリーをJenkins上で見られるようにした
     MySQLの便利ツール集「Percona-Toolkit」に用意されているpt-query-digest --explainコマンドで
     得られる
     テキストベースのサマリー結果をパース&整形してJenkins上で表示する
     ソースは公開してますが、公式プラグインではない




12年12月8日土曜日
Jenkinsプラグイン作った その2
 Cloud Management Plugin for Jenkins

     AWSのEC2インスタンス立ち上げをJenkins上から行える
     既存のプラグインにも類似のものはあるが、こちらは任意の構成で任意の数のインスタンスを
     立ち上げられるようにしている


     →EC2使わないことになったので開発休止中。
      年末頑張れたら頑張る




12年12月8日土曜日
Jenkinsプラグインの作り方
    mvn hpi:create #雛形作成
    mvn package #パッケージ作成
    mvn hpi:run #デバッグ


    Jenkinsで用意されている拡張ポイントを継承して書いていく
    Builder←プロジェクト管理画面の「ビルド」のプルダウンに出る
    Publisher←プロジェクト管理画面の「ビルド後の処理」のプルダウンに出る
    Aaction←レポート画面等


    迷ったらJenkins CIのGithubにある既存のプラグインのコード覗く
    https://github.com/jenkinsci




12年12月8日土曜日
JRubyでもJenkinsプラグインが書ける


    •    JavaでJenkinsプラグイン書く場合、Jellyテンプレートの書式が結構めんどい

        •     ifはあってもelseがない

        •     プルダウンメニューのデフォルト選択が上手くいかないetc

        •     テンプレートがerbっていうだけでだいぶ楽。

        •     さっきJenkins本書いた方がいらっしゃったような...




12年12月8日土曜日
END



12年12月8日土曜日

More Related Content

What's hot

DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話Koichiro Matsuoka
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション土岐 孝平
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門Kohei Tokunaga
 
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!Hirotaka Sato
 
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!kwatch
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較Akihiro Suda
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーToru Makabe
 
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計sairoutine
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化Gosuke Miyashita
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織Takafumi ONAKA
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法についてYuji Otani
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
 
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...NTT DATA Technology & Innovation
 
テストコードの DRY と DAMP
テストコードの DRY と DAMPテストコードの DRY と DAMP
テストコードの DRY と DAMPYusuke Kagata
 

What's hot (20)

DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
 
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
 
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
 
Railsで作るBFFの功罪
Railsで作るBFFの功罪Railsで作るBFFの功罪
Railsで作るBFFの功罪
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
 
テストコードの DRY と DAMP
テストコードの DRY と DAMPテストコードの DRY と DAMP
テストコードの DRY と DAMP
 
自宅k8s/vSphere入門
自宅k8s/vSphere入門自宅k8s/vSphere入門
自宅k8s/vSphere入門
 

Similar to JenkinsとjMeterで負荷テストの自動化

Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術finoue
 
WEBアプリケーションビルド・ テストツール YEOMAN
WEBアプリケーションビルド・ テストツール YEOMAN WEBアプリケーションビルド・ テストツール YEOMAN
WEBアプリケーションビルド・ テストツール YEOMAN kamiyam .
 
JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例Takeshi Kondo
 
毎日が憧れの新築、反復可能なデリバリーによる常時新築システム
毎日が憧れの新築、反復可能なデリバリーによる常時新築システム毎日が憧れの新築、反復可能なデリバリーによる常時新築システム
毎日が憧れの新築、反復可能なデリバリーによる常時新築システムTomohiro Ohtake
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入Yu Nobuoka
 
ビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテストビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテストTsutomu Chikuba
 
Trac Plugin Developement with Jenkins
Trac Plugin Developement with JenkinsTrac Plugin Developement with Jenkins
Trac Plugin Developement with JenkinsTakahisa Wada
 
第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報Midori Oge
 
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニングKiyokazu Kaba
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireAkio Katayama
 
「今そこにある危機」を捉える ~ pg_stat_statements revisited
「今そこにある危機」を捉える ~ pg_stat_statements revisited「今そこにある危機」を捉える ~ pg_stat_statements revisited
「今そこにある危機」を捉える ~ pg_stat_statements revisitedUptime Technologies LLC (JP)
 
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaTDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaYuta Kawadai
 
Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築VOYAGE GROUP
 
JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所Koji Nakamura
 
Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築Kenta Suzuki
 

Similar to JenkinsとjMeterで負荷テストの自動化 (20)

Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術
 
WEBアプリケーションビルド・ テストツール YEOMAN
WEBアプリケーションビルド・ テストツール YEOMAN WEBアプリケーションビルド・ テストツール YEOMAN
WEBアプリケーションビルド・ テストツール YEOMAN
 
JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例
 
JUC2012
JUC2012JUC2012
JUC2012
 
毎日が憧れの新築、反復可能なデリバリーによる常時新築システム
毎日が憧れの新築、反復可能なデリバリーによる常時新築システム毎日が憧れの新築、反復可能なデリバリーによる常時新築システム
毎日が憧れの新築、反復可能なデリバリーによる常時新築システム
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
ビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテストビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテスト
 
Trac Plugin Developement with Jenkins
Trac Plugin Developement with JenkinsTrac Plugin Developement with Jenkins
Trac Plugin Developement with Jenkins
 
第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報
 
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 Whire
 
「今そこにある危機」を捉える ~ pg_stat_statements revisited
「今そこにある危機」を捉える ~ pg_stat_statements revisited「今そこにある危機」を捉える ~ pg_stat_statements revisited
「今そこにある危機」を捉える ~ pg_stat_statements revisited
 
Selenium
SeleniumSelenium
Selenium
 
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaTDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
 
Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築
 
JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所
 
Cibc work kokawa
Cibc work kokawaCibc work kokawa
Cibc work kokawa
 
Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築
 
Play jjug2012spring
Play jjug2012springPlay jjug2012spring
Play jjug2012spring
 
恋するJenkins
恋するJenkins恋するJenkins
恋するJenkins
 

JenkinsとjMeterで負荷テストの自動化

  • 1. Jenkins JMeterで 負荷テスト自動化 @oreradio 12年12月8日土曜日
  • 2. アジェンダ • 前提条件 • JenkinsにJMeter載せて負荷テスト • システム構成 • JMeter  ←Java • Chefを使ったサーバセットアップ   ←Ruby • Jenkinsプラグイン作った  ←Java • Jenkinsプラグイン作った その2  ←Java • Jenkinsプラグインの作り方  ←Java 12年12月8日土曜日
  • 3. 前提条件 • 基本となるパッケージがあって、各プロジェクトでカスタマイズが入るような開発 • 基本パッケージ開発段階でとんでもSQLを発行するコードが紛れ込む • Webサービス等だとアプローチが異なると思います 顧客n万件で 負荷を全く考慮しないSQLの混入 検索が死亡 例:多段サブクエリ 案件1 カスタマイズ 基本パッケージ 案件2 カスタマイズ 12年12月8日土曜日
  • 4. JenkinsにJMeter載せて負荷テスト • 開発初期段階で実際の環境に近い環境で負荷テストを行うのが望ましい • 毎回手動で実行するのは面倒なのでJenkinsに載せた • O ReillyのJenkins本にも「JMeterを使った自動パフォーマンステスト」の項目が ある O Reilly「Jenkins」6.8 JMeter を使った自動パフォーマンステスト パフォーマンステスティングは、一度きりでの非定型的な処理とされ、プロ ジェクトの最後や、何か問題が生じ始めたときにだけ行われるということが よくあります。とはいえ、パフォーマンスの問題は、他の種類のバグと同じ ようなものです。開発プロセスの後の方で検出されるほど、修正にコストが かかることになります。したがって、こういったパフォーマンス及び負荷テ ストを自動化し、あらゆる種類のパフォーマンスの低下を、世に出てしまう 前に検出できるようにすることは、非常に理にかなっているのです。 12年12月8日土曜日
  • 5. システム構成 対象サーバ HTTP Request HTTP Response Cookbook 12年12月8日土曜日
  • 6. JMeter ・テストシナリオを作成してそれを元にHTTP Requestを対象サーバに送信 ・Apache Benchは管理画面等の認証を突破できないのでJMeterにした ・Master/Slave構成取れるのでスケールする ・テストシナリオ作成  JMeterをproxyとして動作させてブラウザ操作を記録することが可能  →余計な画像等も拾ってしまいフィルタリングが面倒なので   WindowsのBadboyというアプリでシナリオ作成している 12年12月8日土曜日
  • 7. Chef サーバセットアップ自動化ツール PuppetやPython界隈で使われるFabricと同じようなもの Chefは内部DSLとしてRubyを使用する テンプレートはerb 個人的にはFabricは自由すぎる(普通にPythonスクリプト)と思う。 スクリプト毎に構成が違いすぎるのでCookbookという単位で縛れるChefの方が好き。 Github上で公開されているopscode-cookbooks cookbooks をベースにアプリ部分のcookbookを足した apache2 openssl mysql myapp 12年12月8日土曜日
  • 8. Chef/knife-ec2 ・ChefからAWS(Amazon Web Service)のEC2インスタンスの制御ができる ・ELB(Elastic Load Balancing)の制御はできない  →AmazonのELB向けAPI直接叩く ・knife-ec2使うとRubyやChef Clientのインストールをインスタンス立ち上げ時に  面倒見てくれる gem install knife-ec2 12年12月8日土曜日
  • 9. Jenkinsプラグイン作った Performance Analysis Plugin for Jenkins JMeterで送信したリクエストのレスポンスについては既存のPerformance Pluginというやつで見る ことができるが、Apacheの数値だけではなくMySQLの状態についても見たい Slow Query LogのサマリーをJenkins上で見られるようにした MySQLの便利ツール集「Percona-Toolkit」に用意されているpt-query-digest --explainコマンドで 得られる テキストベースのサマリー結果をパース&整形してJenkins上で表示する ソースは公開してますが、公式プラグインではない 12年12月8日土曜日
  • 10. Jenkinsプラグイン作った その2 Cloud Management Plugin for Jenkins AWSのEC2インスタンス立ち上げをJenkins上から行える 既存のプラグインにも類似のものはあるが、こちらは任意の構成で任意の数のインスタンスを 立ち上げられるようにしている →EC2使わないことになったので開発休止中。  年末頑張れたら頑張る 12年12月8日土曜日
  • 11. Jenkinsプラグインの作り方 mvn hpi:create #雛形作成 mvn package #パッケージ作成 mvn hpi:run #デバッグ Jenkinsで用意されている拡張ポイントを継承して書いていく Builder←プロジェクト管理画面の「ビルド」のプルダウンに出る Publisher←プロジェクト管理画面の「ビルド後の処理」のプルダウンに出る Aaction←レポート画面等 迷ったらJenkins CIのGithubにある既存のプラグインのコード覗く https://github.com/jenkinsci 12年12月8日土曜日
  • 12. JRubyでもJenkinsプラグインが書ける • JavaでJenkinsプラグイン書く場合、Jellyテンプレートの書式が結構めんどい • ifはあってもelseがない • プルダウンメニューのデフォルト選択が上手くいかないetc • テンプレートがerbっていうだけでだいぶ楽。 • さっきJenkins本書いた方がいらっしゃったような... 12年12月8日土曜日