CLOVER🍀

That was when it all began.

2025-01-01から1年間の記事一覧

Bashのテスティングフレームワーク、Batsを試す

これは、なにをしたくて書いたもの? こちらでBashスクリプトをテストする場合の選択肢を調べてみました。 Bashスクリプトのテスティングフレームワークを調べてみる - CLOVER この中だと、まずはBatsが入門によいのかなと思ったのでチュートリアルを試して…

Emacsにlsp-mode+Bash Language Serverをインストールする

これは、なにをしたくて書いたもの? EmacsでBashを書く時に、LSPを使いたいなと思いまして。 むしろ、どうして今まで使っていなかったんでしょう 笑 EmacsでLSPを使う時には、lsp-modeを使います。 Bash Language Server lsp-modeでBashを使う時のLanguage …

Bashスクリプトのテスティングフレームワークを調べてみる

これは、なにをしたくて書いたもの? 主にBashで書かれたシェルスクリプトをテストするには、どのようなものを使うのか知らなかったのでちょっと調べてみました。 メモ書きです。 Bashスクリプトをテストする選択肢 以下の選択肢があるようです。 Bats Welco…

WildFlyのMicroProfile Telemetryサブシステムを使って、トレースとメトリクスを送信してみる

これは、なにをしたくて書いたもの? 以前、WildFlyのMicroProfile Telemetryサブシステムを使って、トレースシグナルをJaegerに送信してみました。 WildFlyのMicroProfile Telemetryサブシステムを使って、トレースを試す - CLOVER 今回はもっと範囲を広げ…

リファクタリングツールOpenRewriteを、Java 21とJakarta EE 10への移行レシピで試してみる

これは、なにをしたくて書いたもの? ソースコードをリファクタリングしてくれるツールである、OpenRewriteというものがあります。 前々から名前は知っていたのですが、1度試してみようかなということで。 OpenRewrite OpenRewriteのドキュメントはこちら。 …

PrometheusでOpenTelemetryのメトリクスシグナルを直接受け取る

これは、なにをしたくて書いたもの? Prometheusといえばpull型のメトリクス収集ソフトウェアですが、リモート書き込みの他にOpenTelemetryのメトリクスシグナルを 直接受け取ることもできるようです。 ちょっと試してみましょう。 PrometheusをOpenTelemetr…

PythonのOpenTelemetry SDKを使って、メトリクスを送信する単純なスクリプトを作成する

これは、なにをしたくて書いたもの? OpenTelemetryを使っている時に、ちょっとした動作確認みたいなことをしたい時があったりします。 この時に、アプリケーションを作って計装ライブラリーをインストールして…みたいなことをしていると手間な気がするので…

GitLabのジョブをローカルで動かせるgitlab-ci-localを試す

これは、なにをしたくて書いたもの? GitLab CI/CDを使っていると、.gitlab-ci.ymlを変更してコミットしてpushして確認…というのが面倒になってきます。 そうなるとパイプラインをローカルで動かしたいと思い、いろいろと調べてみました。 GitLab Runnerのex…

セルフホスティングしているGitLabのコンテナレジストリーを有効にして、GitLab CI/CDで使えるようにする

これは、なにをしたくて書いたもの? セルフホスティングしているGitLabのコンテナレジストリーを有効にする方法と、GitLab CI/CDで使えるようにする方法をメモしておこうかなと。 だいぶハマったので…。 GitLabのコンテナレジストリー GitLabのコンテナレジ…

GitLab CI/CDのDocker Executorで、ジョブを実行するシェルを確認する

これは、なにをしたくて書いたもの? GitLab CI/CDのRunnerとしてDocker Executorをよく使うのですが、ジョブのscriptがどのシェルで動作しているのかを知りたいと思いまして。 ドキュメントと実際の動作の2つを確認してみたいと思います。 GitLab CI/CDのDo…

Spring Boot 3.4で追加された構造化ログ出力を試してみる

これは、なにをしたくて書いたもの? Spring Boot 3.4から構造化ログを出力できるようになっているようなので、試しておこうかなということで。 Structured logging in Spring Boot 3.4 Spring Bootの構造化ログ Structured Logging(構造化ログ)というのは…

OpenTelemetry SDKのExporterの種類を確認する(+Console Exporterを試す)

これは、なにをしたくて書いたもの? OpenTelemetry SDKで使えるExporterを確認しておこうかなと思いまして。 OpenTelemetry SDKの設定とExporterの設定 OpenTelemetry SDKは各言語ごとに設定がありますが、一般的なものやOTLP Exporterについてはこちらのペ…

ローカルで動く日本語のテキスト埋め込みモデル、PLaMo-Embedding-1Bを動かしてみる(+最近の日本語のテキスト埋め込みモデル)

これは、なにをしたくて書いたもの? ローカルで動かせる日本語のモデルはたまに把握しておきたいと思うのですが、今回はテキスト埋め込みモデルであるPLaMo-Embedding-1Bを 少し動かしてみます。 ついでに、他のモデルも少しメモ。 PLaMo-Embedding-1B PLaM…

artifacts:reports:dotenvを使って、GitLab CI/CDで後続のジョブで使える環境変数を登録する

これは、なにをしたくて書いたもの? GitLabにはArtifactsというものがあり、この中のartifacts:reports:dotenvを使うとdotenvのように環境変数を登録して後続のジョブで使うことが できるようなので試してみます。 Job ArtifactsとArtifacts reports まずJo…

OpenTelemetry Collectorを自分でビルドする

これは、なにをしたくて書いたもの? OpenTelemetry Collectorを使う時は、いろいろなコンポーネントが含まれているOpenTelemetry Collector Contribを使うのが手っ取り早いです。 ですが、自分でOpenTelemetry Collectorをビルドすることもできるようなので…

tcコマンドで特定の宛先への通信を遮断する(パケットをドロップする)

これは、なにをしたくて書いたもの? 今まで特定のポートへの通信を遮断する(パケットをドロップする)のにはfirewalldなどを使うものだと思っていたのですが、tcコマンドでも できそうだったので試しておこうかなと。 tcコマンドで特定の宛先へのパケット…

Ubuntu Linux 24.04 LTSで、特定の宛先へのパケットがどのインターフェースを使うのかを確認する

これは、なにをしたくて書いたもの? タイトルとおりなのですが、ついついtcpdumpあたりを使って他の用途と一緒に見るのが癖になっていたので。 もっと簡単な方法はないのかな?と思って調べてみました。 環境 今回の環境はこちら。 $ lsb_release -a No LSB…

socatとcatでTCP Echoサーバーを立てる

これは、なにをしたくて書いたもの? socatでTCP Echoサーバーを立てる方法をメモしておきます。 以前書いたエントリー内でも少し使ったことがあるのですが、単体のエントリーとして書いてあった方が個人的には便利かなと思ったので。 環境 今回の環境はこち…

Terraform Provider for Grafanaを使って、GrafanaをTerraformで操作してみる

これは、なにをしたくて書いたもの? 最近OpenTelemetryまわりを扱う時にGrafanaが出てくるのですが、このセットアップを毎回Web UIで操作して行うのが面倒だなと思いまして。 Terraformでなんとかならないかな?と思って見てみたら、Grafana自身がTerraform…

Docker、Docker Composeで起動するコンテナのIPアドレスを指定する

これは、なにをしたくて書いたもの? Docker、Docker Composeで起動するコンテナのIPアドレスを指定する方法を覚えておきたいなということで。 あまり使わないと思うのですが、覚えておくとこのブログを書くうえでは便利だったりするかもしれません(?) コ…

FastAPI × OpenTelemetry Collector × Grafana Tempo × Prometheusでトレース、メトリクスを収集してみる

これは、なにをしたくて書いたもの? 前に、ひとまずGrafana Tempoを使ってみたというエントリーを書きました。 Grafana Tempo 2.8+MinIO+GrafanaをUbuntu Linux 24.04 LTSにインストールして、トレースデータを見てみる - CLOVER 今度は、Grafana Tempoの…

YAMLで複数行の文字列を入力したい

これは、なにをしたくて書いたもの? YAMLで複数行の文字列を書く方法をちゃんと把握していなかったので、メモとして。 YAMLの仕様書 YAMLの仕様書を確認しましょう。 The Official YAML Web Site あんまり気にしたことがなかったのですが、YAMLの仕様は1.2…

スクリプトでcurlを使う時に指定しておいた方がいいオプション

よく忘れるので。 結論としては以下ですね。 $ curl -fsSL [その他] [URL] -f、--fail … HTTPステータスコード400以上のレスポンスを返す場合に失敗させる -s、--silent … サイレントモード、進捗やエラーメッセージを表示しない -S、--show-error … -s、--s…

GitLab CI/CDのキャッシュの設定方法を確認する

これは、なにをしたくて書いたもの? GitLab CI/CDのキャッシュについて、雰囲気しか見ていなかったのでちゃんとドキュメントを見ておこうかなと。 GitLab CI/CDのキャッシュ ドキュメントとして見ておくものはこちらですね。 CI/CD YAML syntax reference /…

Ollamaでgpt-ossを試す

これは、なにをしたくて書いたもの? OpenAIからgpt-ossがリリースされました。 Introducing GPT-5 | OpenAI gpt-oss が登場 | OpenAI gpt-oss-120bとgpt-oss-20bの2つのモデルがリリースされていて、Ollamaで利用できるようなので1度動かしてみようかなと。…

PythonのOpenTelemetry計装ライブラリーの導入方法がよくわからなかったので、pipとuvを使ってFastAPIで試してみる

これは、なにをしたくて書いたもの? Grafana Tempoにトレースシグナルを送信しようとPythonで簡単なアプリケーションを作成したら、 OpenTelemetry計装ライブラリーの導入方法でちょっと苦労したのでちゃんと見てみようということで…。 Grafana Tempo 2.8+…

Grafana Tempo 2.8+MinIO+GrafanaをUbuntu Linux 24.04 LTSにインストールして、トレースデータを見てみる

これは、なにをしたくて書いたもの? Grafanaプロジェクトの中に、分散トレーシングのバックエンドとなるGrafana Tempoという製品があります。 こちらを使って分散トレーシングを試してみたいのですが、セットアップがそれなりに大変そうなので、まずは イン…

OpenTelemetry CollectorのExtensionってなんだ?

これは、なにをしたくて書いたもの? OpenTelemetry Collectorの設定にextensionsというものがあります。これの意味がよくわかっていなかったので、調べて みることにしました。 OpenTelemetry CollectorのExtensionとは? OpenTelemetry CollectorのExtensi…

OpenTelemetry Collectorのprocessorsはどういう順番で書いたらいいのか?

OpenTelemetry Collectorのprocessorsの設定をしていて、「これはどういう順番で書くのがいいのだろう?」と疑問に 思ったのでメモ。 こういう設定を書く時に、複数のProcessorがあった場合に並べる順番ですね。 service: pipelines: metrics: receivers: [o…

OpenTelemetry Collectorでホストのメトリクスを取得して、Prometheusにリモート書き込みしてみる

これは、なにをしたくて書いたもの? OpenTelemetry Collectorを見ていて、てっきりOpenTelemetry Protocolが対象かと思っていたのですが、ホストのメトリクスや ログを収集できるなどいろいろできることに気づきまして。 少し見ていってみようかなと。 お題…