LoginSignup
2
1

More than 3 years have passed since last update.

Scala × AWS X-Ray × AWS CDKでサービス間を可視化してみる

Posted at

はじめに

AWSの勉強をしていて、X-Rayって名前だけ聞いて何に使えるかなんとなく雰囲気では知ってるけど
使ったことないなとおもったので、どういう風に各サービスの実行時間が見えるのか試してみた記事です。

実行環境

・scala: 2.13.3
・sbt: 1.3.13
・aws-cdk: 1.57.0

はこんな感じでサンプルコードは以下になります。
https://github.com/hiroyuki-nishi/xray

AWS構成図

aws.png

とりあえず最小限のAWS構成で試してみます

CDKの設定ポイント

LambdaのX-Rayをアクティブにするだけなら tracing(Tracing.ACTIVE)を追加してあげるだけで
設定できます。
より詳しい解説公式ドキュメントを参照してください


  private val function = new Function(
    this,
    "account-test",
    FunctionProps
      .builder()
      .functionName(s"notify-days-shift-test")
      .code(
        Code.fromAsset(
          s"${presentationPath}/notifydaysshift/target/scala-2.13/notifyDaysShift.jar"
        )
      )
      .runtime(Runtime.JAVA_8)
      .handler("shiftdays.App::handleRequest")
      .timeout(Duration.seconds(180))
      .memorySize(1024)
      .environment(Map("REGION" -> "ap-northeast-1").asJava)
      .tracing(Tracing.ACTIVE) // ココ
      .build()
  )

X-Rayの結果

トレースはこのような感じで結果が残ります。

スクリーンショット 2020-09-27 18.58.52.png

コールドスタート時
GraalVMとか何もしてないので流石に立ち上がりが遅い・・・
GetQueueURLの取得?も思った以上に時間がかかっているのがわかります。

cold.png

ウォームスタート時
先ほどと比べて速いですね!
warn.png

おわりに

Lambdaの設定一つでX-Rayを使えるようになるのはいいですね。
あとは、コスト面やKinesisを使ったEventSourcingなどどこまでトレースされるのかは色々試してみたいところです。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1