負荷低すぎはもはや障害じゃないのかという記事の話。
そうすると、 『イベントで一時的にc4.4xlarge(8万/月)にして、そのまま最大CPU使用率10%とかで数ヶ月放置されている』 みたいなのはビジネス的な損失という意味で明らかに障害で、監視すべきじゃないだろうか?
とのこと。
package mse | |
import java.io._ | |
import org.bytedeco.javacpp.helper.opencv_core.AbstractCvMat | |
import org.bytedeco.javacpp.opencv_core._ | |
import org.bytedeco.javacpp.opencv_highgui._ | |
object MSE { | |
def main(args: Array[String]) { | |
val ms = |
負荷低すぎはもはや障害じゃないのかという記事の話。
そうすると、 『イベントで一時的にc4.4xlarge(8万/月)にして、そのまま最大CPU使用率10%とかで数ヶ月放置されている』 みたいなのはビジネス的な損失という意味で明らかに障害で、監視すべきじゃないだろうか?
とのこと。
import sbt._ | |
import sbt.Keys._ | |
import com.earldouglas.xwp.XwpPlugin._ | |
import sbtassembly.Plugin._ | |
import AssemblyKeys._ | |
object BuildSettings { | |
val buildOrganization = "jp.zucks" | |
val buildVersion = "1.0.0-SNAPSHOT" | |
val buildScalaVersion = "2.11.6" |
インスタンスの起動スクリプトとかを書いてるときによく欲しいと思うやつです。
例えば、 service nginx start
が実行されたあとに curl -i localhost | grep "200 OK"
とかをすると、サービスがそれなりに動いていることが確認できてよかったりするのですが、あまりにも直後だとサーバの起動が間に合わず、curl が失敗してしまいます。nginxだとまだましだけど、アプリケーションサーバだとそれなりに時間がかかったりする。
古典的な解決方法は、 sleep 30
です。簡単だけど、アプリケーションが巨大になってくると30秒では起動しないこともある。じゃぁ sleep 60
が妥当か?でも、サーバインスタンスの起動スクリプト全体はできるだけ早く立ち上がってほしい。困った。
なので、curlが成功するまで叩き続ける、みたいなスクリプトに仕上げたくなるわけです。
HANDLERS = Hello \ | |
my.LogAggregator \ | |
my.CountDaily \ | |
my.CountHourly \ | |
supecial.LogCollector | |
BRANCH=$(shell git rev-parse --abbrev-ref @) | |
JAR=$(BRANCH)/myproject-assembly-0.1.jar | |
all: |
(このドキュメントは Sunrise 2017 アドテクノロジーコース でのお話の内容です)
#SBT:=docker run -p 8080:8080 -v ~/.ivy2:/root/.ivy2 -v ~/.sbt:/root/.sbt -v `pwd`:/workspace -w /workspace -it --rm hseeberger/scala-sbt sbt | |
SBT=./sbt | |
.PHONY: test-continuous sbt-shell sbt-assembly | |
test-continuous: sbt | |
$(SBT) ~test | |
sbt-shell: sbt | |
$(SBT) |