Diary of a Perpetual Student

Perpetual Student: A person who remains at university far beyond the normal period

PipeCDでデプロイメントが完了したらMackerelのグラフアノテーションに記録する

これは Mackerel Advent Calendar 2024 1日目の記事です。 前置き こんにちは。サーバー監視・オブザーバビリティプラットフォームであるMackerelの開発者で、「オブザーバビリティの実現」チームでテックリード兼プロダクトオーナーをしております id:arthu…

28歳

になった。 誕生日と言っても特に変わらぬ一日で、一人で在宅で仕事をしていただけである。 申し訳程度の要素として、ケーキを買って食べた。 躍動するケーキ 爪は一足早くバースデー仕様になっていた。 "happy birthday to me." 部屋のBGMには「『いちご白…

最近聴いてる曲: Nov. 2024

prev: blog.arthur1.dev 休憩と宿泊 / Laughing Hick サビのベースライン、基本オクターブなんだけど要所要所でメロディーとユニゾンになってるというベースラインが良すぎた。 www.youtube.com 社会のゴミカザマタカフミ / 3markets[ ] イントロ良すぎる。 …

ポケモンカード シティリーグ2025 S2もルギアで出て予選10位でした

このエントリには日記以上の情報はありません。 ポケモンカードのシティリーグシーズン2が始まって2日目というタイミングで参加しました。 結果 まずは結果から。予選が4-2で10位という結果でした。CSPは15ptもらえましたが決勝トーナメントには進めず。 前…

Mackerel オブザーバビリティユニット(仮称)のテックリードになります

本日よりMackerel開発チームは内部的に2つのユニットに分割されることになったのですが、一方であるオブザーバビリティユニット(仮称)のテックリードに私 id:arthur-1 が就任しました。オブザーバビリティプラットフォームとしてのMackerelの機能や、その…

AWSのARNに日本語文字や絵文字が入ることがあるのを知っていましたか?

AWSにおいてリソースの識別子として使われるAmazonリソースネーム(ARN)というものがあります。私は、ARNには英数字と一部記号しか使えないものとばかり思っていました。 それでは以下の画像をご覧ください: なんと、ARNに日本語どころか絵文字まで入って…

ポケモンカード シティリーグ2025 S1 BEST4のルギアを紹介します【アヤシシV・イキリンコex採用】

ポケモンカードのシティリーグ2025 シーズン1にルギアデッキで出場し、参加者61名中ベスト4になりました。このエントリではなぜルギアデッキを選びアヤシシやイキリンコをはじめとするパーツを選択したのかや、当日のマッチアップ、バトルのTIPSについてゆる…

GitHub ActionsのGoのバージョンをtoolchainディレクティブの指定ぴったりで固定したい場合

blog.arthur1.dev 以前公開したGoのバージョン指定・更新に関するブログで、GitHub Actionsのsetup-goについてこんなことを書きました。 stableを指定しておけば、大体の場合(最新に保った)toolchainディレクティブ以上のバイナリを最初から用意してくれる…

AWS AppConfig 機能フラグ向けのOpenFeature Go Providerを作りました

2024-09-01 v0.2.0で破壊的な変更をリリースしたので本エントリのコードも合わせて修正しました OpenFeatureとは OpenFeatureをご存知ですか?OpenFeatureは特定のベンダーに依存しないフィーチャーフラグの標準APIを定めるプロジェクトです。CNCF仲間のOpen…

Go製アプリケーション/ライブラリにおけるメンテナンス性を重視したGoのバージョン管理戦略

2024-08-28 GOTOOLCHAIN=auto時にはtoolchainディレクティブに指定したものより新しいGoがインストールされていても戻るわけではないという話を追記しました。 Go言語では半年に1回メジャーリリース(マイナーバージョンの更新)がやってきます。ちょうどこ…

SRE NEXT 2024で当日スタッフをしました&イベントの信頼性を支えるテクニック

去る2024年8月3日(土)・4日(日)に開催されたSRE NEXT 2024にて、当日スタッフをしておりました。SRE NEXTの当日スタッフとして関わるのは昨年に続き2度目となります。今回はTrack Aのお部屋で司会・タイムキーパー・誘導などしていましたので、ご来場い…

Azure SDKのHTTP Pipeline Policyの活用事例:APIコール数手動計装とクライアントサイドキャッシュ

様々な言語で提供されているAzure SDKのコアモジュールにはHTTP Pipeline Policyという仕組みが実装されています。 Java版のドキュメントが一番わかりやすかったので、こちらに掲載されている画像を引用して、HTTP Pipeline Policyが何たるかを説明します。 …

銅鑼パーソン的YAPC::Hiroshima 2024日記

ブログを書くまでがYAPC!ということで、今更すぎますがYAPC::Hiroshima 2024の振り返り記事を書いていきます。ログなのでメッセージ性はそんなにありません。 yapcjapan.org Stats 株式会社はてなのエンジニア(当時新卒2年目) YAPC参加歴は2回目 前回の参…

Go言語でHTTPレスポンスを透過的にキャッシュする

Webアプリケーションの裏側にさらにHTTPサーバが立っていて、レスポンスを返すために裏側のサーバにリクエストを送ってその結果を必要とするような構成があります。裏側のサーバに設定さえたAPIレートリミットへの対応やサーバへの過負荷を避けるため、キャ…

待ち受けポートをカスタムしたsshdをアプデしたらsshで繋げなくなってしまった問題のポストモーテム

事象 piyolog.hatenadiary.jp CVE-2024-6387の対応のため、個人開発サービスを運用していてインターネットに露出しているサーバのopenssh-serverをアップデートしていた。 Google CloudのCompute Engineで立てているあるサーバのopenssh-serverをapt upgrade…

OpenTelemetryのテレメトリとMackerelのホストをResource Attributesで紐づけるためのOTelcol Processorを作りました

OpenTelemetryを使い始めるにあたって、既存の監視ツールからいきなり切り替えることは難しく、基本的には一時的に並行稼働させて様子を見ることになると思います。 これまでmackerel-agentをインストールし、Mackerelにホストとして登録してシステムメトリ…

OpenTelemetry Metricsを手軽に投稿できるCLIツールotlcのv0.2.0をリリースしました

blog.arthur1.dev でご紹介した、OpenTelemetry Metricsを手軽に投稿できるCLIツール「otlc」のv0.2.0をリリースしたので再度ご紹介します。 github.com 使い方 インストール (macOS, Linux)×(x86_64, arm64)向けのバイナリをGitHubのReleaseで配布していま…

IPsec VPN実装であるLibreswanの状態を監視できるMackerelプラグイン

IPsec VPN実装であるLibreswanの状態をメトリックとして見られるようにするMackerelプラグインを作りました。 github.com strongSwanのものは先人が作っていましたが、Libreswanのものがなかったので自作した形です。 nonylene.hatenablog.jp 何が見られるか…

OTel Collectorでrunnによるシナリオテストの結果を投稿できるrunnreceiverを作りました

blog.arthur1.dev の続編です。今回はrunnによるシナリオテストの結果を投稿するツールをOpenTelemetry CollectorのReceiver (Scraper)として作ってみました。 リポジトリ 以下のリポジトリで id:arthur-1 によるOpenTelemetry Collectorの自作Component群を…

Go言語のloggerをDefault1つで済ませる方法:slog Handlerがcontextの中身を見てよしなにするパターン

先日、kamakura.go #6にて、「slog登場に伴うloggerの取り回し手法の見直し」という題で登壇しました。Go Conference 2024にこの内容でproposalを出していて落選してしまったのですが、kamakura.go #6のテーマ「昔のGo、今のGo」とピッタリだったので応募し…

エクストラバトルでしばらく使っていたドラゴンルギアを紹介します

普段は技術記事やしょうもない日記を書いている当ブログですが、ポケモンカードの話をこのブログで書きたいなと思ったのでやります。 記念すべき第一弾として、エクストラバトルでしばらく使っていたドラゴンルギアを紹介します。このブログ自体はずっと前か…

OpenTelemetry MetricsのUnitに何を記述すべきか

OpenTelemetryにおいて、OTel CollectorのReceiverを開発するときやアプリケーションに計装をする際、MetricsのUnit(単位)にどんな文字列を指定すべきかよく分からなかったので調べてみました。 semconv OpenTelemetryにはSemantic Conventions(semconv)…

株式会社はてなに入社しました

株式会社はてなに入社しました 株式会社はてなに入社しました - hitode909の日記

カンファレンス登壇者・スタッフにこそ知ってほしいマイクの使い方

オフラインの技術カンファレンス・イベントも徐々に復活し賑わいを見せつつある今日この頃、いかがお過ごしでしょうか。 多くの聴衆に等しく声を届けるための道具「マイク」はカンファレンスに欠かせないものとなっています。 普段はアプリケーションエンジ…

登壇ふりかえり:Hatena Engineer Seminar 個人開発回 & Scalaわいわい勉強会 #2

2024年に入って2件登壇しましたので、こちらのエントリで振り返っていきます。 Hatena Engineer Seminar #28 「技術習得を支え続けた私の個人開発ヒストリー」 Scalaわいわい勉強会 #2「見せ算をScalaで実装してみた」 Hatena Engineer Seminar #28 「技術習…

あんまり元気じゃないです

今更ですが2月中旬に新型コロナに罹って丸々1週間ほど寝込んでいました。高熱(39度以上が3日間)、咽頭痛、味覚・嗅覚障害あたりが主な症状でした。高熱で何も頭が働かないのが一番しんどかったです。テイクアウトで近所の美味しいラーメンを頼んだら、スー…

arm64の場合/proc/cpuinfoでCPUのモデル名が取得できない件とその対策

arm64では/proc/cpuinfoからCPUのモデル名を取得できない Linuxにはシステムの様子を知ることができる仮想ファイルがいくつかあります。そのうちの一つが/proc/cpuinfoで、その名の通りCPUの情報が以下のように閲覧できます。 $ cat /proc/cpuinfo processor…

給与がアゲアゲした

給与査定と手ぶれ補正に勝利した 前回 blog.arthur1.dev

Mackerelのメトリックプラグインをチェックプラグイン化するプラグイン

Mackerelのメトリックプラグインやチェックプラグインは、特定のフォーマットで標準出力に書き出すという要件さえ満たしていればどのように作ってもOKです。Go言語以外でも作れるし、なんならmackerel-agent.confにシェルスクリプトを書いても動きます。標準…

mackerel-agentが作るシステムメトリックグラフをOpenTelemetryで可能な限り再現する

mackerel-agentをコマンド1つでインストールすると、ホストが登録されMackerel上で以下のようにホストのシステムメトリックのグラフを閲覧することができます。最速便利。 さて、メトリックを収集する仕組みはOpenTelemetryという標準規格に統一されようとす…