2019-01-01から1年間の記事一覧
Node.jsのアプリケーションのログをJSONログに変えたいが、全部自分で置き換えるのは面倒なので console.logからロガーを使ったコードに書き換えてくれるeslint-pluginを書きました。www.npmjs.com 以下のようなコードを自動で置き換えます。 // エラーとし…
DatadogのAutoDiscovery機能があるのを知ったので試してみたよ、という記事です。 今回は簡単に設定を試すために docker-composeを使って試してみました。 2022/09/29追記: 本記事の内容は少し古くなっています。 本記事では、Prometheusのインテグレーショ…
本番でのご使用はご注意ください。 あとJDBCドライバ固定のコードになっているので注意してください。 タイトル通りなんですがコネクションのIDを割り振ってMDCにputするコードを書いたので ここに書いておきます。 なぜこんな物を書いたかというと コネクシ…
MyBatis経由で実行される全てのSQLに対して SQLコメントを追加したい気持ちになったので 簡単にどうやるのかを書いておく。 stackoverflowにも質問を書いたけど ググってたら思いついてしまった。(ほぼコピペだけど) ちなみにリフレクションでこじ開けるの…
調べたのでメモしておく。 結論: 環境変数から取ってきている。 node での使用例を見ると 以下のような形で利用できる模様 // これでAWSの呼び出しがX-Rayに記録される var AWS = AWSXRay.captureAWS(require('aws-sdk')); これをソースコードから追ってみる…
CIでフォーマッタ掛けてフォーマットのチェックしてますか? プロジェクトでフォーマットがある程度統一されていると落ち着きませんか? コードフォーマッタで悩んでいる、という人にオススメのツールとして Spotless というツールを紹介します。 記事の構成…
以下のリンク先にuberのgoのコーディングスタイルのガイドがあるのですが そこにあるルールに基づいたエラーを吐くLinterを書いてみました。 github.com よく見ると元のルールとは微妙に違うような気がします。 "foo"という文字列を渡してるけど、Goodではそ…
「そーだい本」こと、曽根壮大さんが書かれた「失敗から学ぶRDBの正しい歩き方」を読みました。 読み終えたので感想を書いてみます。 gihyo.jp 感想 感想を書く前に、まずは書籍紹介を引用してみます。 「データベースがよく落ちる」「前任者が残したテーブ…
9月末で無職になりました。 正社員として地方からフルリモートで働ける・雇っていただける会社を探しています。 直近のお仕事では、Java/Spring Bootを使ったAWS ECS上で動くアプリケーションの開発や TerraformやAnsibleを使った運用に関わってきました。ま…
アラート起因で調べるベースの運用とログの話を書いておく。 状況確認 状況確認は大事。ひとまず初動で原因が分かると嬉しいので ざっくり状況確認。 ログを読む エラーログを読む なにも出てなかったらWARNを読む メトリクスを見る 5xxエラーを見る どのサ…
今回はBCC(BPF Compiler Collection)のツールを使って Pythonのメソッド実行のトレースをやってみます。 今回の記事の流れは以下のとおりです。 Amazon Linux 2を立ててBCCのインストールをする 検証のためのコードを準備する 実際にメソッドの呼び出しを…
Lambdaを使ってAPIをホストしたい時、何使いますか? AWS CDK、おすすめです。 実際のコード Lambda Functionを中心として、Lambda Functionに関連付けを紐付けるだけで API Gatewayなりのリソースが作成される。 #!/usr/bin/env node import 'source-map-su…
これはどういう結果になるか、分かりますか? package main import ( "fmt" "bytes" ) func Buffer() *bytes.Buffer { return nil } func main() { b := Buffer() fmt.Printf("%T %v", b, b) } こうなります。 型無しnilになって欲しい気持ちだった。 結局、…
apt update && apt install -y tcpdump dnsutils tcpdump -X -n -vv dst port 53 or src port 53 & # dig すればなんか出るはず dig yahoo.co.jp tcpdumpで真面目に見たのは初めてなので ↓を見ながら調べた。 tcpdumpチートシート - Qoosky 28バイトはヘッダ…
KCLv2の話 移行はこの辺読んで。Kinesis Client Library 1.x から 2.x への移行 - Amazon Kinesis Data Streams localstackではKinesis Client Library v2はテスト出来ない 内部で使っているkinesaliteでは、新しいAPIがサポートされていない Kinesis Client…
今回は、Armeriaを使って、DNSのSRV Recordを使ったクライアントサイドロードバランシングをやってみました。 ソースコードはこのリポジトリにおいています。 クライアントサイドロードバランシングの必要性については以下の記事を読むと良いかもしれません…
JUnit5 でどこが変わったのか、今いるチームの開発メンバや、JUnit5ざっくり知りたい人向けに書いておきます。 この記事では以下の内容について書いていきます。 なぜ移行するか どこが変わったか まとめ なぜ移行するのか なぜ移行するかを簡単に説明してお…
この記事では、JUnit5への移行を行うと共に どういう書き換えをしたかを書いておきます。 以下の内容で書いていきます。 今回移行したプロジェクトの前提 どういう方法で移行するか PMDのアップデート junit 4系の依存を完全に外す junit-jupiterの依存とテ…
以下のリリースノートにこんな記述がありました。 checkstyle.org ClassFanOutComplexity: count complexity base annotations/extends/implements/methods params. Author: kazachka #4092 annotation, extends, implementsで使われているクラスもClassFanO…
今、Java並行処理プログラミング読んでいて ThreadPoolExecutorというかAbstractExecutorServiceのnewTaskForというメソッドを知ったので 使ってみます。 今回の記事では、ThreadPoolExecutorを拡張して MDC、Mapped Diagnostic Contextを引き渡しながら、タ…
負荷試験は大事なのは皆さんご存知だと思いますが すぐにセットアップ出来る負荷試験ツールもあると良いですね。 この記事では、自分がやっている負荷試験の方法を紹介しておきます。 負荷試験にはGatlingを使っています。 この記事は以下の流れで説明してい…
その要求に答えてくれるのがこの JetBrainsが出している、gradle-idea-ext-pluginです。 idea { project { settings { compiler { javac { javacAdditionalOptions "-Amapstruct.defaultComponentModel=spring -Amapstruct.unmappedTargetPolicy=ERROR" } } …
起動できません。Flyway 5.1以降にアップデートしましょう。理由としては、spring boot 2.1.x系から以下のflywayのissueによって導入されたクラスに spring-boot-autoconfigureが依存するようになったからです。 Introduce fluent configuration · Issue #19…
Spring Security 5.2.0に、OAuth 2.0 Token Introspectionで認証が可能なモジュールが実装されています。 Provide support for OAuth 2.0 Token Introspection · Issue #5200 · spring-projects/spring-security · GitHub また、このReactive版も提供されて…
Netflix/concurrency-limits とOkHttp3のIntegrationを書いた。 このライブラリの強みはNetflixの人が書いた、mediumの記事やリポジトリのREADMEを読んでほしい。 GrpcのClientのInterceptor周りを参考に書いた。 以下コード。 public class OkHttpClientLim…
この記事では「Release It」という本を紹介する。 エンジニアリングに携わり、ソフトウェアの開発・運用をしている人に この「Release It」の魅力を伝えたい。 1年以上かけて作ったソフトウェアのリリースの日がやってきたあなたは、全機能が完成し、単体テ…